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

Source: https://habr.com/ru/post/J130289/


All Articles