spring-security - OpenId Connect 身份提供者发起的反向通道注销不起作用
问题描述
我正在开发一个在内部管理用户和会话的 java Spring Boot项目。它依赖于 OIDC,AWS Cognito 作为身份提供者,用于登录,并且我希望用户退出。我从OIDC Spec for backchannel logout中了解到的是:
我必须在我的后端应用程序中提供一个用于注销的端点。我在 java Spring Boot 应用程序中使用Pac4J作为我的 OIDC 库,并根据Pac4J Spring Security 文档
logout
启用了端点如果用户从身份提供者注销,则身份提供者AWS Cognito应向注销端点发送请求
当我在此端点上收到有效呼叫(根据 OIDC 规范)时,我必须销毁用户与我的应用程序的会话。
但是,从身份提供程序 (AWS Cognito) 注销的用户似乎不会导致调用我的应用程序的注销端点。
我无法在 AWS Cognito 文档中找到有关此反向通道行为的文档。
- 我是否正确理解了反向通道注销?
- 由于 OIDC 注销仍处于草稿状态(截至2019 年 3 月 12 日),这目前是否不受支持?
解决方案
我联系了 Pac4J 的主要开发人员,他非常及时地回复。
AWS 认知:
- 目前似乎不支持反向通道注销
PAC4J:
- OIDC 的库目前不支持反向通道注销,它也不在路线图上:https ://groups.google.com/forum/?fromgroups#!topic/pac4j-users/SD_IgKVZWvM , /logout 引用在文档中用于内部(应用程序)注销 +(如果已配置)将注销请求转发给身份提供者。它不是 OIDC-backchannel-logout 端点。
推荐阅读
- mysql - MySQLSelect 语句
- laravel - 使用 foreach 在 laravel 中进行大规模更新
- amazon-web-services - 使用无服务器框架的 lambda AWS 中的授权代码授予
- multithreading - 子进程在线程中运行的行为
- php - 我想在 codeigniter 框架中导入 csv。但显示类似 Undefined property: Cforcecontroller::$csvimport 的错误
- json - 复杂的 Notepad++ 复制、替换和插入
- ethereum - 错误:gas * price + value 资金不足(出现此错误,我正在使用 trezorjs)
- java - 如何将arraylist的多个项目与特定位置的另一个arraylist进行比较?
- eclipse - Spring Boot 无法执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test
- javascript - D3 多系列折线图无法使用正确的 xAxis 值