REST API 使用 Windows 身份验证

REST API using Windows authentication

我正在为现在将在 Windows 上(以及将来在 Linux 上)托管的服务实施 REST Web API。

我们将使用 OAuth 2.0 和 OIDC(通过 Identity Server 4)支持自定义凭据 + token/refresh 令牌,但我们还希望支持 Windows 身份验证以允许与 Active Driectory 集成。

对于使用 windows 身份验证的客户端,是进行一次身份验证并获得 token/refresh 令牌机制(就像我们对凭据身份验证所做的那样)更好,还是对每个请求进行身份验证更好?

后一种选择可能性能较差,因为它每次都需要经历挑战?

我个人的感觉是,如果您已经在玩 identityserver4 并且您已经声明您将来会在 Linux 主持 API,那么您应该在您的身份服务器中处理 AD 集成,让您的 API 只担心上述服务颁发的访问令牌。

然后我建议使用 ADFS(最新版本支持开箱即用的 OIDC)对 AD 用户进行实际身份验证,并让您的身份服务器充当身份验证网关。如果配置正确,您可以为任何已在其 PC 上登录域的用户实现真正的 SSO(即用户无需重新输入其域凭据)。

然而,这仅涉及身份验证 - 您将如何在此 API 中进行授权?