CAS统一登录认证(10): 返回认证用户多属性

在做客户端认证过程中,有些系统不但需要账号,还需要如卡号,mail等其它信息,默认cas认证后返回的是认证账号,要返回多属性,还要做些设置,记录如下:

环境:cas5.3.2 + ldap

首先,服务端要支持返回多属性:

1. application.properties 在原配置好cas使用ldap认证的基础上,增加如下部分

cas.authn.ldap[0].allowMultiplePrincipalAttributeValues=true   //允许返回多属性
cas.authn.ldap[0].allowMissingPrincipalAttributeValue=true    //允许有些属性是空值
cas.authn.ldap[0].principalAttributeList=sn,cn,mail,displayName   //返回的属性列表

2. services  需要授权允许某个应用返回多属性

可以允许返回所有属性列表的值,也可以只允许返回指定的值

(1)返回所有属性列表的值  修改 或增加如test-100000101.json

{
  "@class" : "org.apereo.cas.services.RegexRegisteredService",
  "serviceId" : "^http://X.X.X.X.cn.*",
  "name" : "cas test",
  "id" : 10000101,
  "description" : "CAS Login test X.X.X.X",
  "evaluationOrder" : 101
  "attributeReleasePolicy" : {
    "@class" : "org.apereo.cas.services.ReturnAllAttributeReleasePolicy"
  }
}
 

(2) 返回指定值

替换相应部分:

  "attributeReleasePolicy" : {
    "@class" : "org.apereo.cas.services.ReturnAllowedAttributeReleasePolicy",

    "allowedAttributes" : [ "java.util.ArrayList", [ "cn", "sn", "mail" ] ]
  }

3.重启服务

客户端即可获取多属性值

4. java客户端

以cas自带的cassample为例

以下是运行获取信息,可见已获取到多个用户信息。

5. php客户端

可以下载phpCAS,目前最新的是:CAS-1.3.5

下载后,按官方下载页面,简单配置即可测试,以下是运行 CAS-1.3.5/exampl_simple.php 的界面

example_simple.php 不用修改,修改config.php 即可,把cas服务器url,本应用url地址等设置好,测试结果:

猜你喜欢

转载自blog.csdn.net/oLinBSoft/article/details/82461721
今日推荐