2

我正在使用 MSAL 将我的 Xamarin.Forms-Windows 8.1-App 连接到带有自定义 SignInSignUp 策略的 Azure AD B2C(使用自定义电子邮件地址和密码登录用户)。针对 Azure AD 的“正常”身份验证(没有自定义策略)工作正常,但是当我使用该策略时,消息“我们现在无法连接到您需要的服务。请检查您的网络连接或稍后再试一次。” 每次提供凭据后都会出现(直接在对话框中)。由于对话框没有正确完成,我没有检索任何异常或 AuthenticationResult,因此我无法确定具体问题(互联网连接本身不是问题)。

注意:我也在 Xamarin.Forms-UWP-App 中尝试过这个,这导致我遇到同样的问题。在 iOS 下,它工作正常,对话框完成并正确关闭。

NuGet 版本:MSAL (Microsoft.Identity.Client):1.0.304142201-alpha Xamarin.Forms:2.3.2.118-pre1

那是我的代码(简化):

var clientId = "{My application's ClientId}";
var redirectUri = "urn:ietf:wg:oauth:2.0:oob";
var authority = "https://login.microsoftonline.com/{My Azure AD B2C}";
string[] scopes = { clientId };
var policy = "{My SignUpSignIn policy}";

var clientApplication = new PublicClientApplication (authority, clientId);
clientApplication.RedirectUri = redirectUri;

var result = await this.clientApplication.AcquireTokenAsync(scopes, string.Empty, UiOptions.SelectAccount, string.Empty, null, authority, policy);

对此有什么想法吗?

提前致谢!

问候,
马塞尔

4

1 回答 1

2

我遇到过同样的问题。原来我忘记正确设置我的移动应用程序以允许通过 Active Directory 登录

我采取的解决问题的步骤是:

  1. 在 Azure B2C Blade 中选择 Application 并将回复 URL 设置为 Azure 移动应用实例的地址(例如https://myapp.azurewebsites.net),然后是 /.auth/login/aad/callback
  2. 确保应配置 Azure Active Directory B2C 租户中使用的策略,以便将回复 URL 设置为与上述相同
  3. 在 Azure 移动或服务应用程序中,转到设置--> 身份验证/授权并确保设置了未经身份验证的请求以使用 AAD 登录
  4. 在同一个刀片中选择 AAD 提供程序,转到高级并设置客户端 ID 和颁发者 URL,客户端 ID 是 Azure Active Directory B2C 租户的应用程序 ID,颁发者 URL 是 Azure Active Directory 的元数据端点B2C 政策

一旦我完成了以上所有工作,一切都完美无缺。可以在https://developer.xamarin.com/guides/xamarin-forms/web-services/authentication/azure-ad-b2c-mobile-app/找到更详细的说明

让我知道这是否有帮助...

于 2017-01-22T22:29:53.523 回答