OIDC SSO - 相关SSO流程和注意事项

简介: ## 背景信息> OIDC SSO相关文档总共4篇,主要内容为对OIDC实现SSO登录流程时的各个细节和相关技术的阐述:1. 《[OIDC SSO - OAuth2.0的授权模式选择](https://ata.alibaba-inc.com/articles/218489)》2. 《OIDC SSO - 相关SSO流程和注意事项》3. 《[OIDC SSO - Discovery Mech

背景信息

OIDC SSO相关文档总共4篇,主要内容为对OIDC实现SSO登录流程时的各个细节和相关技术的阐述:

基于OIDC实现SSO,除了选择对应的OAuth 2.0 授权模式外,在RP-init SSO和OP-init SSO两个不同的流程中也存在不同的差别,本文将其进行了显示化描述。

RP-init SSO流程

The login flow initiated by the Relying Party.
在SAML协议中,为SP-init SSO。

OP-init SSO流程

The login flow initiated by an OpenID Provider.
在SAML协议中,为IdP-init SSO。

其它重要信息

id token with nonce

OIDC规范要求implicit flow和hybrid flow中的Authentication request必须指定nonce;
client接受到Authorization Server返回的id token后必须校验nonce;

refresh_token & offline_access

  1. 能否从Token Endpoint获取到Refresh Token,需要对应的client id具备refresh_token的授权;
  2. 授权服务器必须确保使用refresh_token的客户端是认证过的,当一个refresh_token被使用过以后,一个新的refresh_token被签发出来,授权服务器应该维护旧的refresh_token和客户端的关系,当恶意攻击者使用一个无效的refresh_token来刷新时,应该吊销颁发的refresh_token以及所有的access_token;
  3. offline_access是一个新的scope授权,具备此属性的授权情况下,客户端可以在终端用户未登录的情况下,请求刷新access token,即终端用户未登录状态下,客户端也可以获取access token访问资源;
A request to the Token Endpoint can also use a Refresh Token by using the grant_type value refresh_token, as described in Section 6 of OAuth 2.0 [RFC6749]


The authorization server MUST verify the binding between the refresh token and client identity whenever the client identity can be authenticated. When client authentication is not possible, the authorization server SHOULD deploy other means to detect refresh token abuse.

SLO机制

OIDC中目前存在4中草案来做对应的End-User Session管理:

  1. OpenID Connect Session Management 1.0
  2. OpenID Connect Back-Channel Logout 1.0
  3. OpenID Connect Front-Channel Logout 1.0
  4. OpenID Connect RP-Initiated Logout 1.0

当下来讲,我们暂不实现,如果支持OIDC的SLO,我们基于Logout方式来做,Session Management方式暂不支持;

参考文档

  1. OIDC Core:https://openid.net/specs/openid-connect-core-1_0.html
  2. OpenID Connect Session Management 1.0:https://openid.net/specs/openid-connect-session-1_0.html
  3. OpenID Connect RP-Initiated Logout 1.0 :https://openid.net/specs/openid-connect-rpinitiated-1_0.html
  4. OpenID Connect Back-Channel Logout 1.0 :https://openid.net/specs/openid-connect-backchannel-1_0.html
  5. OpenID Connect Front-Channel Logout 1.0 :https://openid.net/specs/openid-connect-frontchannel-1_0.html


目录
相关文章
|
23天前
|
安全 数据库 数据安全/隐私保护
什么是 单点登录SSO?SSO工作原理
单点登录(SSO)让用户通过一组凭证访问多个应用,简化了多平台登录流程。在没有 SSO 的情况下,用户需为每个应用单独管理用户名和密码,而 SSO 通过身份提供商(IdP)和信任的服务提供商(SP)实现统一认证。这不仅减少了用户的密码管理负担,还降低了 IT 管理员的工作量,提高了安全性和用户体验。借助如 ADSelfService Plus 等工具,企业能更轻松地实施 SSO,并结合多重身份验证(MFA)增强安全性。
|
8月前
|
存储 缓存
实现单点登录的方式
实现单点登录的方式
102 1
|
Python
基于flask-oidc的OIDC协议授权码模式单点登录SSO实现
基于flask-oidc的OIDC协议授权码模式单点登录SSO实现
371 0
|
存储 安全 前端开发
基于OIDC的SSO单点登录
基于OIDC的SSO单点登录
1188 0
Jasny SSO是否支持多种身份提供者?
Jasny SSO是否支持多种身份提供者?
|
XML 安全 数据格式
Jasny SSO是否支持SAML认证?底层原理是什么?
Jasny SSO是否支持SAML认证?底层原理是什么?
|
存储 安全 前端开发
OIDC SSO - OAuth2.0的授权模式选择
## 背景信息 > OIDC SSO相关文档总共4篇,主要内容为对OIDC实现SSO登录流程时的各个细节和相关技术的阐述:1. 《OIDC SSO - OAuth2.0的授权模式选择》 2. 《[OIDC SSO - 相关SSO流程和注意事项](https://ata.alibaba-inc.com/articles/218495)》 3. 《[OIDC SSO - Discovery Mech
1135 0
OIDC SSO - OAuth2.0的授权模式选择
|
存储 NoSQL 应用服务中间件
SSO单点登录流程源码学习
单点登录系统无状态应用,通过对SSO单点登录系统验证码、LT存入redis,及补偿service的操作更加深入的了解单点登录系统登录流程
SSO单点登录流程源码学习
|
数据安全/隐私保护 运维 安全
企业身份管理实战—RAM用户单点登录(SSO)
企业管理者在管理企业员工账号和使用的多个云平台的账号的时候,一般采取集中式的管理。但是企业在使用一家或多家云平台的资源服务时,如何统一的管理企业员工账号和多个云平台的账号身份,并打通本地到云上控制台的访问呢?本文就将介绍如何通过业界标准的协议,来解决这些问题。
2613 0
企业身份管理实战—RAM用户单点登录(SSO)
|
XML 数据格式
SSO场景系列:实现Shibboleth+Ldap到阿里云的单点登录
Shibboleth简介 Shibboleth是一个基于标准的,实现组织内部或跨组织的网页单点登录的开源软件包。它允许站点为处于私有保护方式下的受保护的在线资源做出被通知的认证决定。 Shibboleth软件工具广泛使用联合的身份标准,主要是OASIS安全声称标记语言(SAML),来提供一个联合单点登录和属性交换框架。
7819 0