如何配置 asp.net 核心 Web 应用程序以使用 Windows 身份验证并回退到 OAuth?

时间:2021-07-06 22:03:39

标签: c# asp.net-core azure-active-directory windows-authentication

我正在创建一个网站,其中大多数用户都在组织的 Active Directory 中,因此为 Web 项目启用“Windows 身份验证”“正常工作”(客户端也在域中)。但是网站还需要让一些不在 AD 中且他们的客户端未加入域的用户进入。在这种情况下,他们将在 azure 活动目录中拥有访客帐户,并且可以使用 OAuth 进行身份验证。

那么有没有办法让我的 asp.net 核心网站先尝试 Windows Auth,如果失败再尝试 OAuth?

1 个答案:

答案 0 :(得分:1)

我假设“正常工作”部分是,在 IIS 级别上,您只允许 Windows 身份验证 (Source):

"iisSettings": {
    "windowsAuthentication": true,
    "anonymousAuthentication": false,
    // ...
}

首先,我们需要在 Azure AD (AAD) 中注册一个新的应用程序。然后,我们需要在新端点上允许匿名身份验证,并将用户重定向到 AAD 进行身份验证。官方文档是 sign-in redirect 的良好开端。

否则当guest账户存在于AAD时,你的内部用户很可能也在那里管理,为什么不只对所有用户使用OAuth认证呢?例如,此处描述的ASP.NET Core sign-in