azure-active-directory - AppAuth 与 Azure AD B2C

标签 azure-active-directory appauth

我在 Azure AD 中配置了 B2C 服务,并将 Google 作为身份验证提供程序包含在内,结果发现 Google 不允许通过嵌入式 Web View 进行身份验证请求。然后我找到了 AppAuth,但我很难让示例 iOS 应用程序工作。

我遇到的问题与重定向 uri 有关。使用 AAD 为 native 应用程序提供的重定向 uri 会导致 Safari Mobile 出现错误。我试图添加一个自定义重定向 uri,它将重定向到我的 iOS 应用程序,但不能,因为它在 azure 广告配置中验证失败,因为它不在 https url 方案中。

是否可以将 AppAuth 与 Azure AD B2C 一起使用?有什么方法可以正确配置它还是需要在 MS 端进行更改?

编辑

我有 Azure AD B2C 设置和工作,包括 Google 帐户登录。这在网络浏览器中按预期工作,但是当我尝试使用嵌入式 web View 从 iOS 登录 Google 时,我得到 disallowed_useragent .研究这个我遇到了 AppAuth我认为库是首选的安全解决方案,除了由于重定向问题它不适用于 B2C 的事实,或者至少我还没有找到使这项工作的方法。

我希望我需要能够在 B2C 中提供一个重定向 URL,它是我在 iOS 上的应用程序所独有的,以便 SFSafariViewController 可以重定向回我的应用程序。在 B2C 中使用 Web 配置似乎是正确的方法,但它需要使用 https 而不是自定义方案。

有没有办法为自定义重定向 URI 配置 B2C?

最佳答案

我是 AppAuth 的主要维护者。

由于 Microsoft 目前将重定向 URI 方案限制为 https,因此您在 iOS 上有两种选择:

  • 配置一个 Universal Link为您的应用程序注册,以便它在操作系统中注册以处理对特定 https 域的请求。这是最安全的选项,因为它可以防止设备上的任何其他应用程序尝试注册相同的链接。但是,此选项仅适用于 iOS 9+。
  • 创建一个中间页面来捕获授权响应参数,然后将这些参数转发到您的自定义方案 URI。我维护了一个这样做的 Android 演示,其中包括 Microsoft 集成,here .不幸的是,中间页面确实需要用户额外点击。
  • 关于azure-active-directory - AppAuth 与 Azure AD B2C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41417771/

    相关文章:

    azure - Powershell Get-AzureADAuditSignInLogs 未返回预期数量的日志

    c# - 在 Azure AD b2c 中创建新用户错误 : Another object with the same value for property proxyAddresses already exists

    angular - SPA 和守护进程应用程序的 jwt token 的不同受众

    ios - AppAuth - 外部浏览器窗口打不开?

    Azure Key Vault如何识别访问策略中分配的不同身份

    asp.net-core - 缺少客户端密码或客户端证书

    Flutter appauth 参数无效 : redirect_uri

    android - 针对身份服务器进行身份验证时 AppAuth oidc 无效状态错误

    android - 是什么阻止了其他应用窃取我的 Google OAuth 客户端 ID?

    ios - 在 iOS 上使用 AppAuth 库刷新身份验证 token