繁体   English   中英

Azure AD B2C 上 Xamarin.Forms 抛出错误 B2C '权限' Uri 应该至少有 3 个段

[英]Azure AD B2C on Xamarin.Forms throwing error B2C 'authority' Uri should have at least 3 segments

我正在尝试将 Azure AD B2C 集成到 Xamarin.Forms 应用程序中。 我按照本指南作为初学者。 我创建了 Azure AD B2C 租户。 当我打开租户的端点时,我看到的是

在此处输入图像描述

如您所见,URL 的一般模式是https://TENANT.b2clogin.com/TENANT.onmicrosoft.com/<policy-name>/

但是,在样本内部,URL 的形成方式不同: https://TENANT.b2clogin.com/tfp/TENANT.onmicrosoft.com/<policy-name>/

注意tfp位。

如果我从 URL 格式中删除tfp部分,则只要执行这些行

 var builder = PublicClientApplicationBuilder.Create(B2CConstants.ClientID)
                .WithB2CAuthority(B2CConstants.AuthoritySignInSignUp)
                .WithIosKeychainSecurityGroup(B2CConstants.IOSKeyChainGroup)
                .WithRedirectUri($"msal{B2CConstants.ClientID}://auth");

我收到以下异常

System.ArgumentException: B2C 'authority' Uri should have at least 3 segments in the path (i.e. https://<host>/tfp/<tenant>/<policy>/...)

显然,MSAL.NET API 期望 URI 应该包含tfp位,但端点确实没有。

我正在使用4.17.1版本的Microsoft.Identity.Client

MSAL.NET 中的最新 API 似乎与最新的 Azure AD B2C 不兼容。 有什么解决方法吗?

看来我做错了。 我不应该使用 B2C 本身的端点,而是应该创建特定的 iOS 和 Android 应用程序注册。 这就是我所做的。

  1. 我已经注册了新的公共客户端/本机应用程序
  2. 我添加了具有正确捆绑 ID 的 iOS 和 Android 平台
  3. 在此之后,我打开了特定于应用程序的平台注册详细信息
  4. 我已经从那里复制了客户端 ID 和重定向 uri。
  5. 将每个平台的重定向 URI 替换为正确的值
  6. 使用了带有“tfp”的 url

完成这些步骤后,一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM