CAS APIs
/login
GET ${baseUrl}/v1/cas/sso/{Client ID}/cas/login
/login
接口是CAS协议的起点,CAS应用将用户重定向到该接口地址以获取登录应用的凭证。
注:
/login
接口URL中的 {Client ID} 请使用在XAuth中创建的CAS应用的 Client Id
用户浏览器请求该接口后,XAuth 对用户的登录状态进行判断,如果用户已经登录直接重定向到接收ticket的接口,如果未登录则将用户重定向到登录界面进行登录认证。
请求参数
参数 | 描述 | 参数类型 | 数据类型 | 是否必需 |
---|---|---|---|---|
service | CAS应用的标识,必须与在XAuth中配置的应用回调地址 一致。 | Query | String | 是 |
请求示例:
https://cipherchina0.xauth.cloud/cas/sso/457a0df498d3434bb886caaa64c009c9/cas/login?service=http://127.0.0.1/cas
响应示例
XAuth验证通过后,返回一个ticket
:
http://127.0.0.1/cas?ticket=ST-bPw_mfsxRRIsS9eqF6j7Xy6_
/serviceValidate
GET ${baseUrl}/v1/cas/sso/{Client ID}/cas/serviceValidate
/serviceValidate
检查ticket
票据的有效性并返回用户信息。
注:
/serviceValidate
接口URL中的 {Client ID} 请使用在XAuth中创建的CAS应用的 Client Id
参数 | 描述 | 参数类型 | 数据类型 | 是否必需 |
---|---|---|---|---|
service | CAS应用的标识,必须与在XAuth中配置的应用回调地址 一致。 | Query | String | 是 |
ticket | 在上一步请求/login 接口成功后返回的票据。 | Query | String | 是 |
format | 值是 XML 和 JSON,如果设置了此参数,则必须根据参数值生成验证响应;如果未设置此参数,将使用默认的 XML 格式。 | Query | String | 否 |
该响应可以使用xml和json两种格式,format参数未指定时,默认使用xml格式
请求示例:
https://cipherchina0.xauth.cloud/cas/sso/457a0df498d3434bb886caaa64c009c9/cas/serviceValidate?ticket=ST-bPw_mfsxRRIsS9eqF6j7Xy6_&service=http://127.0.0.1/cas
响应示例:
xml格式:
<?xml version="1.0" encoding="UTF-8"?>
<cas:serviceResponseBase xmlns:cas="http://www.yale.edu/tp/cas">
<cas:authenticationSuccess>
<cas:user>username</cas:user>
<cas:proxyGrantingTicket>PGTIOU-948a68b9014d4b23b294af2284d2efac</cas:proxyGrantingTicket>
<cas:proxies/>
<cas:attributes>
<cas:mobilePhone>18612345678</cas:mobilePhone>
<cas:updated_at/>
<cas:displayName>姓名</cas:displayName>
<cas:jobTitle/>
<cas:employeeId/>
<cas:email>mail@cipherchina.com</cas:email>
</cas:attributes>
</cas:authenticationSuccess>
</cas:serviceResponseBase>
json格式:
{
"serviceResponse" : {
"authenticationSuccess" : {
"user" : "username",
"proxyGrantingTicket" : "PGTIOU-948a68b9014d4b23b294af2284d2efac",
"attributes":{
"mobilePhone":"18612345678",
"displayName":"姓名",
"email":"mail@cipherchina.com"
}
}
}
}
/logout
GET ${baseUrl}/v1/cas/sso/cas/logout
/lgout
用于销毁客户端的CAS单点登录会话。
参数 | 描述 | 参数类型 | 数据类型 | 是否必需 |
---|---|---|---|---|
service | 如果指定了service参数,则在执行注销后,浏览器会自动重定向到service指定的URL。 | Query | String | 否 |
请求示例:
https://cipherchina0.xauth.cloud/cas/sso/cas/logout?service=http://127.0.0.1
响应示例:
<samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
ID="[RANDOM ID]" Version="2.0" IssueInstant="[CURRENT DATE/TIME]">
<saml:NameID xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
@NOT_USED@
</saml:NameID>
<samlp:SessionIndex>[SESSION IDENTIFIER]</samlp:SessionIndex>
</samlp:LogoutRequest>`