簡體   English   中英

Azure AD B2C + Azure移動應用程序-MobileServiceInvalidOperationException

[英]Azure AD B2C + Azure Mobile Apps - MobileServiceInvalidOperationException

我們正在嘗試遵循教程,並在Android上運行客戶端管理的身份驗證。 這是我們在Azure AD B2C中配置應用程序的方式:

在此處輸入圖片說明

然后,在Azure移動應用中,我們啟用Azure AD身份驗證:

在此處輸入圖片說明

其中Issuer Urlv2.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM