我有一个 NGINX (1.14.1),它将 /auth 请求转发到在云中运行的 Keycloak (14.0.0)。
这是 /etc/nginx/conf.d/my.domain.biz.conf 中的 NGINX 配置
server {
listen 80;
server_name my.domain.biz;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name my.domain.biz;
ssl_certificate /etc/letsencrypt/live/domain.biz/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.biz/privkey.pem;
location /auth {
proxy_pass http://127.0.0.1:8080/auth;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Scheme $scheme;
add_header X-Frame-Options "ALLOW-FROM https://my.domain.biz/";
add_header Content-Security-Policy "frame-src https://my.domain.biz/; frame-ancestors https://my.domain.biz/; object-src https://my.domain.biz/;";
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在 Keycloak 的管理控制台https://my.domain.biz/auth/中创建一个领域和一个公共客户端。我可以从https://my.domain.biz/auth/realms/myrealm/.well-known/openid-configuration列出端点
另外,我还更新了领域设置的安全防御中的以下两个值,
X-Frame-Options: ALLOW-FROM https://my.domain.biz
Content-Security-Policy: frame-src https://my.domain.biz/; …Run Code Online (Sandbox Code Playgroud) 注册时,Keycloak 提供了通过 Keycloak 主题的注册页面模板通过“输入”元素添加自定义用户属性的功能,如下所示:
<input id="user.attributes.[the_custom_attribute]" name="user.attributes.[the_custom_attribute]" />
Run Code Online (Sandbox Code Playgroud)
但是,这似乎只有在用户创建帐户并提交表单时才有效。
如果用户通过社交身份提供商(谷歌、微软、github 等)登录,我们如何添加自定义用户属性?
我创建了一个客户端角色 asspecial_agent并添加了两个属性 asapprove_leave和raise_leave。
我正在使用Javascript 适配器并且能够在我的网站上成功登录。我还可以接收分配给用户的客户端角色。但是,我想获取客户端角色中指定的自定义属性。下面是 keycloak.tokenParsed 的结果
有没有办法检索客户端角色属性?我Mappers在客户端设置中查找了,但无法弄清楚详细信息。