CAS的.NET客户端的配置示例

一、CAS客户端支持.NET部署,而且支持NuGet直接部署到项目,具体特性如下:

1.支持CAS1.0、CAS2.0和SAML1.1协议

2.支持CAS单点登录

3.支持Microsoft ASP.Net 窗体身份认证框架的应用平台整合

二、ASP.Net的认证方式及CAS客户端的ASP.NET认证原理

ASP.Net身份验证有三种方式,一是基于windows验证,二是基于Form验证,三是Passport验证。

第一种方式下,windows操作系统和IIS服务器直接处理身份验证,只要客户机加入了服务器域,网站开发、部署和运维均无需考虑具体验证过程;

第三种方式下,是passport方式验证,passport本身就是一种齐备的统一认证方式,可以完全替代CAS,下面只考虑第二种。

第二种身份验证方式是我们这次讨论的范围,这种方式的原理是CAS客户端通过ASP.Net自身的Form认证实现的,

具体是用httpModel拦截检查客户端票据(ticket),达到对功能页面的控制。

三、ASP.Net项目配置步骤

1.引用dll:DotNetCasClient.dll

2.属性配置

A.casServerLoginUrl:身份认证时redirect的认证地址,浏览器所在机器要配置cas服务器的域名。

B.serverName:认证通过后redirect到的需要访问的应用的地址。

C.casServerUrlPrefix:CAS服务的访问地址。用来定义cas服务的 /serviceValidate接口,使用的URL就是${casServerUrlPrefix}serviceValidate。

注意此处的配置需和证书中的服务器域名保持一致,并且在Web应用的服务器上配置cas服务的访问域名。

D.ticketValidatorName:指定CAS Ticket使用的协议。

3.configuration的其他可选属性配置

A.Gateway:

B.renew:

C.singleSignOut:

D.ticketTimeTolerance:

E.notAuthorizedUrl:

F.serviceTicketManager:

G.proxyTicketManager:

H.gatewayStatusCookieName:

I.cookiesRequiredUrl:

J.gatewayParameterName:

4.配置示例

casServerUrlPrefix="https://cas.XXXXXX.com/cas" serverName="cas.XXXXXX.com"

notAuthorizedUrl="~/NotAuthorized.aspx"

cookiesRequiredUrl="~/CookiesRequred.aspx"

redirectAfterValidation="true"

gateway="false"

renew="false"

singleSignOut="true"

ticketTimeTolerance="5000"

ticketValidatorName="CAS20"

proxyTicketManager="CacheProxyTicketManager"

serviceTicketManager="CacheProxyTicketManager"

gatewayStatusCookieName="casGatewayStatus" />

相应地ASP.NET的配置如下:

loginUrl="https://server.XXXXX.com/cas/login"

timeOut="30"

defaultUrl="~/Default.aspx"

cookieless="UseCookies"

slidingExpiration="true"

path="/ApplicationName/" />

authentication>

......

并且配置HTTPModel

type="DotNetCasClient.cas.Authentication.Model,DotNetCasClient">

三、问题

httpModel验证ticket失败时会锲而不舍地无限验证下去:请求系统页面--》httpModel重定向--》

cas登录页面--》登录后的系统页面--》httpModel验证ticket失败--》重定向登录cas

一般地,这种问题是由系统session失效导致的,因此修改web.config文件即可

代码实现时,要注意在登出时,要确保Form和Cas都登出,切记清除session,让cookie过期,

清除CAS服务端的验证ticket。

你可能感兴趣的:(开发环境构筑)