我正在尝试了解服务提供商的 SSO系统的实施情况。这是我的问题。
用户登录系统A.系统A进行身份验证,并在页面上显示指向用户的链接。当用户单击该链接时,系统A将用户重定向到系统B,其中系统B是第三方供应商。谁是IdP,谁是SP?
从IdP到SP启动的流程中是否存在服务器到服务器的通信?是否在所有情况下都需要?
如果IdP启动了流向SP的流程,您能逐步解释数据流吗?
关于这个或简单解释的任何材料都会有所帮助。
答案 0 :(得分:0)
回答您的问题并通过安全标记语言(SAML)假设SSO:
如果用户在IdP上没有有效的本地安全上下文,则在某些时候将要求用户将其凭据提供给IdP站点idp.example.org。
用户提供有效凭据,并在IdP为用户创建本地登录安全上下文。
用户选择IdP上的菜单选项或链接以请求访问SP网站sp.example.com。这会导致调用IdP的单点登录服务。
Single Sign-On Service构建一个SAML断言,表示用户的登录安全上下文。由于将使用POST绑定,因此断言在置于SAML消息中之前进行数字签名。然后将该消息作为名为SAMLResponse的隐藏表单控件放在HTML FORM中。 (如果在IdP和SP上支持在SP上标识特定应用程序资源的约定,则SP上的资源URL也使用名为RelayState的隐藏表单控件编码到表单中。)单点登录服务发送HTML表单返回HTTP响应中的浏览器。为了便于使用,HTML FORM通常包含将自动将表单发布到目标站点的脚本代码。
由于用户操作或执行“自动提交”脚本,浏览器会发出HTTP POST请求以将表单发送到SP的断言使用者服务。服务提供商的断言使用者服务从HTML FORM获取消息以进行处理。必须首先验证SAML断言上的数字签名,然后处理断言内容,以便为SP处的用户创建本地登录安全上下文。完成后,SP将检索RelayState数据(如果有)以确定所需的应用程序资源URL,并向浏览器发送HTTP重定向响应,指示它访问所请求的资源(未显示)。
- 醇>
进行访问检查以确定用户是否具有访问资源的正确权限。如果访问检查通过,则资源将返回到浏览器。