如何使用OAuth 2.0对Azure Active Directory进行身份validation?

我有一个用C#编写的REST API,我需要使用现有的Azure AD服务进行身份validation。 我目前拥有希望进行身份validation的用户的用户名和密码。 我需要使用Azure AD进行身份validation,并从服务器接收访问令牌。

有人可以指点我解释如何做到这一点的一些文章/教程的方向?

您应该避免处理用户凭据。 在收集通过使用OAuth 2.0或OpenID Connect来获取令牌而不直接处理凭据而减轻的用户凭据时,会产生严重的安全隐患。 此外,如果您拥有自己的凭据集合UI,那么如果启用了多因素身份validation,您可能会发现将来登录失败。 在这种情况下,可能需要更多信息来validation用户而不是收集信息,例如一次性密码。 如果您允许Azure AD通过OAuth 2.0或OpenID Connect提供身份validation体验,那么您将与所使用的特定身份validation方法隔离。 收集用户Azure AD凭据是一种不好的做法,如果可能的话,应该避免。

我对确切情况没有足够的细节以确信以下示例适用,但它至少会提供一个良好的起点。 此示例演示如何创建调用REST API的本机应用程序,然后可以以最安全的方式调用Azure资源。

https://github.com/AzureADSamples/WebAPI-OnBehalfOf-DotNet

您可以在此处找到许多其他示例,可用于为您的特定方案构建解决方案。

https://github.com/AzureADSamples

如果您提供更多细节,我可以提供更具体的指导。

请参阅: http : //www.cloudidentity.com/blog/2014/07/08/using-adal-net-to-authenticate-users-via-usernamepassword/

摘要:创建UserCredential

UserCredential uc = new UserCredential(user, password); 

使用UserCredential调用其中一个AcquireToken()函数

 public AuthenticationResult AcquireToken(string resource, string clientId, UserCredential userCredential); public Task AcquireTokenAsync(string resource, string clientId, UserCredential userCredential);