azure - 将 native iOS Azure SSO 与 Multi-Tenancy Web 应用程序集成

标签 azure single-sign-on azure-active-directory

场景:我已经注册了一个与 Azure SSO 兼容的 Multi-Tenancy Web 应用程序。我现在正在开发一个 iOS 应用程序,该应用程序也将支持该应用程序的 SSO 身份验证。

<小时/>

基于 https://azure.microsoft.com/en-us/resources/samples/active-directory-ios/ 中提供的示例我使用 WebApp 的委派权限为 iOS 应用程序创建了一个 native 应用程序(引用: https://stackoverflow.com/a/29810124 )。

这适用于创建应用程序的 AAD 中存在的任何用户。但是,一旦我想要从之前已授权 WebApp 的不同域进行 SSO,我就会收到错误消息:

在目录 DOMAIN_HERE.onmicrosoft.com 中找不到标识符为“CLIENT_ID_HERE”的应用程序

这意味着 native 应用程序不是 Multi-Tenancy 的?考虑到域外的用户应该可以单点登录应用程序,这似乎有点奇怪。

<小时/>

现在,对于基于浏览器的 SPA,我只需手动调用通用 Azure 登录页面即可同意并获取用户的授权代码。然后,我将此代码发送到执行 OAuth 握手并获取有效 token 的后端(WebApp)。这不需要应用程序提供 client_secret,因为 SPA 实际上并不执行 token 检索。

因此,当我尝试改用 WebApp 的 client_id 时(类似于 https://stackoverflow.com/a/27033816 的建议),我遇到了 Azure AD iOS SDK 的错误。要求我也提供客户 secret 。看起来 SDK 正在抽象相当多的内容并为您获取 token ,而不是在我可以简单地获取授权代码并将其发送到我的 WebApp 时执行步骤。

<小时/>

TLDR:我的要求与multiple-tenant, multiple-platform, multiple-services single sign-on using Azure Active directory中概述的非常相似。我有多个客户端(浏览器、iOS、Android),它们都需要能够使用 Azure SSO。我假设移动应用程序应该能够使用我现有的 WebApp 来对用户进行身份验证。

上一篇 SO 帖子的答案中提出的问题在某种程度上解释了我的问题:

How can my mobile app access my multi-tenant web api on behalf of the user?

引用文献

  1. https://learn.microsoft.com/en-us/azure/active-directory/active-directory-authentication-scenarios#native-application-to-web-api
  2. https://github.com/Azure-Samples/active-directory-dotnet-webapi-multitenant-windows-store

最佳答案

目前在Azure门户上注册的 native 应用程序不支持 Multi-Tenancy 。您可以考虑使用V2.0 endpoint它还支持 Microsoft 帐户。

TLDR: My requirements are very similar to the ones outlined in multiple-tenant, multiple-platform, multiple-services single sign-on using Azure Active directory where I have multiple clients (browser, iOS, Android) that all need to be able to use Azure SSO. I'm assuming the mobile apps should be able to use my existing WebApp to authenticate the users.

您的意思是具有不同的字体端,而 Multi-Tenancy Web 应用程序是后端吗?这种场景下,无需在门户上注册另一个原生客户端应用,可以引用here关于为 iOS 应用程序添加身份验证。

关于azure - 将 native iOS Azure SSO 与 Multi-Tenancy Web 应用程序集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41050567/

相关文章:

java - 如何在 Spring Boot 中设置基于预身份验证 header 的身份验证?

reactjs - 将应用程序从react-azure-adb2c移植到react-adal

asp.net - 将应用程序和数据库部署到 Azure 时出现问题

security - Adfs: token 解密证书和依赖方签名验证证书之间的区别

azure - Azure Web App 上每个实例的指标发生了什么变化

Node.js 使用 HTTP GET 实现 open.epic 单点登录?

azure - 如何从 Azure AD 查找重复用户?

azure - 在 Azure Active Directory 中正确实现 Multi-Tenancy

c# - Windows Azure Dnn Web API 路由未注册

azure - 我可以使用 Id 之外的自定义键创建 azure cosmos db 文档吗