从通过 Windows 凭据 (Kerberos) 登录的用户生成 OAuth2 令牌



我们正在通过远程桌面服务运行应用程序。应用程序使用Negotiate和 Windows 身份验证向在 WCF 下运行的 Web API 中间件进行身份验证。

我们现在有一个场景,中间件需要调用另一个服务并传递持有者令牌,以便它可以作为发出初始请求的用户运行。它还将使我们能够不必在每个请求上使用Negotiate,这是相当昂贵的。

我们正在寻找一种可以制作 OAUTHgrant_type = client_credentials的方法,但使用通过Negotiate到我们的中间件进行身份验证的用户凭据。我还没有看到任何如何做到这一点的例子。我看到的所有示例都通过 client_id 和 client_secret 或在 HTTP Basic Auth 标头中传递用户凭据,但没有grant_type = client_credentials示例,其中凭据是通过Negotiate.

通常不支持在没有用户通过 OAuth 以交互方式登录的情况下以用户身份获取令牌,因为密码未知。

瞄准以下选项 1:

  1. 使用客户端凭据,然后通过其他参数(例如路径段(传递用户 ID - 最简单的选择是让下游服务支持此功能

  2. 通过 OAuth 登录并联合到使用 Windows 身份验证的身份提供程序 - 这可能是一个非常大的迁移工作 - 尽管这是将 OAuth 与 Windows 身份验证一起使用的首选方式

相关内容

  • 没有找到相关文章

最新更新