如何配置FIWARE组件以避免AZF域不是为应用程序响应创建的

如何配置FIWARE组件以避免AZF域不是为应用程序响应创建的,fiware,fiware-orion,fiware-wilma,fiware-keyrock,Fiware,Fiware Orion,Fiware Wilma,Fiware Keyrock,问题摘要:我们如何让FIWARE IdM Keyrock和FIWARE Authzforce正确设置AZF域,而不得到“AZF域不是为应用程序XYZ创建的”响应 我正在尝试使用FIWARE Orion、FIWARE PepProxy Wilma、FIWARE IdM Keyrock和FIWARE Authzforce正确配置服务器。 我到达了前3个组件正常工作并相互作用的点,但现在我尝试插入自动化,我得到以下错误: 未为应用程序创建AZF域。 我已经尝试了以下链接中提供的所有解决方案,但没有一个

问题摘要:我们如何让FIWARE IdM Keyrock和FIWARE Authzforce正确设置AZF域,而不得到“AZF域不是为应用程序XYZ创建的”响应

我正在尝试使用FIWARE Orion、FIWARE PepProxy Wilma、FIWARE IdM Keyrock和FIWARE Authzforce正确配置服务器。 我到达了前3个组件正常工作并相互作用的点,但现在我尝试插入自动化,我得到以下错误:
未为应用程序创建AZF域
。 我已经尝试了以下链接中提供的所有解决方案,但没有一个有效:

在以下内容中,您可以找到复制我的场景的说明:

  • 使用Docker容器安装Orion

    • 在您的系统上创建一个工作目录(例如,
      /home/fiware orion docker
    • 在目录中创建一个名为
      docker compose.yml
      的新文件,其中包含以下内容:
    • 注意:如果没有DNS,它将永远不会发送通知
    • 注意2():来自docker容器的连接被路由到(iptables)转发链,这需要配置为允许通过它的连接。默认设置是断开连接。因此,如果您使用防火墙,您必须更改它:

      • sudo nano/etc/default/ufw
      • 将DEFAULTFORWARDPOLICY设置为“接受”。
        
        默认转发策略=“接受”
        
      • 保存文件
      • 重新加载ufw
        
        sudo ufw重新加载
        
    • 在您创建的目录中,在命令行中键入以下命令:
      sudocker compose up-d
    • 几秒钟后,您应该让您的上下文代理在端口
      1026
      上运行并侦听
    • 检查每件事是否与
      curl localhost:1026/version
  • 安装FIWARE IdM Keyrock(用于通过Orion上下文代理进行身份验证):

    • 警告-1:(如果下一个命令不起作用:
      
      sudo添加apt存储库“deb[arch=amd64]https://download.docker.com/linux/ubuntu 巧妙稳定“
    • 警告0:如果您有防火墙:禁用它,否则docker compose将无法工作
    • sudo-apt-get-install-docker-compose
    • mkdir fiware idm
    • cd固件idm
    • 创建docker-compose.yml
      nano docker compose.yml
    • sudo docker compose up-d
      (这将自动下载两个图像并运行IdM Keyrock服务。(-d用于在后台运行它))
    • 现在,您应该能够通过网站访问身份管理工具
      • 用户名:
        admin@test.com
      • 密码:
        1234
    • 注册新用户并通过界面启用它
    • 然后使用GUI执行以下操作:
      • 创建一个“组织”(如Organize1)
      • 创建一个“应用程序”
        • 步骤1:
          Name: Orion Idm
          Description: Orion Idm
          URL: http://localhost
          Callback URL: http://localhost
          Grant Type: Authorization Code, Implicit, Resource Owner Password, Client Credentials, Refresh Token
          Provider: newuser
          
        • 第二步:留空
        • 步骤3:选择“提供者”
        • 步骤4:
          • 单击“OAuth2凭据”并记下“客户ID”(94480bc9-43e8-4c15-ad45-0bb227e42e63)和“客户机密”(4f6ye5y7-b90d-473a-3rr7-ea2f6dd43246)
          • 单击“政治公众人物代理”,然后单击“注册新的政治公众人物代理”
          • 记下“应用程序Id”(94480bc9-43e8-4c15-ad45-0bb227e42e63)、“政治公众人物代理用户名”(政治公众人物代理数据356D2-dasa-4f95-a9hf-9AB06TCF929)和“政治公众人物代理密码”(政治公众人物代理a33667ec-57y1-498k-85aa-ef77ue5f6234)
          • 单击“授权”(用户)并使用两个角色授权所有现有用户(所有选项的购买者和提供者)
          • 单击“授权”(组织)并授权所有既有组织,同时具有两个角色(所有选项的购买者和提供者)
  • 安装FIWARE Authzforce

    • sudo-docker-pull-authzforce/server:latest
      (撰写本文时最新版本为8.1.0)
    • sudo docker run-d-p 8085:8080——名称authzforce\u server authzforce/server
  • 安装FIWARE PEP代理Wilma(用于为Orion启用https和身份验证):

    • git克隆
    • cd fiware pep代理
    • cp config.js.template config.js
    • nano config.js
    • 安装所有依赖项
      npm安装
    • 运行代理
      sudo节点服务器
  • 创建用户角色: 重新连接到IdM
    http://localhost:3000

    • 点击你的申请
    • 单击页面顶部的
      管理规则
    • 单击角色附近的
      +
      按钮
      • 名称:“审判”
    • 拯救
    • 单击权限附近的
      +
      按钮
      • 权限名称:trial1
      • 描述:trial1
      • HTTP操作:获取
      • 资源:版本
    • 拯救
    • 回到应用程序
    • 单击“授权用户”附近的“授权”
    • 将“试用”角色分配给您的用户
  • 现在使用邮递员获取代币:

    • 连接到localhost:3000/oauth2/token并发送以下参数
      • 正文:
      • 用户名:
      • 密码:
      • 授权类型:密码
      • 标题:
      • 内容类型:application/x-www-form-urlencoded
      • 授权:基本
    • 注意获得的
      access\u令牌
  • 尝试使用以下参数连接到Orion:

    • 标题:
      • X-auth-token:
      <
          version: "3.5"
      services:
          keyrock:
              image: fiware/idm:7.6.0
              container_name: fiware-keyrock
              hostname: keyrock
              networks:
                  default:
                      ipv4_address: 172.18.1.5
              depends_on:
                  - mysql-db
              ports:
                  - "3000:3000"
              environment:
                  - DEBUG=idm:*
                  - IDM_DB_HOST=mysql-db
                  - IDM_HOST=http://localhost:3000
                  - IDM_PORT=3000
                  # Development use only
                  # Use Docker Secrets for Sensitive Data
                  - IDM_DB_PASS=secret
                  - IDM_DB_USER=root
                  - IDM_ADMIN_USER=admin
                  - IDM_ADMIN_EMAIL=admin@test.com
                  - IDM_ADMIN_PASS=1234
      
          mysql-db:
              restart: always
              image: mysql:5.7
              hostname: mysql-db
              container_name: db-mysql
              expose:
                  - "3306"
              ports:
                  - "3306:3306"
              networks:
                  default:
                      ipv4_address: 172.18.1.6
              environment:
                  # Development use only
                  # Use Docker Secrets for Sensitive Data
                  - "MYSQL_ROOT_PASSWORD=secret"
                  - "MYSQL_ROOT_HOST=172.18.1.5"
              volumes:
                  - mysql-db:/var/lib/mysql
      
      networks:
          default:
              ipam:
                  config:
                      - subnet: 172.18.1.0/24
      volumes:
          mysql-db: ~
      
      Name: Orion Idm
      Description: Orion Idm
      URL: http://localhost
      Callback URL: http://localhost
      Grant Type: Authorization Code, Implicit, Resource Owner Password, Client Credentials, Refresh Token
      Provider: newuser
      
      var config = {};
      
          // Used only if https is disabled
          config.pep_port = 5056;
          config.https = undefined
      
          config.idm = {
              host: 'localhost',
              port: 3000,
              ssl: false
          }
      
          config.app = {
              host: 'localhost',
              port: '1026',
              ssl: false // Use true if the app server listens in https
          }
      
          config.response_type = 'code';
      
          // Credentials obtained when registering PEP Proxy in app_id in Account Portal
          config.pep = {
              app_id: '91180bc9-43e8-4c14-ad45-0bb117e42e63',
              username: 'pep_proxy_dad356d2-dasa-4f95-a9hf-9ab06tccf929',
              password: 'pep_proxy_a33667ec-57y1-498k-85aa-ef77ue5f6234',
              trusted_apps : []
          }
      
          // in seconds
          config.cache_time = 300;
      
          // list of paths that will not check authentication/authorization
          // example: ['/public/*', '/static/css/']
          config.public_paths = [];
      
          config.magic_key = undefined;
      
          module.exports = config;
      
          config.authorization = {
              enabled: true,
              pdp: 'authzforce',      // idm|authzforce  
              azf: {
                  protocol: 'http',
                  host: 'localhost',
                  port: 8085,
                  custom_policy: undefined, // use undefined to default policy checks (HTTP verb + path).
              } 
          }