我想通过我的 Keycloak IdM 在我的 Orion API 上添加身份验证。 我知道可以将 Orion 与 Pep Proxy Wilma 和 Keyrock 一起使用来完成这项任务,并且可能的解决方法是在此 link(7 年前)上将 keyrock 与 keycloak 集成。
你对此有什么消息或建议吗?
提前谢谢你。
有一个(相对较新的)解决方案可用。除了 Wilma,您还可以使用 Kong-API-Gateway 作为带有 FIWARE-PEP-Plugin 的 PEP 代理。这样,身份验证(和授权)可以委托给 Keycloak。您可以在这两个演示文稿中找到更多相关信息:
kong.yml
文件是:
_format_version: "2.1"
_transform: true
services:
- host: "orion_ip"
name: "orion"
path: "/v2"
port: 1026
protocol: http
routes:
- name: orion
paths:
- /orion
strip_path: true
plugins:
- name: pep-plugin
config:
authorizationendpointtype: Keycloak
authorizationendpointaddress: https://keycloak_ip
keycloakrealm: myrealm
keycloakclientid: clientid
keycloakclientsecret: clientsecret
keycloackadditionalclaims:
"http.fiware-servicepath": "fiware-servicepath"
"http.fiware-service": "fiware-service"
我找到了运行 docker 镜像所需的所有参数(在 powershell 中):
docker run -d --name kong-dbless `
-v "$(pwd):/kong/declarative/" `
-e "KONG_DATABASE=off" `
-e "KONG_DECLARATIVE_CONFIG=/kong/declarative/kong.yml" `
-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" `
-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" `
-e "KONG_PROXY_ERROR_LOG=/dev/stderr" `
-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" `
-e "KONG_ADMIN_LISTEN=0.0.0.0:8001" `
-e KONG_LICENSE_DATA `
-e "KONG_LOG_LEVEL=info" `
-e "KONG_PLUGINS=bundled,pep-plugin" `
-e "KONG_PLUGINSERVER_NAMES=pep-plugin" `
-e "KONG_PLUGINSERVER_PEP_PLUGIN_QUERY_CMD=/go-plugins/pep-plugin -dump" `
-e "KONG_PLUGINSERVER_PEP_PLUGIN_START_CMD=/go-plugins/pep-plugin" `
-p 8000:8000 `
-p 8001:8001 `
quay.io/fiware/kong:0.3.3
我还想通过 Kong 和 KeyCloak(在 OpenShift 上)保护和控制对 Orion 的访问(RBAC)。我还没有找到关于此设置的明确文档。您介意分享您用于执行此基础设施的不同步骤/配置文件吗?
提前致谢。
刘