升级5.1.0
CAS
与SAP
进行SAML2.0
协议认证时有#2496问题,在V5.1.0-RC3
修复,所以在5.1.0
正式release
后进行升级.
修改gradle.properties
1
cas.version=5.1.0
同时修改cas/build.gradle
1
apply from: 'https://raw.githubusercontent.com/apereo/cas/5.1.x/gradle/overrides.gradle'#由5.0.x改为5.1.x
重新编译替换即可
SAML2.0认证支持
保证编译war包时添加了1
compile "org.apereo.cas:cas-server-support-saml-idp:${project.'cas.version'}"
要把证书引入到java环境中:1
keytool -import -alias cas-main -keystore $JAVA_HOME/jre/lib/security/cacerts -file /tmp/host.cer
引入了证书到linux的认证目录下(不确定是否有用处)1
cp 证书 /usr/local/share/ca-certificates/ && update-ca-certificates
注意:
1.通配符域名如*.com,会报DNS 找不到host
2.不引入证书到cas-server的java环境的话,会报1
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
配置SAML2 SPmetadata
配置中添加了1
2cas.authn.samlIdp.metadata.location=/etc/cas/saml #5.1.0后需要加file:,否则报错识别不了
cas.authn.samlIdp.metadata.location=file:/etc/cas/saml
所以把SPMetadata
放到/etc/cas/saml
下
然后以services
的形式配置SP信息,path
为tomcat/webapps/cas/WEB-INF/classes/services
,格式为json
文件
配置文件内容为:1
2
3
4
5
6
7
8{
"@class" : "org.apereo.cas.support.saml.services.SamlRegisteredService",
"serviceId" : "***********", #为metadata里的entityId
"name" : "SAMLService", #唯一的名字
"id" : 10000003, #唯一且递增的id
"evaluationOrder" : 10,
"metadataLocation" : "/etc/cas/saml2/ServiceProviderSAML2Metadata_New.xml" #指定metadata的path
}
多个SP的话就配置多个services
update:
cas 5.1.0正式版release后,从json文件load service需要在配置中添加:1
cas.serviceRegistry.initFromJson=true