通过 pkce 进行身份验证后从 keycloak 注销的最佳方法是什么?

mid*_*007 5 logout openid-connect keycloak pkce

注销的正确方法是什么?

这些是 keycloak 客户端设置:

Realm: REALM

Client ID:              pkce-client
Client Protocol:        openid-connect
Access Type:            public
Standard Flow Enabled:  ON
Valid Redirect URIs:    http://localhost:4200/
Backchannel Logou:      ON
Run Code Online (Sandbox Code Playgroud)

OpenID Connect 兼容模式

Use Refresh Tokens: ON 
Run Code Online (Sandbox Code Playgroud)

高级设置:

Proof Key for Code Exchange Code Challenge Method: S256
Run Code Online (Sandbox Code Playgroud)

有没有好的文档?

我的想法是删除客户端的令牌,但随后会话在 keycloak 中仍然处于活动状态。

解决方案是调用以下 URL:

http://localhost:8180/auth/realms/REALM/protocol/openid-connect/logout?id_token_hint=InR5cCIgOiAiSldUIiwia2lkIiA6ICIxUVJwMXAtbmk1WmcyZmlyRHFoRS1iS1hwemZDaWFocGs4Zi1XRkQtRDZ3In0.eyJleHAiOjE2NDE3NjUyNjYsImlhdCI6MTY0MTc2.......
Run Code Online (Sandbox Code Playgroud)

Jan*_*raj 5

OIDC 标准(由 Keycloak 实现)支持RP 发起的注销。因此,使用正确的注销参数使浏览器重定向(不仅仅是 XMLHttpRequest 请求)end_session_endpoint

顺便说一句:与;end_session_endpoint不同。revocation_endpoint注销!=撤销。

但这只是 OIDC 注销(从 Keycloak 注销)。您可能仍然拥有自己的应用程序会话(这取决于应用程序实现),因此应用程序需要销毁应用程序会话(“删除客户端上的刷新令牌”,...)才能从应用程序注销。