SSO = Single Sign On
为什么要有SSO?
我们可以从有SSO和没有SSO比较开始:
- 如果没有SSO的话,那所有的APP都需要维护一套完整的
认证+授权
(authentication and authorization)
App team 不开心,因为他们不得不维护所有用户信息,还要维护模块去做验证和授权
User 不开心,因为用户得不得在每个App内管理一对儿用户名和密码,还总是需要登录 - 如果有SSO,那么用户只需要注册/认证+授权/一次
APP team 开心了,他们不在需要维护用户信息,也完全不需要认证模块
User 开心了,他们不需要到处登录,记住用户名密码,只需要登录一次就能访问需要的各个App
SSO 组成部分
- User: 就是user,想要访问不同的app
- Indentity Provider (IDP): IDP 不仅仅是告诉了SP user是谁, 同时还需要告诉SP user都有什么访问权限
- Service Provider (SP): SP就是传统的那些APP
- 更多情况下,IDP的话会与AD或者LDAP建立联系,因为user信息的话会存储在external system,这样的话就可以有很多的IDP但是user数据是几种存储的
SSO protocols
-
Basic auth: simple username + password