openid-connect - 基于一个应用程序的访问 token 的具有多个 native 应用程序的 SSO

标签 openid-connect okta okta-api

我有一个应用程序可以对用户进行身份验证并安全地存储基于 client_id #1 生成的访问 token 。在第二个应用程序中知道我需要基于 client_id#2 的访问 token ,而无需用户登录。

如果访问 token 可用于另一个应用程序,有哪些方法可以根据客户端 ID 生成 access_token?

最佳答案

不,你不能自己生成自己的访问 token (好吧,你可以。但是每个正确的 OIDC 实现都会忽略它,因为 token 不会被 IdP key 正确签名,所以它无法被验证).访问 token 始终由身份提供者创建和签名(在您的情况下为 Okta)。

但是,如果两个客户端都在同一个领域(领域是一个 Keycloak 术语,Okta 可能使用不同的术语——域、池等),那么他们共享 IdP session 。因此,如果用户通过 client_id#1(IdP session 就位)登录,并且您将通过 client_id#2 启动登录过程,则不会要求用户再次登录,IdP 将立即*发出访问 token 。这就是 OIDC 协议(protocol)的单点登录特性。

*这不适用于某些特殊的边缘情况,例如:直接访问授权用于 client_id#1 登录,需要同意,......

关于openid-connect - 基于一个应用程序的访问 token 的具有多个 native 应用程序的 SSO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59304538/

相关文章:

oauth-2.0 - OIDC 中的 OAuth2 角色

reactjs - 无提示更新错误帧窗口在刷新 token 上超时

java - 向 Okta UserProfile 添加属性 - Java API 版本 0.0.4

javascript - OktaAuth Javascript + Flask 不向 Flask 发送代码和状态值

javascript - 类型错误 clientsettings.userStore 不是 ng-oidc-client JS lib 的函数

OWIN OpenIdConnect中间件-动态设置RedirectUri

single-sign-on - 有没有人成功地将 Okta 与 GitLab 集成?

java - 如何使用 Eclipse 部署 SDK Java?

Keycloak:如何将 Keycloak 用户自动重定向到 OKTA SSO 页面而不是单击按钮?