ios - Azure AD B2C 在 Xamarin.Forms iOS 应用程序中指定多个身份提供程序

标签 ios azure xamarin xamarin.forms adal

我使用了以下提供的示例 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/

相关文章:

sql - 通过 Powershell 或 CLI 在 Azure Synapse 上运行 SQL 脚本

ios - 将 X 轴标签分配给图表框架

ios - 我可以将用户名附加到Hockey App的崩溃报告中吗?

iphone - iOS 旋转 View 只有一个 View Controller 的 View

Azure Policy - 与数组参数中的通配符匹配

linux - 如何在 Azure Linux VM 上转移域和创建子域

c# - 如何读取 Xamarin Forms PCL 项目中的文本文件?

c# - 我可以在 Xamarin.iOS 项目中使用 T4 文本生成吗?

ios - 如何将 Swift 可选的 NSNumber 转换为可选的 Int? (我的代码有什么改进吗?)

ios - 不在 Xamarin 的 UIViewController 上调用 dealloc