2017-04-14 64 views
0

我正在開發一個本機應用程序,該應用程序必須顯示該用戶所屬的Office 365組。爲此,我打電話給需要驗證的Microsoft Graph API。我正在使用ADAL庫。如何從另一個租戶使用我的Azure AD應用程序?

需要權限需要管理員同意。 一切工作正常,從我的租戶用戶,但當我嘗試驗證與另一個租戶帳戶它不起作用。它一直給這個結果:

相關ID:9780ed24-9d24-4604-b8bf-28a02c2ea580

時間戳:2017年4月14日12:05:45Z

AADSTS70001:具有標識符的應用' XXXXXXXX-XXX-XXX-XXXX-XXXXXXXXXXXX」目錄XXXXXXX.onmicrosoft.com

即使我使用在第一次連接管理員帳戶沒有被發現。我從來沒有被要求同意,並且該應用程序未在其他租戶上註冊。


的應用程序註冊爲本地所以應該是多租戶和我通過「/共同」作爲權威的租戶。

我也嘗試在另一個租戶上註冊一個具有相同規格的應用程序,授予管理員對許可權的同意,並且它也可以工作。

這是我如何檢索訪問令牌:

private static string GetAccessToken() 
    { 
     AuthenticationContext authContext = new AuthenticationContext(authority); 

     AuthenticationResult authResult = authContext.AcquireToken(graphResource, clientID, redirectURI, PromptBehavior.RefreshSession); 
     var accessToken = authResult.AccessToken; 
     return accessToken; 
    } 

是它的代碼中有問題的參數?其他租戶是否需要一些我不知道的「特殊天藍色訂閱」?

總之:我該如何讓它爲其他租戶工作?

編輯:我試圖將「提示= admin_consent」手動添加到請求,比如:

AuthenticationResult authResult = authContext.AcquireToken(graphResource, clientID, redirectURI,PromptBehavior.RefreshSession, UserIdentifier.Any, "prompt=admin_consent"); 

但它會觸發一個錯誤,說是有「重複查詢參數「提示'in extraQueryParameters「

+0

您能否在錯誤消息中包含CorrelationId和Timestamp? –

+0

@PhilippeSignoret是的,完成了。 – Patsuan

+0

你是如何創建本地客戶端應用程序的?什麼接口? –

回答

3

這是註冊本地客戶端應用程序時新Azure門戶中的一個已知問題。

這些目前(截至2017-04-14)被創建爲單租戶應用程序。由於Azure門戶不公開本機客戶端應用程序的「多租戶」切換,因此您需要更新應用程序清單或使用Azure AD PowerShell來執行此操作。

從清單

  1. 在Azure的門戶網站將某個應用多租戶,從設置刀片您的本地客戶端應用程序,單擊清單選項。

    enter image description here

  2. 更新availableToOtherTenantstrue

    enter image description here

  3. 保存清單。

    enter image description here

製作的應用程序的多租戶與天青AD的PowerShell

  1. 下載天青AD的PowerShell v2的模塊(AzureAD):https://docs.microsoft.com/en-us/powershell/azure/install-adv2?view=azureadps-2.0
  2. 執行如下:

    $appId = "<app ID>" 
    $app = Get-AzureADApplication -Filter "appId eq '$appId'" 
    Set-AzureADApplicatoin -ObjectId $app.ObjectId -AvailableToOtherTenants $true 
    

這應該修補它。等一下,然後再試一次。

+0

它的工作,非常感謝!當我查看清單時,「AvailableToOtherTenants」確實處於「假」狀態。誰會知道?特別是因爲我發現迄今爲止所有文檔都說本地應用程序自動爲多租戶。 – Patsuan

+0

默認情況下,它們*應該被創建爲多租戶。這是新(預覽)門戶中的已知問題。它將很快解決。 –

相關問題