我正在尝试使用SAML 2.0 Bearer Assertion Profiles for OAuth 2.0
将SAML中的授权添加为IDP实现的一部分在此,SAML断言被交换为Oauth2访问令牌。根据规范,唯一的访问令牌应作为SAML断言的交换而返回,并且不应返回刷新令牌。规范中提到了有关访问令牌(RFC7521)续订的以下内容
在此上下文中使用的断言通常是短暂的 授权授予的表示形式,以及授权服务器 不应发出寿命超过声明的有效期明显时间的访问令牌。实际上,这通常意味着不会响应于断言授予请求而发出刷新令牌,并且访问令牌将以相当短的生命周期发出。客户端可以使用相同的断言(如果仍然有效)或使用新的断言来请求新的过期令牌,从而刷新过期的访问令牌。
现在,如果访问令牌已过期,则如果断言仍然有效,客户端可以获取新的访问令牌以交换断言,但是如果断言仍然有效,如何获取断言?如果我们重新启动SSO流程,则将向ACS(断言消费者服务)URL提供断言,这将导致活动用户从当前屏幕转移。如果用户在页面上有任何未保存的活动,则可能会导致问题。
如何提供断言作为对请求的响应? SAML中是否有任何规定可以通过对IDP的一次调用直接扩展断言?
答案 0 :(得分:0)
您不能“扩展”现有的断言,而必须向IdP请求一个新的断言。
通过现有断言请求新令牌的工作流很少见,但从技术上讲,如果您可以在断言发出后继续使用断言,则该技术可行。这样做将需要在发出断言的IdP和oAuth客户端之间使用一个中间步骤/组件,这在许多解决方案体系结构中当然是可能的。
通过新的断言刷新过期的令牌将是更常见的实现选择。