JASIG CAS协议介绍 (4)- /proxyValidate 和 /proxy

3.6. /proxyValidate [CAS 2.0]

/proxyValidate必须执行与/serviceValidate相同的验证任务,并且还要验证PT/proxyValidate必须能够验证STPT

3.6.1. parameters

/proxyValidate/serviceValidate所使用的参数完全相同,请参见2.5.1

3.6.2. response

/proxyValidate能够返回一个格式化的CAS服务响应XML,此XML的结构参见附录一。

On ticket validation success:

<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>

    <cas:authenticationSuccess>

        <cas:user>username</cas:user>

        <cas:proxyGrantingTicket>

PGTIOU-84678-8a9d...

</cas:proxyGrantingTicket>

        <cas:proxies>

            <cas:proxy>https://proxy2/pgtUrl</cas:proxy>

            <cas:proxy>https://proxy1/pgtUrl</cas:proxy>

        </cas:proxies>

    </cas:authenticationSuccess>

</cas:serviceResponse>

请注意,当认证已开始通过多重代理进行时,一组代理的顺序要反映在<cas:proxies>块中。最近访问代理必须首先出现在代理链上,然后按照代理的新旧顺序依次添加到代理链上。在上面的例子中,服务确定的第一个访问代理的网址是:https//proxy1/pgtUrl,并且服务的代理认证是依靠第二个URL-https//proxy2/pgtUrl辨别出来的。

注:代理链<cas:proxies>里面放的是一组代理,是指获取PT的路径。它的顺序代表着同被代理者的远近关系,同被代理者更近的代理者出现在更前面。

On ticket validation failure:

<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>

    <cas:authenticationFailure code="INVALID_TICKET">

        ticket PT-1856376-1HMgO86Z2ZKeByc5XdYD not recognized

    </cas:authenticationFailure>

</cas:serviceResponse>

3.6.3 URL examples of /proxyValidate

/proxyValidate/serviceValidate一样接受相同的参数。参阅第2.5.5使用范例。

3.7. /proxy [CAS 2.0]

/proxy提供到服务的PT,并且这个服务是获取了PGT的,并且可以为后端服务做代理认证。

3.7.1. parameters

下面的HTTP请求的参数是/proxy必须指定的。他们都区分大小写。

  pgt [需要] 代理服务在验证STPT后所获取的PGT

  targetService [需要] -后端服务的标识符。请注意,并非所有的后端服务都是web服务,因此这一标识符不会永远是URL。但是不管怎样,这里指定的服务标识符必须匹配访问/proxyValidate时的“service”参数。

3.7.2. response

/proxy能够返回一个格式化的CAS服务响应XML,此XML的结构参见附录一。

On request success:

<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>

    <cas:proxySuccess>

        <cas:proxyTicket>

PT-1856392-b98xZrQN4p90ASrw96c8

</cas:proxyTicket>

    </cas:proxySuccess>

</cas:serviceResponse>

On request failure:

<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>

    <cas:proxyFailure code="INVALID_REQUEST">

        'pgt' and 'targetService' parameters are both required

    </cas:proxyFailure>

</cas:serviceResponse>

 

3.7.3. error codes

下面的值可能被用来作为验证失败时“code”属性的值。以下是最低限度的错误代码,所有CAS服务器必须实现的,当然还包括其他一些实现。

  INVALID_REQUEST -请求参数不全。上面讲到至少必须有“service”和“ticket”两个参数。

  BAD_PGT -提供的PGT无效。

INTERNAL_ERROR ticket验证时发生内部错误。

对于所有的错误代码,CAS推荐为<cas:authenticationFailure>提供更详细的描述信息。

 

3.7.4. URL example of /proxy

Simple proxy request:

https://server/cas/proxy?targetService=http%3A%2F%2Fwww.service.com&pgt=PGT-490649-W81Y9Sa2vTM7hda7xNTkezTbVge4CUsybAr...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值