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

COB*_*BOL 16 c# authentication azure oauth-2.0 azure-active-directory

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

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

Ric*_*all 18

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

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

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

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

https://github.com/AzureADSamples

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

  • 请避免传输用户名和密码.您处理用户名和密码的任何地方都是用户帐户遭到入侵的另一个可能的地方.从AAD返回的令牌受限于特定范围.如果其中一个令牌受到损害,则妥协的严重程度远低于受损的用户名密码.你为什么直接收集用户名密码?这可以改变吗? (2认同)