我正在创建一个网站,其中大多数用户都在组织的 Active Directory 中,因此为 Web 项目启用“Windows 身份验证”“正常工作”(客户端也在域中)。但是网站还需要让一些不在 AD 中且他们的客户端未加入域的用户进入。在这种情况下,他们将在 azure 活动目录中拥有访客帐户,并且可以使用 OAuth 进行身份验证。
那么有没有办法让我的 asp.net 核心网站先尝试 Windows Auth,如果失败再尝试 OAuth?
答案 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。