如何使用符合oidc的令牌在Java中为Graph API获取第二个访问令牌。海外建筑运营管理局流量
我使用angular中的angular-oauth2-oidc库通过PKCE授权流登录,然后将令牌传递到后端以保护我的自定义API Spring引导后端充当oauth2资源服务器,并使用令牌保护我的自定义API SecurityConfiguration.java如何使用符合oidc的令牌在Java中为Graph API获取第二个访问令牌。海外建筑运营管理局流量,java,angular,azure-active-directory,microsoft-graph-api,openid-connect,Java,Angular,Azure Active Directory,Microsoft Graph Api,Openid Connect,我使用angular中的angular-oauth2-oidc库通过PKCE授权流登录,然后将令牌传递到后端以保护我的自定义API Spring引导后端充当oauth2资源服务器,并使用令牌保护我的自定义API SecurityConfiguration.java http.cors().and() .authorizeRequests().antMatchers("/home").permitAll() .and() .aut
http.cors().and()
.authorizeRequests().antMatchers("/home").permitAll()
.and()
.authorizeRequests().antMatchers("/actuator/health").permitAll()
.and()
.authorizeRequests().antMatchers("/**").authenticated()
.and()
.oauth2ResourceServer().jwt();
默认情况下,Azure AD仅为图形API返回有效的JWT令牌。如果您想对自己的API使用Azure AD OIDC身份验证,则需要与不兼容的提供商打交道。
因此,我在应用程序注册中创建了一个自定义范围→ 公开API页面。然后,我在Angular客户机发起的授权请求中添加了这个范围以及默认的openid范围
现在我有了这个令牌,它不再在jwt头中包含“nonce”(我需要这样做来保护我的定制api),我如何使用这个令牌来获取新令牌?
然后按照代表流创建我的图形api调用
是否有人能指导我正确地获取第二个访问令牌?您需要在API中发送两条消息:
- 将访问令牌发送到令牌端点,以获取图形访问令牌
- 将图形访问令牌发送到用户信息端点
Allen的示例应该演示如何将其纳入Spring Security。您看到了吗
&assertion=eyJ0eXAiOiJKV***
是第一个令牌。您需要将其包含在获取第二个访问令牌的请求中。抱歉,我可能缺少一些内容。在Java中如何使用它?请参阅示例代码:usemsalAuthHelper.getOboToken(“https://graph.microsoft.com/.default)
。我之前已经向您提供了一份完整的。在实现它时有什么困难吗?谢谢,我找到了一个关于如何用Java创建POST请求的线程,并得到了正确的响应。解析JSON响应以仅检索新的访问令牌是另一个问题,但我终于让它工作起来了。