Wep API 项目的 ADALjs 和 Azure AD 身份验证

ADALjs and Azure AD auth for Wep API project

我有一个客户端应用程序和 Web API 应用程序托管在不同的域上,我想在我的客户端应用程序中使用 ADAL.js 来登录我的 Web API 应用程序,但仍然未经授权的错误。

在网络中 api web.config 我已经指定了我的 AAD 详细信息:

<add key="ida:AudienceUri" value="http://clientappurl/" />
<add key="ida:FederationMetadataLocation" value="https://login.windows.net/...3596365/federationmetadata/2007-06/federationmetadata.xml" />
<add key="ida:ClientId" value=".....388ffcc3" />
<add key="ida:ClientSecret" value="....gBsD7o=" />
<add key="ida:Tenant" value="........onmicrosoft.com" />
<add key="ida:TenantId" value="........96365" />
<add key="ida:Auth" value="https://login.windows.net/" />
<add key="ida:GraphUrl" value="https://graph.windows.net" />  

并更新 Startup.Auth.cs 如下:

 app.UseWindowsAzureActiveDirectoryBearerAuthentication(
        new WindowsAzureActiveDirectoryBearerAuthenticationOptions
        {
            Audience = "http://myclientapp",
            Tenant = "developertenant.onmicrosoft.com",
            AuthenticationType = "OAuth2Bearer",                               
        });

在客户端上,我指定了端点(我的 api url)、租户和 clientId。 ADALjs 将用户重定向到 Microsoft 登录页面,看起来在成功登录后将一些数据写入本地存储。但是 API 应用程序仍然响应未经授权的错误。

是否有关于如何正确配置 wep api 和托管在不同域上的客户端应用程序以使用 AAD 的教程?

如何从我的 Web API 应用程序中读取授权用户的详细信息,例如 AAD 用户组?

下面是一个示例,说明如何从 Web 应用读取 AAD 组声明: https://github.com/Azure-Samples/active-directory-dotnet-webapp-groupclaims

获得令牌后,您就可以调用 Web API,如下例所示: https://github.com/Azure-Samples/active-directory-dotnet-webapp-webapi-openidconnect

这里有一个很好的 AAD 示例列表: https://azure.microsoft.com/en-us/documentation/articles/active-directory-authentication-scenarios/