Yale CAS + .NetClient実現SSO(4)
9156 ワード
第四部分:データベースベースの認証を実現する
1.Microsoft JDBC Driver for SQL Serverをダウンロードします.
(1)Microsoft JDBC Driver 4.0 for SQL Serverダウンロードアドレス:http://www.microsoft.com/zh-cn/download/details.aspx?id=11774
ウェブサイトは2種類のフォーマットのファイルを提供してダウンロードして、1つは自己解凍のEXEフォーマットのファイルで、もう1つはtar.ですgz形式の圧縮ファイル.2種類のフォーマットは1つを選んでダウンロードすることができて、解凍を経て、2つのJARフォーマットのファイルを得ることができます:sqljdbc.JArとsqljdbc 4.jar.
(2)本人がSQL Server 2012を使用しているため、「sqljdbc 4.jar」を「%TOMCAT_HOME%webappscasWEB-INFlib」フォルダにコピーする必要がある.
(3)このシリーズの第2部では、CASサイトから「cas-server-3.5.1-release.zip」をダウンロードして解凍することについて言及しています.解凍したファイルの下に「modulescas-server-support-jdbc-3.5.1.jar」を見つけ、「%TOMCAT_HOME%webappscasWEB-INFlib」フォルダに一括コピーします.
2.認証用データベースの作成
(1)SQL Server Management Studioを起動し、データベース「UsersDB」を新規作成し、表「Users」を作成します.
(2)表にいくつかのテストデータを入力します.
3.CASを構成してデータベースベースの認証を実現する
(1)管理者としてテキスト編集ツールを起動し、「%TOMCAT_HOME%webappscasWEB-INFdeployerConfigContext.xml」を開きます.次のコードを見つけます.
<bean id="authenticationManager"
class="org.jasig.cas.authentication.AuthenticationManagerImpl">
(2)このセグメントコードの前にSQL Server JDBCデータソース構成情報を挿入する:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
<property name="url" value="jdbc:sqlserver://192.168.0.123:1433;databaseName=UsersDB"></property>
<property name="username" value="sa"></property>
<property name="password" value="YourPassword"></property>
</bean>
次の図に示します.
(3)次の構成情報が見つかりました.
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
この構成情報は、S i m p l e T e s t U s e r n m e P a s s s w o r d AuthenticationHandlerを使用してユーザーを検証します.つまり、デフォルトのユーザー名とパスワードが同じであれば検証に合格し、ユーザー名のパスワードが異なるとログインに失敗します.データベース検証ベースの構成情報に置き換える必要があります.
まず、上記の構成情報をコメントし、その下に次の構成情報を挿入します.
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="sql" value="select Password from users where username=?" />
<property name="dataSource" ref="dataSource" />
</bean>
図に示すように、
説明:SQL Server 2012をインストールしている場合、デフォルトのTCP/IPアクセスプロトコルは開かないので、IPアドレスでSQL Serverデータにアクセスできません.解決策はSQL Server構成マネージャを起動し、TCP/IPを有効にします.有効になったら、SQL Serverサービスを再起動して設定を有効にすることです.図に示すように、
(4)「%TOMCAT_HOME%webappscasWEB-INFdeployerConfigContext.xml」への変更を保存します.
(5)Tomcatサービスを再起動する.
4.データベースベースの認証のテスト
クライアントから前にデバッグしたWebFormプログラム(参考:Yale CAS + .NetClient実現SSO(3))を実行し、ユーザー名「admin」、パスワード「123」を入力し、ログインに成功したかどうかをテストします.すべての構成が正常であれば、プログラムのログイン後のインタフェースは下図のように見えます.
5.ログイン体験のさらなる改善
実際の使用中に、ユーザーはユーザー名、パスワードなど、さまざまな方法でログインしたい場合があります.メールボックス、パスワード;携帯電話の番号、パスワード、どのように多種の方式の登録の問題を解決しますか?次のセクションでは、このような問題をどのように解決するかについて深く議論します.
続行...