首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置Fiware PEP代理、Keyrock和Orion上下文代理

配置Fiware PEP代理、Keyrock和Orion上下文代理
EN

Stack Overflow用户
提问于 2021-04-19 19:12:27
回答 1查看 93关注 0票数 0

我正在尝试集成Keyrock和PEP代理,以保护对上下文代理的访问,但我遇到了一些问题。

我想实现的是,只有在Keyrock中注册的有决心的用户才能访问上下文代理。

我学习了Fiware教程,但在那个开发场景中,有一个应用程序监听在Keyrock中注册的端口3000。但是,如果没有那个教程应用程序,我如何才能获得相同的结果呢?我不能在没有应用程序的情况下保护对上下文代理的访问吗?

如果可能的话,如果能得到一些帮助就太好了。这里有我的docker-compose文件的相关部分:

代码语言:javascript
复制
keyrock:
    image: fiware/idm:${KEYROCK_VERSION}
    container_name: fiware-keyrock
    hostname: keyrock
    networks:
      default:
        ipv4_address: 172.18.1.5
    depends_on:
        - mysql-db
    ports:
        - "${KEYROCK_PORT}:${KEYROCK_PORT}" # localhost:3005
        - "${KEYROCK_HTTPS_PORT}:${KEYROCK_HTTPS_PORT}" # localhost:3443
    environment:
        - "DEBUG=idm:*"
        - "IDM_DB_HOST=mysql-db"
        - "IDM_DB_PASS_FILE=/run/secrets/my_secret_data"
        - "IDM_DB_USER=root"
        - "IDM_PORT=${KEYROCK_PORT}"
        - "IDM_HOST=http://localhost:${KEYROCK_PORT}"
        - "IDM_HTTPS_ENABLED=${IDM_HTTPS_ENABLED}"
        - "IDM_HTTPS_PORT=${KEYROCK_HTTPS_PORT}"
        - "IDM_ADMIN_USER=admin"
        - "IDM_ADMIN_EMAIL=admin@test.com"
        - "IDM_ADMIN_PASS=1234"
    secrets:
        - my_secret_data
    healthcheck:
        interval: 5s
# Database
mysql-db:
    restart: always
    image: mysql:${MYSQL_DB_VERSION}
    hostname: mysql-db
    container_name: db-mysql
    expose:
      - "${MYSQL_DB_PORT}"
    ports:
      - "${MYSQL_DB_PORT}:${MYSQL_DB_PORT}"
    networks:
      default:
        ipv4_address: 172.18.1.6
    environment:
      - "MYSQL_ROOT_PASSWORD_FILE=/run/secrets/my_secret_data"
      - "MYSQL_ROOT_HOST=172.18.1.5" # Allow Keyrock to access this database
    volumes:
      - mysql-db:/var/lib/mysql
    secrets:
      - my_secret_data

orion-proxy:
    image: fiware/pep-proxy
    container_name: fiware-orion-proxy
    hostname: orion-proxy
    networks:
      default:
        ipv4_address: 172.18.1.10
    depends_on:
        - keyrock
    ports:
        - "1027:1027"
    expose:
        - "1027"
    environment:
        - PEP_PROXY_APP_HOST=orion
        - PEP_PROXY_APP_PORT=1026
        - PEP_PROXY_PORT=1027
        - PEP_PROXY_IDM_HOST=keyrock
        - PEP_PROXY_HTTPS_ENABLED=false
        - PEP_PROXY_AUTH_ENABLED=false
        - PEP_PROXY_IDM_SSL_ENABLED=false
        - PEP_PROXY_IDM_PORT=3005
        - PEP_PROXY_APP_ID= <Obtained in Keyrock>
        - PEP_PROXY_USERNAME= <Obtained in Keyrock>
        - PEP_PASSWORD= <Obtained in Keyrock>
        - PEP_PROXY_PDP=idm
        - PEP_PROXY_MAGIC_KEY=1234

为了测试它,我使用localhost:1026 (orion context broker URL)注册了一个带有PEP代理的测试应用程序(从那里我得到了PEP_PROXY_APP_IDPEP_PROXY_USERNAMEPEP_PASSWORD)。

当我运行docker容器时,它可以工作,但当我尝试使用此bash (将CLIENT_IDCLIENT_SECRET更改为在应用程序的OAuth2字段中获得的内容,将https://idm/oauth2/token更改为http://localhost:3005/oauth2/token)并使用管理员凭据获取访问令牌时,问题就出现了。

我得到invalid_client: Invalid client: client is invalid错误。

如果你需要查看更多的文件,尽管问我。

EN

回答 1

Stack Overflow用户

发布于 2021-04-26 17:33:03

关于第一个问题,是的,创建Keyrock的应用程序来保护猎户座是强制性的。您还必须在应用程序中创建一些角色和权限,并将其分配给所需的用户。查看有关roles and permissions的FIWARE教程

关于“客户端是无效的错误”,我猜是在解析JSON文件中的凭证时bash脚本出了问题。我已经测试了在bash脚本中硬编码客户端id、客户端密钥和用户名/密码,并且Keyrock成功地创建了令牌(还要检查访问令牌的显示,因为Keyrock的响应是一个JSON)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67160883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档