.Net Core WebApi如何使用AD进行授权

时间:2019-06-15 21:52:53

标签: c# azure asp.net-web-api asp.net-core azure-active-directory

我已经看到了一百万个不同的答案,但没有一个起作用。

有人可以给我一个适用于的链接吗

我有一个Web API,我已经在Azure上注册了它。我已配置Azure Active Directory。

我有一个tenantId,一个clientId,一个客户端Secret以及我需要的所有其他变量。

我可以通过MVC控制器通过AD将用户登录到我的系统中,如何使用Web api进行同样的操作?

我基本上需要生成AD令牌,以便可以继续在MVC控制器之外使用API​​。

它必须是相同的令牌,因为我需要从API的客户端访问Microsoft图形。

帮助!

2 个答案:

答案 0 :(得分:0)

由客户来获取令牌并将其传递给您的API。您没有指定客户端是什么(即Web,iOS,Android),但是由于您使用的是Azure AD,因此您可以使用Microsoft提供的适当的ADAL库来执行此操作。

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication-libraries

答案 1 :(得分:0)

  

我可以通过MVC控制器通过AD将用户登录到我的系统,   我可以使用Web api做同样的事情吗?

如果您对服务器到服务器的交互感兴趣,而又没有用户端的直接交互,可以看看OAuth 2.0 Client Credentials Grant Flow for AZAD

随附的文章包含简单的实现示例。我认为对于您来说,example with a daemon/console app(只需使用Web API替换它)就可以了。下载示例,替换带有您的appsettings.json中的配置(实例,TenantId,ClientId和ClientSecret),然后尝试使用它。