我在Azure AD中配置了一个B2C服务,并将Google作为身份验证提供商,但却发现Google不允许通过嵌入式Web视图进行身份验证请求。然后我找到了AppAuth,但是我在使用示例iOS应用程序时遇到了很多困难。
我遇到的问题与重定向uri有关。使用AAD为本机应用程序提供重定向uri会导致Safari Mobile出错。我尝试添加一个自定义重定向uri,它会重定向到我的iOS应用,但不能,因为它在azure广告配置中验证失败,因为它不在https url方案中。
是否可以将AppAuth与Azure AD B2C一起使用?有没有办法正确配置它或是否需要在MS端进行更改?
修改
我有Azure AD B2C设置和工作,包括Google帐户登录。这在Web浏览器中按预期工作,但是当我尝试使用嵌入式webview从iOS登录Google时,我得到 disallowed_useragent 。研究这个我遇到了AppAuth图书馆,我认为这是一个安全的选择解决方案,除了由于重定向问题它不能与B2C一起工作,或者至少我找不到一种使这项工作成功的方法。
我希望我能够在B2C中提供我在iOS上的应用程序所独有的重定向URL,以便SFSafariViewController可以重定向回我的应用程序。在B2C中使用Web配置似乎是正确的方法,但它需要使用https而不是自定义方案。
有没有办法为自定义重定向URI配置B2C?
答案 0 :(得分:2)
我是AppAuth的主要维护者。
由于Microsoft目前将重定向URI方案限制为https,因此iOS上有两个选项:
为您的应用配置Universal Link,以便在操作系统中注册它以处理对特定https域的请求。这是最安全的选项,因为它可以防止设备上的任何其他应用程序尝试注册相同的链接。但是,此选项仅适用于iOS 9 +。
创建一个捕获授权响应参数的中间页面,然后将这些参数转发到您的自定义方案URI。我维护了一个Android演示,其中包括Microsoft集成here。遗憾的是,中间页面需要用户点击一下。
答案 1 :(得分:0)
Azure AD B2C支持Web应用,移动应用,如iOS和Android,以及Native应用。
要将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