Keycloak:如何为登录的 Windows 用户自动进行身份验证?

dva*_*dva 12 c# ldap active-directory openid-connect keycloak

我正在尝试创建一个C# 应用程序,它将使用Keycloak进行身份验证。目前,我可以通过发送以下 REST 请求使用OpenID Connect以用户身份登录:

POST
http://{server}:{port}/auth/realms/{myRealm}/protocol/openid-connect/token

Body (x-www-form-urlencoded):
    client_id    {myClient}
    username     FooBar
    password     {userPassword}
    grant_type   password
Run Code Online (Sandbox Code Playgroud)

发送此请求会导致获取访问令牌刷新令牌

现在,我希望能够使用“当前活动的 Windows 会话”以某种方式登录(获取令牌或以其他方式验证用户),我的意思是当前登录到 Windows 的用户(存在于Active Directory LDAP中)应该无需提供任何凭据即可进行身份验证。

我的 Keycloak 领域中的用户联合已包含 AD LDAP 服务器的配置,因此所有用户现在也可在 Keycloak 中使用。

我浏览了 Keycloak 文档(特别是有关LDAP 和 Active Directory以及Kerberos 的部分),但不太明白到底需要做什么才能使其工作。

我也在这里搜索过,但我发现的唯一相关的事情是其他一些用户提到这应该是可能的

有人能指出我正确的方向吗?

小智 2

在 keycloak 术语中,您要求 SPNEGO 身份验证 请参阅https://www.keycloak.org/docs/latest/server_admin/index.html#_kerberos

在领域身份验证选项卡中,您需要启用 Kerberos 您的浏览器需要启用 SPNEGO。不同的浏览器有不同的做法。您为 SPNEGO 启用特定 URL

  • 我认为,他专门询问了有关使用 REST 请求而不是浏览器的问题。对于 C# 客户端,浏览器工作流程将不起作用。 (2认同)