2016-08-25 222 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流。