【问题标题】:REST API using Windows authentication使用 Windows 身份验证的 REST API
【发布时间】:2019-07-31 08:57:29
【问题描述】:

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

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

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

后一个选项可能性能较差,因为它每次都需要通过挑战?

【问题讨论】:

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


    【解决方案1】:

    我个人的感觉是,如果您已经在使用 identityserver4,并且您已经声明将来将在 Linux 上托管 API,那么您应该在身份服务器中处理 AD 集成并拥有您的 API只需担心所述服务发布的访问令牌。

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

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

    【讨论】:

    • 授权:对于使用凭据的客户端,Web api 将查找存储在 DB 中的 hased 凭据。对于 Windows 用户,我正在考虑做同样的事情(数据库查找),但存储 Windows 用户名 + 域。够了吗?我读到 SID 不安全
    猜你喜欢
    • 1970-01-01
    • 2012-09-29
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    • 2019-03-31
    • 2019-08-17
    相关资源
    最近更新 更多