[英]Azure AD B2C + Azure Mobile Apps - MobileServiceInvalidOperationException
我們正在嘗試遵循本教程,並在Android上運行客戶端管理的身份驗證。 這是我們在Azure AD B2C中配置應用程序的方式:
然后,在Azure移動應用中,我們啟用Azure AD身份驗證:
其中Issuer Url
以v2.0/.well-known/openid-configuration
結尾,並包含從Azure門戶(目錄+訂閱菜單)獲取的B2C租戶ID。
然后在Xamarin中,我們有以下代碼:
ADB2CClient = new PublicClientApplication(Constants.ClientID, // "48ab01cc-***********-73ef6c616da5"
Constants.Authority); // https://login.microsoftonline.com/tfp/{Tenant}/{Policy name}/oauth2/v2.0/authorize
ADB2CClient.RedirectUri = Constants.RedirectUri; // "msal{ClientID}://auth
authenticationResult = await ADB2CClient.AcquireTokenSilentAsync(
Constants.Scopes, // empty array
GetUserByPolicy(ADB2CClient.Users,
Constants.PolicySignUpSignIn), // Policy name from AD B2C
Constants.Authority, // https://login.microsoftonline.com/tfp/{Tenant}/{Policy name}/oauth2/v2.0/authorize
true);
var payload = new JObject();
if (authenticationResult != null && !string.IsNullOrWhiteSpace(authenticationResult.IdToken))
{
payload["access_token"] = authenticationResult.IdToken;
}
User = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(
MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory,
payload);
結果,我們能夠從AcquireTokenSilentAsync
方法獲取有效的JWT令牌( IdToken
),但是每次我們嘗試運行LoginAsync
,都會獲得帶有以下堆棧跟蹤的401
:
{Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException:您沒有查看此目錄或頁面的權限。
當我們嘗試查看Azure App Service日志時,它只是說
應用:2019-02-28T10:09:30 PID [7924]信息發送回復:401.83未經授權
沒有任何其他詳細信息。
其余代碼涵蓋了來自github的示例
我們已經查看了此文檔/樣本,並可以確認它需要大量更新,因為它不再准確。 我們正在內部進行刷新。
感謝您的支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.