我使用了以下提供的示例 iOS 项目 here 。
该示例非常简单,我可以让 ADAL 加载登录 View 并请求用户身份验证,一切都很好。
现在,我打算更进一步,显示具有多个身份提供商(G+、Twitter、Fb 等)的登录 View 。
在 Web 应用程序中,当我请求身份验证时,我可以看到多个身份提供商,因为我们可以在 web.config 中指定策略,如下所示:
<add key="ida:Tenant" value="sometenant.onmicrosoft.com" />
<add key="ida:ClientId" value="clientidguid" />
<add key="ida:ClientSecret" value="clientsecret" />
<add key="ida:AadInstance" value="https://login.microsoftonline.com/{0}{1}{2}" />
<add key="ida:RedirectUri" value="https://localhost:44321/" />
<add key="ida:SignUpPolicyId" value="b2c_1_xyz_policy" />
<add key="ida:SignInPolicyId" value="b2c_1_xyz_sign_in" />
<add key="ida:UserProfilePolicyId" value="b2c_1_xyz_editing" />
我有与应用程序中使用的相同的重定向 uri(我也尝试过对 native 客户端使用重定向 uri,但没有成功)
我想知道如何在 Xamarin 表单项目中指定策略,以便可以在我的 iOS 应用程序中看到用户登录的多个身份提供程序?
提前致谢!
最佳答案
我最终通过在 authContext.AcquireTokenAsync() 方法中指定“extraQueryParameters”自行解决了这个问题。 This post为提出所需的解决方案提供了很大帮助。
var authResult = await authContext.AcquireTokenAsync(resource, clientId, new Uri(returnUri), new PlatformParameters(UIApplication.SharedApplication.KeyWindow.RootViewController), UserIdentifier.AnyUser, "&scope=openid&p=B2C_1_xyz_sign_in");
“scope”是必需参数,“p”参数指定要使用的策略。
根据我在 Azure 门户中设置的策略,我现在有多个身份提供商可用于登录我的应用程序。万岁! :)
HTH...
关于ios - Azure AD B2C 在 Xamarin.Forms iOS 应用程序中指定多个身份提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32949988/