CAS认证接口说明之客户端集成(一)

使用CAS登录页面(CAS接口)

页面跳转登录方式为推荐方式,同等条件下建议使用该方式进行集成。用户在多个应用系统中,只需要登录一次就可以访问所有相互信任的应用系统,可为用户登录提供单点登录的使用效果。

登录场景

页面跳转集成兼容 CAS 2.0、CAS 3.0 协议标准,流程包含三种场景下的登录流程:首次登录、登录后第二次访问同一个第三方应用、登录后首次访问第二个第三方应用。
首次登录流程为:

  1. 用户通过浏览器打开第三方应用,第三方应用验证用户登录状态(如通过 session cookie 判断),判断用户未登录后,将用户重定向到认证服务器;
  2. 认证服务器验证用户登录状态,判断用户未登录后,向用户展示登录页面;
  3. 用户完成登录操作;
  4. 认证服务器设置用户浏览器 cookie 的 CASTGC 内容,并重定向用户到第三方应用;
  5. 第三方应用从用户请求中获取 ticket,并使用 ticket 调用认证服务器验证接口, 获取用户信息;
  6. 第三方应用使用获取到的信息(如人员编号、姓名)完成系统内登录逻辑(如设置 session)。
    登录后第二次访问同一个第三方应用流程为:
  7. 用户通过浏览器打开第三方应用,第三方应用验证用户登录状态(如通过 session cookie 判断);
  8. 第三方应用判断用户已登录,向用户展示内容页面。
    登录后首次访问第二个第三方应用流程为:
  9. 用户通过浏览器打开第三方应用,第三方应用验证用户登录状态(如通过 session cookie 判断),判断用户未登录后,将用户重定向到认证服务器;
  10. 认证服务器通过 CASTGC 验证用户登录状态,判断内容有效后,重定向用户到第三方应用;
  11. 第三方应用从用户请求中获取 ticket,并使用 ticket 调用票据验证接口, 获取用户信息;
  12. 第三方应用使用获取到的信息(如人员编号、姓名)完成系统内登录逻辑(如设置 session)。

登录接口

地址 http://cas.xxx.com/login
调用方式 GET
参数 service 必填 第三方应用接口地址,用户在 /login 接口完成登录后,系统会将其重定向到的该地址,此接口由第三方应用提供,要在服务管理的白名单内,接口需要完成的操作:

  1. 从请求中获取 ticket 参数;
  2. 使用ticket 调用票据验证接口 /serviceValidate 获取用户信息( ticket 一次生效);
  3. 完成用户登录(如写 session )。
    调用场景 第三方应用在判断用户未登录后,将用户重定向到该地址。
    示例 https://cas.xxx.com/login?service=http://jjgl.xxx.com 用户完成登录后,将重定向到:http://jjgl.xxx.com?ticket=ST-123456

登出接口

地址 http://cas.xxx.com/logout
调用方式 GET
参数 service 必填 同1.1.2登录接口/login 的 service 参数
调用场景 用户在第三方应用点击注销/登出按钮后,第三方应用:

  1. 调用后台接口,使用户 session 失效;
  2. 重定向用户到该地址,使统一认证登录状态失效。
    示例 http://cas.xxx.com/logout?service=http://jjgl.xxx.com 用户完成登出后,将跳转至登录页面

票据验证接口

1. 调用方式 GET
协议 URL
CAS 2.0 协议接口 http://cas.xxx.com/serviceValidate
CAS 3.0 协议接口 http://cas.xxx.com/p3/serviceValidate
2. 参数说明:
参数 是否为空 说明
service 必填 同登录接口/login 的 service 参数
ticket 必填 第三方应用获取到的 ticket ,如 ST-123456
3. 返回值示例

示例 https://cas.xxx.com/serviceValidate?service=http://jjgl.xxx.com&ticket=ST-123456 验证成功后,将返回:

<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
    <cas:authenticationSuccess>
        <cas:user>admincas:user>
        <cas:attributes>
            <cas:userNO>admincas: userNO>
            <cas:realName>管理员cas:realName>
            <cas:accountID>admincas:accountID>cas:attributes>
    cas:authenticationSuccess>
cas:serviceResponse>

验证失败后,将返回:

<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas' >
	<cas:authenticationFailure code="INVALID_TICKET" >
		Ticket ST-123456 not recognized
	cas:authenticationFailure>
cas:serviceResponse>
4. 错误码说明:

返回值 XML 格式编码的调用结果,如果 ticket 验证通过,将返回用户信息,否则返回错误信息,错误码包含:

错误码 错误信息
INVALID_REQUEST 请求参数错误
INVALID_TICKET ticket 验证失败
INVALID_SERVICE ticket 验证成功,但是 service 不在白名单中
INTERNAL_ERROR 认证服务内部错误

你可能感兴趣的:(CAS5,java)