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

时间:2019-12-09 22:01:42

标签: wcf oauth-2.0 spnego

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

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

我们正在寻找一种制作OAUTH grant_type = client_credentials的方法,但是要使用通过Negotiate向我们的中间件进行身份验证的用户凭据。我还没有看到任何有关如何完成此操作的示例。我看到的所有示例都通过client_id和client_secret或在HTTP Basic Auth标头中传递用户凭证,但没有grant_type = client_credentials的示例,其中凭证是通过Negotiate传递的。

1 个答案:

答案 0 :(得分:0)

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

针对下面的选项1:

  1. 使用客户端凭据,然后另外通过不同的参数(例如路径段)传递用户ID-最简单的选择是获取下游服务来支持此操作

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

相关问题