簡體   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