为移动设备和 Web 使用两个 Azure AD 应用程序注册
Using two azure AD app registrations for mobile and web
我有一个直接从 Azure 登录获取令牌的移动应用程序。我有一个在 spring 引导中使用 adal4j 的服务。我无法使用移动生成的令牌来验证 spring 服务。因为我为移动和 Web 服务使用了两种不同的 Azure 应用程序注册。有办法做到这一点吗?
Azure AD 为特定资源(映射到 Azure AD 应用程序)颁发令牌。当我们调用 AcquireToken() 时,我们需要提供一个 resourceID,只有一个 resourceID。结果将有一个只能用于提供的资源 (id) 的令牌。您可以通过多种方式使用相同的令牌,但不建议这样做,因为它会使操作日志记录、身份验证过程跟踪等复杂化。因此,最好查看 Azure 和 ADAL 库提供的其他选项。 ADAL 库支持使用刷新令牌为多个资源获取多个访问令牌。这意味着一旦用户通过身份验证,ADAL 的身份验证上下文将能够生成对多个资源的访问令牌,而无需再次对用户进行身份验证。
更多详细信息here。
是的,OAuth 2.0 on-behalf-of flow 应该适用于您的场景。这些步骤构成了 On-Behalf-Of 流程。
据我了解,您已在 Azure 中创建了 2 个企业应用程序。
1) 适用于您的移动应用程序的企业应用程序(类型:本机)
2) Web API 应用程序的企业应用程序(类型:WebAPI)
对于本机应用程序,您不需要客户端密码,但您需要 Web API 应用程序的客户端密码。
现在进入关键配置:
在这两个中,请更新清单文件以将 oauth2AllowImplicitFlow 设置为 true
此外,在您的 Web API 企业应用程序中,请在已知的客户端应用程序中提供您本机应用程序的应用程序 ID
"knownClientApplications": ["
现在,当从本机应用程序通过 end-point 调用您的 Web API 时,在您的请求 header 中将您的令牌作为 "Authorization" 传递:"Bearer "
另请注意:如果您需要检索组声明,请更新您的两个企业应用程序中的清单,使其具有以下设置 属性
"groupMembershipClaims": "SecurityGroup"
更新:
在本机应用的权限下,请添加Web API 应用注册以允许访问
我有一个直接从 Azure 登录获取令牌的移动应用程序。我有一个在 spring 引导中使用 adal4j 的服务。我无法使用移动生成的令牌来验证 spring 服务。因为我为移动和 Web 服务使用了两种不同的 Azure 应用程序注册。有办法做到这一点吗?
Azure AD 为特定资源(映射到 Azure AD 应用程序)颁发令牌。当我们调用 AcquireToken() 时,我们需要提供一个 resourceID,只有一个 resourceID。结果将有一个只能用于提供的资源 (id) 的令牌。您可以通过多种方式使用相同的令牌,但不建议这样做,因为它会使操作日志记录、身份验证过程跟踪等复杂化。因此,最好查看 Azure 和 ADAL 库提供的其他选项。 ADAL 库支持使用刷新令牌为多个资源获取多个访问令牌。这意味着一旦用户通过身份验证,ADAL 的身份验证上下文将能够生成对多个资源的访问令牌,而无需再次对用户进行身份验证。
更多详细信息here。
是的,OAuth 2.0 on-behalf-of flow 应该适用于您的场景。这些步骤构成了 On-Behalf-Of 流程。
据我了解,您已在 Azure 中创建了 2 个企业应用程序。 1) 适用于您的移动应用程序的企业应用程序(类型:本机) 2) Web API 应用程序的企业应用程序(类型:WebAPI)
对于本机应用程序,您不需要客户端密码,但您需要 Web API 应用程序的客户端密码。
现在进入关键配置: 在这两个中,请更新清单文件以将 oauth2AllowImplicitFlow 设置为 true 此外,在您的 Web API 企业应用程序中,请在已知的客户端应用程序中提供您本机应用程序的应用程序 ID "knownClientApplications": ["
现在,当从本机应用程序通过 end-point 调用您的 Web API 时,在您的请求 header 中将您的令牌作为 "Authorization" 传递:"Bearer "
另请注意:如果您需要检索组声明,请更新您的两个企业应用程序中的清单,使其具有以下设置 属性 "groupMembershipClaims": "SecurityGroup"
更新: 在本机应用的权限下,请添加Web API 应用注册以允许访问