属性模块

cas在身份认证之后,会检索用户属性,这个时候就用到了属性模块,该模块包含两个概念:

  • 属性解析
  • 属性发布

属性解析

就是从已配置的数据源检索数据,然后进行缓存、rename、合并、聚合等一系列操作。

属性解析由cas中的 person-directory 项目管理,它能够进行主体(principal)解析,主体(principal)就是用来承载我们想要的用户属性的集合,配置见:
https://apereo.github.io/cas/5.3.x/installation/Configuration-Properties-Common.html#person-directory-principal-resolution

person-directory 同时还维护着属性的缓存和合并的功能:

  • 属性缓存:主要就是缓存的时长、缓存的个数等等
  • 属性合并:就是将属性名进行重命名(将不同的属性名规范为统一字段),然后进行合并,合并的操作可以是:替换、添加、合并

默认缓存协议

默认,属性会缓存到SSO session中。
也就是说,尽管 PersonDirectory 提供不同的缓存模型,
默认情况下,(从CAS角度)属性都将不会在后续请求中刷新和再次检索。

更多配置参见源项目:https://github.com/apereo/person-directory

下面说一下属性解析的几个主要组件:

属性发布

属性发布,就是哪些属性将发布到客户端服务
(或者说暴露给客户端,有点像我们写业务代码时的DTO的作用),
即客户端服务通过认证后,可以拿到哪些属性,它包含以下几个主要核心:

指定principalId

一般就是指 userId

### 属性发布协议(attribute release Policy)

默认发布的属性列表:https://apereo.github.io/cas/5.3.x/installation/Configuration-Properties.html#default-bundle,该配置支持重命名,写法如:user_id:uid,即将 user_id 重命名为 uid

支持的几种发布协议:
– return all
– deny all
– return allowed
– Rest:通过接口进行发布
– Return mapped:通过配置别名,来发布属性,而且只会发布这些配置别名的属性

具体配置:https://apereo.github.io/cas/5.3.x/integration/Attribute-Release-Policies.html

属性承诺

缓存属性

属性加密








发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注