Keycloak 用于nginx反向代理的keydape-RBAC
我开始使用Key斗篷,下面是一个我想测试的设置 我想测试这个场景: 这是可行的,但我想在Nginx代理之后实现对应用程序的基于角色的访问,我无法理解jwt令牌的有效负载是如何生成的 以下是我的JWT代币有效负载:Keycloak 用于nginx反向代理的keydape-RBAC,keycloak,Keycloak,我开始使用Key斗篷,下面是一个我想测试的设置 我想测试这个场景: 这是可行的,但我想在Nginx代理之后实现对应用程序的基于角色的访问,我无法理解jwt令牌的有效负载是如何生成的 以下是我的JWT代币有效负载: "jti": "f5f07b6f-ccae-4f57-a8ea-ae02ebb3cb12", "exp": 1569263630, "nbf": 0, "iat": 1569227630, "iss": "https://keycloak.domain.local
"jti": "f5f07b6f-ccae-4f57-a8ea-ae02ebb3cb12",
"exp": 1569263630,
"nbf": 0,
"iat": 1569227630,
"iss": "https://keycloak.domain.local/auth/realms/LDAP_test",
"sub": "fedc6baf-4ba4-4fa6-924c-9501edf070f7",
"typ": "Serialized-ID",
"auth_time": 0,
"session_state": "aa0052ee-b5e1-45cc-bee4-e7bccdfa4a59",
"state_checker": "sC_nvlDXfjUDHhC15ZDpPauX5JkxhvVtYUOn62PhtV8"
我希望我的令牌包含角色、用户名和电子邮件,但我不知道如何将其放在那里。客户是否与令牌或密钥斗篷的内容有某种关联?客户是否总是将他所有的东西都放在令牌或密钥斗篷中
以下是我的Nginx客户端设置:
server {
server_name demo-a.domain.local;
location / {
proxy_pass http://10.10.10.168/index.html;
access_by_lua '
local opts = {
redirect_uri_path = "/redirect_uri",
accept_none_alg = true,
discovery = "https:/keycloak.domain.local/auth/realms/LDAP_test/.well-known/openid-configuration",
client_id = "nginx-gateway",
client_secret = "19fe43bc-4167-4433-816a-eb96da33f9a3",
redirect_uri_scheme = "https",
logout_path = "/logout",
redirect_after_logout_uri = "https://keycloak.domain.local/auth/realms/LDAP_test/protocol/openid-connect/logout?redirect_uri=https://www.nginx-gateway.domain.local/",
redirect_after_logout_with_id_token_hint = false,
session_contents = {id_token=true}
}
-- call introspect for OAuth 2.0 Bearer Access Token validation
local res, err = require("resty.openidc").authenticate(opts)
if err then
ngx.status = 403
ngx.say(err)
ngx.exit(ngx.HTTP_FORBIDDEN)
end
';
}
提前谢谢 您是否将客户端配置为openid客户端?是UI还是机器客户端
要使JWT具有角色,请遵循以下流程:
- 在KeyClope管理控制台中创建客户端并支持它 . 李>
- 将用户添加到keydove李>
- 为用户分配角色李>
- 将您的客户端配置为具有KeyClope客户端的客户端id李>
- 练习浏览器或机器流程,包括将JWT传递给 客户JWT将包含作为声明的角色
- 在KeyClope管理控制台中创建客户端并支持它 . 李>
- 将用户添加到keydove李>
- 为用户分配角色李>
- 将您的客户端配置为具有KeyClope客户端的客户端id李>
- 练习浏览器或机器流程,包括将JWT传递给 客户JWT将包含作为声明的角色
- 仍在调试它,但这里有一些您肯定需要的提示。。。。
您需要在使用的同时仍在调试它,但这里有一些您肯定需要的提示。。。。
您需要在使用时保持冷静。好的,完全忘记这个问题,但这里仍然有一个解决方案
只需使用适当的oidc代理,如gatekeeper(louketo now)或oauth2代理。好的,完全忘记这个问题,但这里仍然有一个解决方案 只需使用适当的oidc代理,如gatekeeper(louketo now)或oauth2代理