Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有mod_auth_openidc、检索代码和id_令牌的密钥斗篷_Java_Apache_Single Sign On_Keycloak_Mod Auth Openidc - Fatal编程技术网

Java 带有mod_auth_openidc、检索代码和id_令牌的密钥斗篷

Java 带有mod_auth_openidc、检索代码和id_令牌的密钥斗篷,java,apache,single-sign-on,keycloak,mod-auth-openidc,Java,Apache,Single Sign On,Keycloak,Mod Auth Openidc,我正在尝试用mod_auth_openidc配置keydepot。我正在使用Apache2.4和简单的Javaservlet/html页面。我有一个keydape认证用户并重定向到受保护的资源。 现在,我想访问用户配置文件。我假设我必须从URL查询字符串中提取代码,然后通过调用其中一个KeyClope API将其交换为id_令牌。对吗? 我不知道如何获取此代码。我在URL中看到了与我的DirectURI匹配的代码。但我不知道怎么去。如果我的OIDCRedirectURI是一个servlet,即使

我正在尝试用mod_auth_openidc配置keydepot。我正在使用Apache2.4和简单的Javaservlet/html页面。我有一个keydape认证用户并重定向到受保护的资源。 现在,我想访问用户配置文件。我假设我必须从URL查询字符串中提取代码,然后通过调用其中一个KeyClope API将其交换为id_令牌。对吗? 我不知道如何获取此代码。我在URL中看到了与我的DirectURI匹配的代码。但我不知道怎么去。如果我的OIDCRedirectURI是一个servlet,即使我看到重定向到servlet,doGet方法也不会被命中,因此我无法访问请求和查询参数。我相信我做错了什么。你能帮我弄清楚如何获取代码并最终获取id_令牌吗?
谢谢大家!

您无法获取代码,也不需要在受保护的应用程序中执行此操作,因为mod_auth_openidc将其交换到ID令牌而不是您的应用程序。这是mod_auth_openidc的工作。如果要访问ID令牌中的用户配置文件,可以在HTTP请求头中找到它们。mod_auth_openidc使用下图中的OIDC_CLAIM_前缀自动将声明扩展到HTTP请求头中


某些Apache安全模块会自动删除带有下划线的标题

首先确保在Apache配置文件中将OIDCPasclaimsas参数设置为headers或两者都设置为headers。 然后将OIDC声明前缀更改为OIDC-通过OIDCClaimPrefix
所有声明都应出现在请求标题中。除了访问令牌,因为其前缀在当前版本的mod_auth_openidc代码中是硬编码的

谢谢!但我在标题中没有看到任何OIDC_索赔标记。我只看到cookie mod_auth_openidc_session=3aa025d7-1d48-a94f-b0f6-093523dce0c8I也尝试过将keydape与Tomcat适配器结合使用,尽管我倾向于Apache。我可以保护我的资源并登录到keydape,但是在标题中我看不到任何令牌或扩展的用户属性。也没有用于调用用户\u info端点的代码。文档中不清楚如何获取用户配置文件……您是否检查了受mod_auth_openidc保护的后端应用程序中的http请求头?由于mod_auth_openidc代理请求并添加头,您只能在受保护的应用程序中看到这些值。如果禁用此功能,请检查mod_auth_openidc配置。请参阅KeyClope Java适配器,不要将它们添加到请求头中。如果您使用keydove适配器,则可以在Java应用程序中使用keydove安全上下文获取它们。请参阅以下文件。好啊Tomcat适配器使用请求中的keyDopperPrincipal进行工作。谢谢你的提示!但是mod_auth_openidc不起作用。mod_auth_openidc保护的servlet在request.getHeaderNames上进行迭代,但除了cookie mod_auth_openidc_session=0e62bb80-0e37-0440-b934-6a2bc2fc97ab之外,我看不到任何与OIDC相关的内容。我的apache配置中有OIDCPassClaimsAs头。我还缺什么?