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地址等設定好,測試結果: