Openid与SSO
1,什么是Openid
openid是一种用于以用户为中心的数字身份的分散的开放式免费框架。
2,Openid的简介
EndUser:使用OpenId标识符作为网络通行证的用户。
OpenId依赖方(RP):一种在线资源,使用OpenId识别可以访问它的对象。
OpenId提供者(OP):一个站点,用户可在该站点声明OpenId,随后登录并为任意RP验证身份。
RP 通常由用户提供的标识符呈现,该标识符被规范化为声明的标识符。用户的浏览器将被重定向到 OP,这样用户便可以提供其密码并得到身份验证。RP 不知道也不关心声明的标识符是如何获得验证的;它只想知道 OP 是否成功地验证了用户身份。如果验证成功,用户代理会被转发到用户正试图访问的安全资源中。如果用户得不到验证,RP 会拒绝任何访问。
OP负责发出标识符并执行用户身份验证。OP 收集并保留每个用户的一些基本信息。当要求 OP 验证声明的标识符时,用户的浏览器直接转到登录页面,用户在该页面输入其密码,此时的控制权在于 OP,如果用户成功得到身份验证,OP 会将浏览器转到 RP 指定的位置(在一个特殊的 “return-to” URL 中)。如果用户不能进行身份验证,他可能会收到来自 OP 的消息,指出身份验证失败 。
3,Openid与SSO对比
(1)使用范围
SSO(Single Sign-on)单点登录使用在一个企业/公司的范围内,实现各个系统的认证整合是可行的,但是实现全网的认证整合则不可行。
OpenID 不是一个具体的实现或者产品,而是一个规范,是一个被认可的统一的规范,参见:openid.net 。该规范建立的目的,就是实现全网的认证信息共享。任何公司和组织,都可以根据规范,开发自己的 OpenID provider,将自己的认证用户数据库提供全网“共享”。•
OpenID 相比 SSO,是松耦合的认证整合,不会限制于某个认证平台,是更加开放的系统。
(2)实现
SSO 的实现可能依赖于 Cookie,涉及到 Cookie 名称校验、发放和匹配等,需要对 Web 应用的认证进行改造,开发量大,SSO 服务器需要对 Web 应用开放特定端口/API,以便 Web 应用能够从服务器获取登录状态信息,影响登录服务器的安全性。
OpenID 和认证中心是松耦合,应用无须实现和某个认证中心绑定。登录时用户手工输入在任意一个认证中心的 OpenID URL,OpenID 使用标准的 HTTPS 协议,并且不依赖于 Cookie。让全网不同架构的Web应用服务器和 OpenID 的整合提供可能,OpenID 提供了几乎各种语言的API,便于应用在登录中增加 OpenID 登录功能。
分享到:
相关推荐
- 集成SP应用:在每个SP应用中配置SSO服务器的信任信息,实现与SSO服务器的通信。 - 用户界面调整:可能需要修改SP应用的登录页面以引导用户至SSO服务器的登录界面。 - 安全考虑:确保传输过程中票据或令牌的安全...
3. **集成SP**:对每个需要SSO的应用进行配置,使其能够与IdP通信并处理令牌。 4. **测试和调试**:确保所有系统都能正确地识别和交换身份信息,解决可能出现的错误。 5. **用户培训**:向最终用户介绍新的登录流程...
10. **扩展性与兼容性**:随着业务发展,可能需要支持更多的应用系统,或者与其他SSO系统互操作。设计时应考虑到扩展性和兼容性,如采用标准协议,提供API接口等。 以上是SSO单点登录在Java环境中的主要技术和知识...
在SSO场景中,可能与OpenID Connect结合使用。 - **OpenID Connect**:基于OAuth 2.0的认证层,可以提供用户身份验证。它在OAuth 2.0的基础上添加了一个ID令牌,使得SSO更为便捷。 - **Cookie管理**:SSO系统通常...
3. **协议**:常见的SSO协议有SAML(Security Assertion Markup Language)、OAuth、OpenID Connect等。这些协议定义了IDP和服务提供者之间如何交换身份验证信息。 4. **票据(Token)**:在用户成功登录IDP后,IDP...
10. **测试与调试**:在实施SSO时,要进行详尽的测试,包括不同浏览器、网络环境和异常情况下的测试,确保SSO功能的稳定性和可靠性。 总之,SSO_same_domain主要涵盖了同域名下SSO的实现方法和安全考虑,涉及到...
6. **集成应用程序**:将SSO与你的业务应用程序集成,通过配置SAML协议或者OpenID Connect协议实现单点登录功能。 7. **测试SSO**:安装完成后,务必进行详尽的测试,确保SSO功能正常工作,无任何权限问题或登录...
Keycloak基于OAuth 2.0、OpenID Connect和其他标准协议,易于与其他现代Web应用程序集成。 在实施SSO时,通常涉及以下几个关键步骤: 1. 用户访问受保护资源:用户尝试访问需要登录的应用程序。 2. 重定向到SSO...
- **Protocol**:如CAS、OAuth、OpenID Connect等,是SSO服务端和客户端之间通信的规则,定义了如何交换信息,验证用户身份以及如何处理票据。 - **Session Management**:SSO还需要考虑会话管理,确保用户在一个...
3. **基于OAuth和OpenID Connect的实现**:OAuth提供了一种授权框架,而OpenID Connect是基于OAuth的认证层。用户通过授权服务器进行身份验证,然后获取访问令牌,这个令牌可以用于访问受保护的资源。 三、SSO源码...
- **单点登出(SLO)**:与SSO相对应,用户登出一次即可从所有关联系统中退出,保持安全性。 3. SSO实现架构: - **基于协议的实现**:如OAuth、OpenID Connect等,适用于Web应用之间的SSO。 - **基于联盟的实现...
2. **Protocol**:不同的 SSO 协议如 SAML、OAuth、OpenID Connect 分别适用于 Web、移动和桌面环境,它们定义了 IDP 和 SP 之间交互的安全方式。 3. **Session Management**:SSO 还涉及到会话管理,确保用户在...
- **基于Token的SSO**:例如OAuth和OpenID Connect,用户通过第三方认证服务器获取访问令牌(Token),然后使用这个令牌访问各个服务。这种方式更安全,因为令牌可以有时间限制且可撤销。 - **基于票据的SSO**:如...
5. 目标应用接收到这个令牌或参数,通过与SSO服务器通信验证用户身份。 6. 验证成功后,目标应用将用户视为已登录,并允许其访问资源。 在Java Web环境中,如上述代码所示,可以使用Struts2框架来实现SSO功能。`...
- OpenID Connect:基于OAuth 2.0的协议,提供简单的身份验证层,适合构建SSO服务器。 4. 跨域支持: - CORS(Cross-Origin Resource Sharing):为了让浏览器允许来自不同源的请求,SSO服务器需要配置CORS策略,...
在Java环境下实现SSO,我们可以利用开源框架如CAS、OAuth、OpenID Connect等。本篇文章将针对Java SSO的基本概念、工作原理以及一个简单的SSO Demo进行深入讲解。 **一、SSO基本概念** 1. **SSO工作流程**: - ...
常见的SSO实现技术有CAS(Central Authentication Service)、OAuth、OpenID Connect等。本源码可能采用了其中的一种或多种技术,具体实现细节需查看源码来了解。 1. CAS:是一个开源的SSO协议,它定义了一种标准的...
2. **互操作性**:SSO系统需要与其他系统和应用程序兼容,因此,选择一个开放标准如SAML或OAuth是重要的。 3. **用户体验**:设计良好的SSO系统应该尽可能透明,用户应能无缝地从一个应用跳转到另一个应用。 4. **...
4. **OAuth2和OpenID Connect**:OAuth2主要处理授权,而OpenID Connect是在OAuth2上增加了一个身份验证层,可以用于SSO。这两个协议在现代Web应用中广泛使用,Java有Spring OAuth2等实现。 5. **密码学原理**:在...