1

我有一个客户端应用程序和Web API应用程序托管在不同的域上,并且希望在我的客户端应用程序中使用ADAL.js来登录我的Web API应用程序,但仍然收到未经授权的错误。Wep API项目的ADALjs和Azure AD验证

<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的web.config我指定我的AAD细节

(我的api网址),租户和clientId。 ADALjs将用户重定向到Microsoft登录页面,并在成功登录后将它写入本地存储。但API应用程序仍然以未经授权的错误回应。

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

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

回答

1

这里是它展示了如何读取一个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/