使用两个Azure移动和Web应用程序注册

时间:2019-03-14 04:39:41

标签: spring azure azure-active-directory adal4j

我有一个移动应用程序,可直接从azure登录中获取令牌。我有一个在春季启动中使用adal4j的服务。我无法使用移动设备生成的令牌来认证Spring服务。例如,我为移动和Web服务使用了两个不同的Azure应用程序注册。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

是的,OAuth 2.0 on-behalf-of flow应该适用于您的方案。这些步骤构成了On-Behalf-Of流程。

enter image description here

答案 1 :(得分:1)

我的理解是您已经在Azure中创建了2个企业应用程序。 1)您的移动应用程序的企业应用程序(类型:本机) 2)您的Web API应用程序的企业应用程序(类型:WebAPI)

对于本机应用程序,您不需要客户端密码,但对于Web API应用程序则需要客户端密码。

现在进入关键配置: 在这两种方法中,请更新清单文件以将 oauth2AllowImplicitFlow 设置为 true 另外,在您的Web API企业应用程序中,请在已知的客户端应用程序中具有本机应用程序的应用程序ID “ knownClientApplications”:[“

现在,当从本机应用程序通过端点调用Web API时,将令牌作为“授权”传递给请求标头:“ Bearer”

还请注意:如果您需要检索组声明,请更新两个企业应用程序中的清单以为此属性设置以下设置 “ groupMembershipClaims”:“ SecurityGroup”

更新: 在本机应用程序的权限下,请添加Web API应用程序注册以允许访问

答案 2 :(得分:0)

Azure AD为某些资源(映射到Azure AD应用程序)发出令牌。当我们调用AcquireToken()时,我们需要提供一个resourceID,只有一个resourceID。结果将具有只能用于提供的资源(id)的令牌。有多种方法可以使用相同的令牌,但不建议您这样做,因为它会使操作日志记录,身份验证过程跟踪等变得复杂。因此,最好查看Azure和ADAL库提供的其他选项。 ADAL库支持使用刷新令牌为多个资源获取多个访问令牌。这意味着一旦对用户进行身份验证,ADAL的身份验证上下文将能够生成对多个资源的访问令牌,而无需再次对用户进行身份验证。

更多详细信息here