我有一个应用程序可以对用户进行身份验证,并安全地存储基于client_id#1生成的访问令牌。在第二个应用程序中知道我需要基于client_id#2的访问令牌,而无需用户登录。
如果访问令牌可用于其他应用程序,则根据客户端ID生成access_token的方法有哪些?
答案 0 :(得分:0)
否,您不能自行生成自己的访问令牌(好的,可以。但是每个正确的OIDC实现都将忽略它,因为令牌不会由IdP密钥正确签名,因此无法验证)。访问令牌始终由身份提供商创建和签名(在您的情况下为Okta)。
但是,如果两个客户端都在同一个领域(领域是Keycloak术语,Okta可以使用不同的术语-域,池等),则它们共享IdP会话。因此,如果用户是通过client_id#1登录的(IdP会话已到位),而您将通过client_id#2启动登录过程,则不会要求用户再次登录,并且IDP会在jiffy *中发出访问令牌。这是OIDC协议的单一登录功能。
*这不适用于某些特殊情况,例如:直接访问授予用于client_id#1登录,需要征得同意,...