2016-08-25 221 views
1

使用Azure AD身份驗證設置Azure Web應用程序後,該站點在驗證後返回401使用Azure AD App的Azure Web應用程序返回`auth/login/aad/callback`權限

這是我看到它的認證流程。

  1. 轉到https://mysite-$environment.azurewebsites.net/
  2. https://login.microsoftonline.com/
  3. 身份驗證使用我的憑據
  4. 重定向到https://mysite-$environment.azurewebsites.net/.auth/login/aad/callback
  5. 錯誤You do not have permission to view this directory or page.的HTTPStatus 401重定向。

龍版

我有同樣的服務計劃下的Azure的3×Web應用程序 - 1個網站,2×的API。

我希望這些使用Azure AD進行身份驗證。

所以,我使用Powershell創建了一個Azure AD App。

$app = @{ 
    DisplayName = "azad-$environment-mysite" 
    IdentifierUris = @(
     "https://mysite-$environment.azurewebsites.net", 
     "https://mysite-api-$environment.azurewebsites.net", 
     "https://mysite-api-2-$environment.azurewebsites.net" 
    ) 
    HomePage = "https://mysite-$environment.azurewebsites.net" 
    ReplyUrls = @(
     "https://mysite-$environment.azurewebsites.net", 
     "https://mysite-api-$environment.azurewebsites.net", 
     "https://mysite-api-2-$environment.azurewebsites.net" 
    ) 
    AvailableToOtherTenants = $false 
} 

New-AzureRmADApplication @app 

然後,使用ApplicationId返回,我已經安裝在Azure AD通過門戶Web App > Authentication/Authorization刀片。

這與在Azure AD server authentication, No permission to view directory問題上提出的問題類似。

+0

你使用的是aspnet嗎? Mvc Web API? – Thomas

+0

@Thomas。對不起,我忘了那個細節。我正在使用ASP.NET Core/MVC6。 – Dennis

回答

0

你必須註冊在AAD每個應用程序,你可以做到這一點,更容易,通過Azure的門戶。

當您通過「快速」過程註冊網絡應用程序時,所有內容都應按預期工作(OAuth2流程)。如果您需要使用服務器到服務器進行訪問,那麼問題可能出現在您的API應用程序中。

因爲這個過程是有點長在這裏寫我寫了兩個職位:

Web API access through Azure Active Directory

API-APP server-to-server through Azure Active Directory

在第一篇文章,你可以使用郵差看到REST流。