Jasig CAS-認証サーバー

Webアプリケーションを開発している場合は、おそらくシングルサインオンを実装するタスクに直面しています この短い記事では、 Jasigの完全なソリューションについて簡単に説明します。



簡単な説明



Jasig CAS (中央認証サービス)は、javaで書かれたWebアプリケーションです。 使用を開始するには、ほとんど何もする必要はありません。 ダウンロード、構成、アセンブル、デプロイする必要があります。 クライアントをセットアップします(シングルサインオンを行うサイト)。



作業スキーム



CASの仕組みは、次の図から理解できます。



画像



YandexとGoogleでも同様のスキームが使用されています。



手順を考慮してください。





設定方法



独自の認証方法



最初に、ユーザー名とパスワードを検証するためのロジックを定義する必要があります。 これを行うには、クラスorg.jasig.cas.authentication.handler.support.AbstractUsernamePasswordAuthenticationHandlerをオーバーライドする必要があります



package mypack; /** * * @author http://habrahabr.ru/users/nucleotide/ */ public class MyAuthenticationHandler extends AbstractUsernamePasswordAuthenticationHandler { protected final boolean authenticateUsernamePasswordInternal( // true,    final UsernamePasswordCredentials credentials) throws AuthenticationException { return credentials.getUsername().equals(credentials.getPassword()); } }
      
      







その後、CASがMyAuthenticationHandlerを使用する必要があることを認識できるように、Springコンテキストの構成を変更する必要があります。

Springについてあまり知らない場合は、ハブでその上で何かを探すwww.springsource.orgでドキュメントを読むことができます。

CASでは、必要になる可能性のある主要なSpring構成はdeployerConfigContext.xmlファイルにあります。 クラスを追加します。



 . . . . . <property name="authenticationHandlers"> <list> <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" /> <bean class="mypack.MyAuthenticationHandler"> </bean> </list> </property> . . . . .
      
      







ログインに必要なすべてのもの(たとえば、dataSource)も、Springのコンテキストに挿入できます。



 . . . . . <property name="authenticationHandlers"> <list> <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" /> <bean class="mypack.MyAuthenticationHandler"> <property name="dataSource" ref="dataSource"/> </bean> </list> </property> . . . . .
      
      





展開



デプロイするには、jvmがインストールされたサーバーと何らかのDBMSが必要です。 許可にDBMSを使用しない場合でも、CASはそれを使用してサービステーブルを保存します。

これらのテーブルには、このサーバーを介した許可が可能なアドレスのリストが格納されます。

たとえば、CASを介してexample.comにログインする必要があるが、リストにない場合、認証は失敗します(思い出してください:ログインが発生したサイトのアドレスがパラメーターとして渡されます)。 リストをまったく使用できないため、任意のアドレスでログインできます。



クライアントをセットアップする方法



Jasicには、CAS(java、.net、およびphp用)を操作するための既製のライブラリが既にいくつかあります。 Javaの場合、これらは構成する必要があるだけの既成のHTTPフィルターです(これを行う方法については、 https//wiki.jasig.org/display/CASC/CAS+Client+for+Java+3.1をお読みください ) 。

または、org.jasig.cas.client.util.AbstractCasFilterから継承して独自に作成します。






それ以外はすべて、ニーズに合わせた改良とカスタマイズです。 私自身の経験から、CASの展開と改良は非常に複雑で長いプロセスではないと言えます。 もちろん、キャプチャと統計、デザインを添付できます。



参照:

ダウンロードページで入手できます

写真はここから撮影されます。

Jasig: http ://www.jasig.org/cas

CASがすでに使用されているポータルのリスト: http : //www.jasig.org/cas/deployments

ライセンス: http : //www.jasig.org/cas/license



All Articles