2024年单点登录建设方案(20篇)

单点登录建设方案 第1篇

管理不同系统中不同的人所扮演的不同角色。由于不同系统关联不同机构,因此角色分为应用角色(按照机构应用定义)、平台角色(跨机构跨应用)。

通过此功能可以实现添加或删除角色、角色信息的改变、查询角色相关信息,为后续用户分配角色权限等。

即角色是人员与权限的集合,多个人员可以同属一种角色。比如:处级、副处级、办事员,皆为角色。角色是可继承的,对于一个分级的权限实现,某个角色通过“继承”就已经直接获得其父角色所拥有的所有“权限集合”。用户也可以隶属于角色,用户继承该角色所拥有的权限。只要某用户直接或者间接的属于某个角色,那么它就具备这个角色的所有操作许可。

用户与角色是多对多的关系。即一个用户可以属于多个角色之中,一个角色可以包括多个用户。子角色与父角色是多对一的关系。角色对系统的作用实质上就是提供了一个用户载体和权限载体。

单点登录建设方案 第2篇

Ticket Granting ticket (TGT) :可以认为是CAS Server根据用户名密码生成的一张票,存在Server端Ticket-granting cookie (TGC) :其实就是一个Cookie,存放用户身份信息,由Server发给Client端Service ticket (ST) :由TGT生成的一次性票据,用于验证,只能用一次。相当于Server发给Client一张票,然后Client拿着这个票再来找Server验证,看看是不是Server签发的。

单点登录建设方案 第3篇

网内用户只需要在任意一个接入单点登录与统一授权管理系统的应用系统中注销用户信息,就可以退出曾经或正在访问的所有应用系统。

平台管理员可以实时查看统一用户与身份认证系统中的在线用户,并可以进行用户强制注销。

单点登录时序图:

2. 机构用户管理

统一授权管理系统提供创建和管理机构、部门、用户的功能。通过创建与现实组织结构相符的机构、部门、用户,并给用户赋予某种角色,使之拥有给定的权限。机构在统一用户与身份认证系统中是一个独立的组织单位,部门、用户、角色是以机构为单位存储。

单点登录建设方案 第4篇

Payload 部分也是一个 JSON 对象,用来存放实际需要传递的数据。JWT 规定了7个官方字段,供选用。

iss (issuer):签发人

exp (expiration time):过期时间

sub (subject):主题

aud (audience):受众

nbf (Not Before):生效时间

iat (Issued At):签发时间

jti (JWT ID):编号

除了官方字段,你还可以在这个部分定义私有字段,下面就是一个例子。

注意,JWT 默认是不加密的,任何人都可以读到,所以不要把秘密信息放在这个部分。

这个 JSON 对象也要使用 Base64URL 算法转成字符串。

单点登录建设方案 第5篇

(1)JWT 默认是不加密,但也是可以加密的。生成原始 Token 以后,可以用密钥再加密一次。

(2)JWT 不加密的情况下,不能将秘密数据写入 JWT。

(3)JWT 不仅可以用于认证,也可以用于交换信息。有效使用 JWT,可以降低服务器查询数据库的次数。

(4)JWT 的最大缺点是,由于服务器不保存 session 状态,因此无法在使用过程中废止某个 token,或者更改 token 的权限。也就是说,一旦 JWT 签发了,在到期之前就会始终有效,除非服务器部署额外的逻辑。

(5)JWT 本身包含了认证信息,一旦泄露,任何人都可以获得该令牌的所有权限。为了减少盗用,JWT 的有效期应该设置得比较短。对于一些比较重要的权限,使用时应该再次对用户进行认证。

(6)为了减少盗用,JWT 不应该使用 HTTP 协议明码传输,要使用 HTTPS 协议传输。

单点登录难免会遇到窗口之间 JS 跨域问题,此时的解决方案是 postMessage

postMessage 是HTML5 XMLHttpRequest Level 2中的API,且是为数不多可以跨域操作的window属性之一,它可用于解决以下方面的问题:

a.) 页面和其打开的新窗口的数据传递

b.) 多窗口之间消息传递

c.) 页面与嵌套的iframe消息传递

d.) 上面三个场景的跨域数据传递

用法:postMessage(data,origin) 方法接受两个参数

data: html5规范支持任意基本类型或可复制的对象,但部分浏览器只支持字符串,所以传参时最好用()序列化。

origin: 协议+主机+端口号,也可以设置为_*_,表示可以传递给任意窗口,如果要指定和当前窗口同源的话设置为_/_。

1.):()

2.):()

单点登录建设方案 第6篇

给角色分为好几个等级,每个等级权限不同,从而实现更细粒度的权限管理。

即应用管理员、一般角色的角色等级用例图:

单点登录建设方案 第7篇

角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系允许角色间的多继承,受限继承关系则进一步要求角色继承关系是一个树结构。因此继承的角色就算不小心被赋予了超级权限(即角色授权权限),用户依然无权限对其他模块操作。

2. 角色分配中角色未作角色过滤,一旦超级权限角色被赋予了某一个人,这样最终角色权限也将变得形同虚色

一般继承关系如下图:

受限继承关系如下图:

题图来自 Unsplash,基于 CC0 协议

单点登录建设方案 第8篇

应用访问策略为应用程序或应用程序组提供访问策略设置功能,如限制可访问的时间及IP等。

三、单点系统如何做权限

权限的目的:防止以后误操作、人为破坏、数据泄露等,且不同用户类型所持有不同的权限能看到及操作不同的数据来保障数据、业务安全。

权限管理是系统重要组成部分,其最常见模式RBAC模型:用户、角色、权限,即一个用户账号对应多个角色,每个角色对应相应的权限集(RBAC模型),这种模型主要是通过角色可以实现灵活且多样的的权限操作需求。

因此我们的数据库设计模型,描述如下图关系如下图:

而单点系统会涉及应用管理,其应用管理就是提供创建和管理第三方应用程序的功能。对接入的各应用系统进行有效的监督和控制,并面向所有用户定制应用系统权限管理模型,制定权限规则和权限分配策略,实现不同用户访问不同应用系统。

即一个用户账号对应多个角色,每个角色对应相应的权限集,每个权限集是对应相应的应用,依然通过角色可以实现灵活且多样的的权限操作需求。

因此我们的数据库设计模型,描述如下图关系如下图:

四、超级权限泛滥的坑点及对应的解决方案 1. 假设我现在新增一个角色,该角色不小心被赋予了超级权限(即角色授权权限),并且赋予某一类用户后,这样最终角色权限维护乱了,权限也变得形同虚设

单点登录建设方案 第9篇

用户管理功能是单点登录系统中的核心功能,管理着机构和应用系统中所有的相关用户数据,通过此功能可以实现添加或删除用户、用户信息的改变、查询用户相关信息,为用户增加角色以及权限等。

各机构系统管理员可以添加、删除、修改、移动本机构下用户基本信息,可以进行用户扩展属性处理,配置各个业务应用系统已有用户账号和密码,建立统一用户与身份认证系统与各个业务系统的用户映射关系,赋予用户关联角色。

3. 权限管理

单点登录建设方案 第10篇

Access Token 是在 协议中,客户端访问资源服务器时需要带上的令牌(其实就是一段全局唯一的随机字符串)。拥有这个令牌代表着得到用户的授权。令牌里面包含哪个用户 在什么时候 授权给哪个app去做什么事情。当然这些信息是不能直接从Access Token 看出来的,而是存在平台方的数据库中,平台可以用Access Token 作为 key 去查询出这些信息,然后验证调用方是否有权限。

单点登录建设方案 第11篇

OAuth 是一个行业的标准授权协议,主要用来授权第三方应用获取有限的权限。实际上它就是一种授权机制,最终目的是为第三方应用颁发一个有时效性令牌 token,使得第三方应用能够通过该令牌获取相关的资源。OAuth 比较常用的场景就是第三方登录,当你的网站接入了第三方登录时一般就是使用的 OAuth 协议。现在OAuth 也常见于支付场景(微信支付、支付宝支付)和开发平台(微信开放平台、阿里开放平台等等)。

单点登录建设方案 第12篇

角色(Role)是一组访问权限的集合,当需要对一组用户赋予相同的权限时,可以使用角色来授权。基于角色的授权可以大大简化授权流程,降低授权管理成本。当需要对用户授权时,应当优先考虑是否应该使用角色来完成。

通过此功能可以实现角色关联应用系统资源权限。

4. 应用管理

应用管理是管理机构下中所有应用系统相关应用信息数据,例如:资源管理、权限功能等,通过此功能可以实现添加或删除应用、应用信息的改变、查询应用相关信息,是为用户分配应用角色以及权限的基础。并提供创建和管理第三方应用程序的功能。对接入的各应用系统进行有效的监督和控制,并面向所有用户定制应用系统权限管理模型,制定权限规则和权限分配策略,实现不同用户访问不同应用系统。

单点登录建设方案 第13篇

CAS框架:CAS(Central Authentication Service,即:统一认证服务)是实现SSO单点登录的框架。CAS分为两部分,CAS Server和CAS Client。CAS Server用来负责用户的认证工作,就像是把第一次登录用户的一个标识存在这里,以便此用户在其他系统登录时验证其需不需要再次登录。CAS Client就是我们自己开发的应用程序,需要接入CAS Server端。当用户访问我们的应用时,首先需要重定向到CAS Server端进行验证,要是原来登陆过,就免去登录,重定向到下游系统,否则进行用户名密码登陆操作。

单点登录建设方案 第14篇

1)用户访问网站,第一次来,重定向到 CAS Server,发现没有cookie,所以再重定向到CAS Server端的登录页面,并且URL带有网站地址,便于认证成功后跳转,形如 http ?/cas-server:8100/login?service=http ?/localhost:8081注意:service后面这个地址就是登录成功后要重定向的下游系统URL。2)在登陆页面输入用户名密码认证,认证成功后cas-server生成TGT,再用TGT生成一个ST。 然后再第三次重定向并返回ST和cookie(TGC)到浏览器3)浏览器带着ST再访问想要访问的地址:http ?/localhost:8081/?ticket=ST-25939-sqbDVZcuSvrvBC6MQlg5注意:ticket后面那一串就是ST4)浏览器的服务器收到ST后再去cas-server验证一下是否为自己签发的,验证通过后就会显示页面信息,也就是重定向到第1步service后面的那个URL首次登陆完毕。5)再登陆另一个接入CAS的网站,重定向到CAS Server,server判断是第一次来(但是此时有TGC,也就是cookie,所以不用去登陆页面了),但此时没有ST,去cas-server申请一个于是重定向到cas-server,形如:http: //cas-server:8100/login?service=http ?/localhost:8082 && TGC(cookie) (传目标地址和cookie)6)cas-server生成了ST后重定向给浏览器http ?/localhost:8082/?ticket=ST-25939--xxxx7)浏览器的服务器收到ST后再去cas-server验证一下是否为自己签发的,验证通过后就会显示页面信息(同第4步)

单点登录建设方案 第15篇

Token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。简单Token的组成;uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token的前几位以哈希算法压缩成的一定长度的十六进制字符串。为防止token泄露)。

单点登录建设方案 第16篇

以登录天猫为例进行说明:1)当⽤户第⼀次访问淘宝的时候,因为还没有登录,会被引导到认证中⼼进⾏登录。2)根据⽤户提供的登录信息,认证系统进⾏身份验证,如果通过,则登录成功,并返回给⽤户⼀个认证的凭据(JWT token)。3)当⽤户访问天猫时,就会将这个 JWT token 带上,作为⾃⼰认证的凭据。4)应⽤系统接收到请求后会把 JWT token 送到认证中⼼进⾏校验。5)如果通过校验,⽤户就可以在不⽤再次登录的情况下访问天猫了。

单点登录建设方案 第17篇

OAuth 是一种认证授权机制,主要用来颁发令牌(token),OAuth 的核心就是向第三方应用颁发令牌, 就是对应上文 (统一认证授权方式实现单点登录)中的认证系统。

OAuth 在“客户端”与“服务端”之间,设置了一个授权层(Authorization Layer), “客户端”通过登录授权层获取令牌,通过令牌即可访问服务端资源。

单点登录流程同上文介绍的“统一认证授权方式”流程一致:用户首次访问服务端资源时未登录,被引导到认证系统中进行登录授权,登录成功后获取令牌,用户获取令牌后可以通过令牌获取用户信息。客户端必须获取到用户授权,才能获取令牌。

定义了 4 种授权方式:

DataSimba 通过简化模式获取令牌,使用 实现单点登录时序图如下:

图源:褚岩

通过 认证实现单点登录,为开发人员提供了一个通用的身份验证框架,提高开发人员的效率,解决了跨顶级域名单点登录问题。

单点登录建设方案 第18篇

LDAP(Lightweight Directory Access Protocol),它是基于 标准的轻量级目录访问协议。LDAP 目录服务是由目录数据库和一套访问协议组成的系统。

日常办公经常会有多套系统,如果各个系统各自维护一套用户认证,用户需要记住多个用户名密码。系统各自管理用户认证的方式,不但会有重复建设的问题,用户体验也会差——经常会有用户忘记密码的情况。通过 LDAP,我们可以管理企业级账号,认证用户名密码,实现统一账号登录,只需一个用户名密码就可以登录所有系统。

LDAP 作为统一登录认证架构图如下:

图源:褚岩

LDAP 主要是用来实现统一身份认证的技术,目前市面上大部分的开源系统都支持 LDAP,因此通过 LDAP 能够统一管理和维护公司的账号,极大地提高了运维的工作效率。

在实际应用中,奇点云的数据中台产品 DataSimba 也通过单点登录实现了多域多空间的访问。用户登录 DataSimba 某一个域后,无需再次登录,即可方便地切换到其他域。

以一个国内大型饮料集团客户为例,DataSimba 使用 JWT+Session 共享方式实现跨域单点登录,通过 对接其统一认证平台,实现统一账号单点登录。

实现单点登录的技术方案很多,但没有哪种方案可以完美解决所有问题。我们需要针对具体应用场景来制定最优解决方案。

单点登录建设方案 第19篇

图源:褚岩

由图可知,通过统一认证授权方式实现单点登录,需要有一个独立的认证系统。

用户第一次访问应用系统时,由于还未登录,被引导到认证系统中进行登录,认证系统接受用户名密码等安全信息,生成访问令牌(ticket)。用户通过 ticket 访问应用系统,应用系统接受到请求之后会访问认证系统检查 ticket 的合法性,如果检查通过,用户就可以在不用再次登录的情况下访问应用系统资源。

以上介绍了单点登录常见的 3 种实现方案,在实际应用中还需要根据具体场景来实现。

接下来通过几个实际生产场景,来阐述单点登录的详细实现方案。

单点登录建设方案 第20篇

机构管理模块以分层次、多结构的方式管理各种复杂的组织机构,政府机构建立机构的部门结构和人员结构。可管理的对象有:机构、行业、部门、人员组。

除此之外,允许建立复杂的人员组织关系(一个职员可以被组织在多个部门中)。

通过组织机构管理模块,实现政府组织和人员管理,并可以系统的角色、用户进行关联,实现基于组织机构管理的强大的角色权限安全体系功能,满足内部网的功能需求。

通过此功能可以实现添加或删除机构和部门、机构和部门信息的改变、查询机构和部门等相关信息,是为用户分配应用角色以及权限的基础。

猜你喜欢

热门内容