我正在尝试使用mod_auth_openidc配置Keycloak。我正在使用Apache 2.4和简单的Java servlets / html页面。我有Keycloak对用户进行身份验证并重定向到受保护的资源。 现在,我想访问用户个人资料。我假设我必须从URL查询字符串中提取“代码”,然后通过调用Keycloak API之一将其替换为id_token。那是对的吗? 我不确定如何获取此“代码”。我看到URL中的代码击中了我的OIDCRedirectURI。但是我不确定如何去实现它。如果我的OIDCRedirectURI是servlet,即使我看到重定向到该servlet,也不会遇到doGet方法,因此我无法获取请求并访问查询参数。我相信我做错了什么。您能帮我弄清楚如何获取代码并最终获取id_token吗? 谢谢!
答案 0 :(得分:1)
您无法获取“代码”,也不需要在受保护的应用程序中进行操作,因为mod_auth_openidc
会将其交换为ID令牌而不是您的应用程序(这是mod_auth_openidc
的工作)。如果要访问ID令牌中的用户配置文件,可以在HTTP请求标头中找到它们。 mod_auth_openidc
在下图中使用OIDC_CLAIM_
前缀自动将声明扩展为HTTP请求标头。
答案 1 :(得分:0)
某些Apache安全模块以带下划线的形式静默删除标头...
所有声明应出现在请求标题中。访问令牌除外,因为其前缀已在mod_auth_openidc代码(当前版本)中进行了硬编码