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

标签 c# authentication azure oauth-2.0 azure-active-directory

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

有人可以向我指出一些解释如何执行此操作的文章/教程吗?

最佳答案

您应该避免处理用户凭据。收集用户凭据时存在严重的安全隐患,可以通过使用 OAuth 2.0 或 OpenID Connect 获取 token 而不直接处理凭据来缓解这些问题。此外,如果您有自己的凭据收集 UI,那么您可能会发现,如果打开多重身份验证,将来登录会失败。在这种情况下,验证用户身份可能需要比您收集的信息更多的信息,例如一次性密码。如果允许 Azure AD 通过 OAuth 2.0 或 OpenID Connect 提供身份验证体验,那么您将不受所采用的特定身份验证方法的影响。收集用户 Azure AD 凭据是一种不好的做法,应尽可能避免。

我没有足够的关于确切场景的详细信息,无法确信以下示例是否适用,但它至少会提供一个良好的起点。此示例演示如何创建一个调用 REST API 的 native 应用,然后该应用可以以最安全的方式调用 Azure 资源。

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

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

https://github.com/AzureADSamples

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

关于c# - 如何使用 OAuth 2.0 对 Azure Active Directory 用户进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28580848/

相关文章:

c# - Exe 文件错误 HResult 0x8002000B,索引无效

c# - 将数据表转换为数据读取器

c# - visual studio 复制到剪贴板 IDE 卡住

security - 我在 Cloudant 上存储用户私有(private)数据的方法是否安全?

authentication - Laravel 跨域身份验证 cookie 和过滤器

typescript - 如何构建我的 azure 持久函数文件夹结构(语言 typescript )?

c# - 启动一个停止的线程?

android - 使用其他 Android 设备作为 NFC 标签?

c# - Azure 应用服务上的 ASP.NET Core 应用程序到 Linux

azure - Azure 存储文件共享上已存在指定的共享