当前位置: 首页 > 知识库问答 >
问题:

面向服务商的SSO系统实施

司马羽
2023-03-14

我试图了解服务提供商的SSO系统的实现。这是我的问题。

> < li>

用户登录到系统A。系统A进行验证,并在页面上显示指向用户的链接。当用户单击该链接时,系统A将用户重定向到系统B,其中系统B是第三方供应商。这里谁是IdP,谁是SP?

在从 IdP 到 SP 的流中是否存在任何服务器到服务器通信?是否在所有情况下都需要它?

你能一步一步解释IdP发起的到SP的数据流吗?

关于这一点的任何材料或简单解释都会有所帮助。

共有1个答案

慕项明
2023-03-14

在回答您的问题并假设通过安全标记语言 (SAML) 进行 SSO 时:

  1. 系统A是身份提供商(IdP),系统B是服务提供商(SP)
  2. 没有服务器到服务器的通信。使用HTTP绑定(例如HTTP POST)通过客户端浏览器传递信息
  3. 逐步IdP启动的工作流(摘自OASIS SAML V2.0技术概述):

>

  • 如果用户在IdP上没有有效的本地安全上下文,在某些时候,用户将被要求向IdP站点提供他们的凭据,idp.example.org.

    用户提供有效的凭证,并且在IdP为用户创建本地登录安全上下文。

    用户在 IdP 上选择菜单选项或链接以请求访问 SP 网站,sp.example.com。这会导致调用 IdP 的单一登录服务。

    单一登录服务构建一个SAML断言,表示用户的登录安全上下文。由于将使用POST绑定,所以在将断言放入SAML消息之前,会对其进行数字签名。然后,该消息作为一个名为SAMLResponse的隐藏表单控件放在一个HTML表单中。(如果IdP和SP支持在SP上标识特定应用程序资源的约定,则SP上的资源URL也使用名为RelayState的隐藏表单控件编码到表单中。)单点登录服务在HTTP响应中将HTML表单发送回浏览器。为了易于使用,HTML表单通常会包含脚本代码,这些代码会自动将表单发布到目标站点。

    由于用户操作或“自动提交”脚本的执行,浏览器发出HTTP POST请求,将表单发送到SP的断言消费者服务。服务提供者的断言消费者服务从HTML表单获取消息进行处理。必须首先验证SAML断言上的数字签名,然后处理断言内容,以便为SP上的用户创建本地登录安全上下文。一旦完成,SP检索RelayState数据(如果有的话)以确定所需的应用资源URL,并向浏览器发送HTTP重定向响应,指示其访问所请求的资源(未示出)。

    进行访问检查以确定用户是否具有访问资源的正确授权。如果访问检查通过,则将资源返回给浏览器。

  •  类似资料:
    • 主要内容:服务的分类,查询已经安装的服务和区分服务我们知道,系统服务是在后台运行的应用程序,并且可以提供一些本地系统或网络的功能。我们把这些应用程序称作 服务,也就是 Service。不过,我们有时会看到 Daemon 的叫法,Daemon 的英文原意是"守护神",在这里是"守护进程"的意思。 那么,什么是守护进程?它和服务又有什么关系呢? 守护进程就是为了实现服务、功能的进程。比如,我们的 apache 服务就是服务(Service),它是用来

    • 13.系统服务 同其它现代操作系统一样,Android也内置了一系列的系统服务。它们都是随着系统启动,并一直处于运行状态,随时可供开发者访问。比如位置服务、传感器服务、WiFi服务、Alarm服务、Telephony服务、Bluetooth服务等等。 本章介绍几个常见的系统服务,并思考如何将它们应用到Yamba。我们先在一个小例子里引入传感器服务,借以观察系统服务的一般特性,然后通过位置服务为Ya

    • SRS提供多种启动的方式,包括: 在git目录直接启动,简单直接,但系统重启后需要手动启动。 系统服务,init.d脚本:SRS提供srs/trunk/etc/init.d/srs脚本,可以作为CentOS或者Ubuntu的系统服务自动启动。 可以直接下载release的binary,提供了几个常见系统的安装包,安装程序会安装系统服务,直接以系统服务启动即可。参考:Github: release或

    • 8.1 ABP实时服务 - 通知系统 8.1.1 简介 在系统中,通知是用来告知用户特定事件的。ABP提供了一个基于实时通知的基础设施 pub/sub. 8.1.2 发送模式 有两种方法来发送通知给用户: 用户 订阅 一个特定的通知类型。当我们发布这个类型的通知时,该通知会被投递给所有的订阅用户。这就是 pub/sub 模式。 我们能直接的发送通知给目标用户。 8.1.3 通知类型 通知类型也有两

    • Linux系统服务管理 从CentOS7开始,CentOS的服务管理工具由SysV改为了systemd,但即使是在CentOS7里,也依然可以使用chkconfig这个原本出现在SysV里的命令。 Systemd的设计目标是,为系统的启动和管理提供一套完整的解决方案。 chkconfig服务管理工具 罗列chkconfig所管理的服务 使用chkconfig --list命令可以列出所有的服务及其

    • 本文向大家介绍golang实现单点登录系统(go-sso),包括了golang实现单点登录系统(go-sso)的使用技巧和注意事项,需要的朋友参考一下 这是一个基于Go语言开发的单点登录系统,实现手机号注册、手机号+验证码登录、手机号+密码登录、账号登出等功能,用户认证采用cookie和jwt两种方式。收发短信相关方法已提供,仅需根据短信通道提供商提供的接口做相应的参数配置即可使用。 环境介绍 g