6

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

我遇到的问题与重定向 uri 有关。为原生应用程序使用 AAD 提供的重定向 uri 会导致 Safari Mobile 出现错误。我尝试添加一个自定义重定向 uri,该 uri 将重定向到我的 iOS 应用程序,但由于它不在 https url 方案中,因此无法在 azure 广告配置中进行验证。

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

编辑

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

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

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

4

2 回答 2

2

我是 AppAuth 的主要维护者。

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

  1. 为您的应用配置通用链接,以便在操作系统中注册以处理对特定 https 域的请求。这是最安全的选项,因为它可以防止设备上的任何其他应用程序尝试注册相同的链接。但是,此选项仅适用于 iOS 9+。

  2. 创建一个捕获授权响应参数的中间页面,然后将它们转发到您的自定义方案 URI。我在这里维护了一个 Android 演示,其中包括 Microsoft 集成。不幸的是,中间页面确实需要用户额外点击。

于 2017-01-26T20:56:55.293 回答
0

Azure AD B2C 支持 Web 应用、移动应用(如 iOS 和 Android)以及本机应用。

要将 Google 帐户与 Azure AD B2C 集成,您需要转到 Google Developers Console 以创建应用程序。然后将 Google 配置为 Azure AD B2C 中的身份提供者。请参阅以下链接了解更多详情。

https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-setup-goog-app

然后,您需要向 Azure AD B2C 租户注册应用程序。如果应用程序是移动或原生应用程序,例如 iOS,您可以选择它作为具有指定重定向 URI 的 Native Client 进行配置。您可以参考以下链接进行申请注册。

在此处输入图像描述

要在您的应用程序上启用登录,您还需要创建登录策略。此策略描述了消费者在登录期间将经历的体验以及应用程序在成功登录时将收到的令牌内容。欲知更多详情,请参阅以下链接。

https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-reference-policies

顺便说一句,您还可以参考以下链接获取有关构建 iOS 应用程序的示例。

https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-devquickstarts-ios

于 2017-01-03T07:27:05.113 回答