Yale CAS + .net Client 實現 SSO(4)


第四部分:實現基於數據庫的身份驗證

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

網站提供了兩種格式文件供下載,一種是自解壓的EXE格式文件,還有一種是tar.gz格式的壓縮文件。兩種格式選其一下載即可,經過解壓縮,可以得到兩個JAR格式文件:sqljdbc.jar與sqljdbc4.jar。

(2)由於本人使用的是SQL Server 2012,因此需將“sqljdbc4.jar”拷貝至“%TOMCAT_HOME%\webapps\cas\WEB-INF\lib”文件夾。

(3)在本系列第二部分曾經提及從CAS網站下載“cas-server-3.5.1-release.zip”並解壓縮。在解壓縮的文件下中找到“modules\cas-server-support-jdbc-3.5.1.jar”,將其一並拷貝至“%TOMCAT_HOME%\webapps\cas\WEB-INF\lib”文件夾。

 

2.創建用於身份驗證的數據庫

(1)啟動SQL Server Management Studio,新建一數據庫“UsersDB”,並在其中建立表“Users”,字段如下:

CAS004001

(2)在表中輸入若干測試數據:

CAS004002

 

3.配置CAS實現基於數據庫的身份驗證

(1)以管理員身份啟動文本編輯工具,打開“%TOMCAT_HOME%\webapps\cas\WEB-INF\deployerConfigContext.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>

如下圖所示:

CAS004003

(3)找到如下配置信息:

<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />

該配置信息使用SimpleTestUsernamePasswordAuthenticationHandler驗證用戶,即默認用戶名和密碼相同則驗證通過,用戶名密碼不同則登錄失敗。我們需要將其替換成基於數據庫驗證的配置信息。

首先將上面的配置信息注釋掉,並在其下面插入如下配置信息:

<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
    <property name="sql" value="select Password from users where username=?" />
    <property name="dataSource" ref="dataSource" />
</bean>

如圖所示:

CAS004004

說明:如果你安裝的是SQL Server 2012,那么默認TCP/IP訪問協議不會打開,因此無法通過IP地址的方式訪問SQL Server數據,解決辦法就是啟動SQL Server配置管理器,並在里面啟用TCP/IP,啟用后記得重新啟動SQL Server服務以使設置生效。如圖所示:

CAS004005

(4)保存對“%TOMCAT_HOME%\webapps\cas\WEB-INF\deployerConfigContext.xml”所做的修改。

(5)重新啟動 Tomcat 服務。

 

4.測試基於數據庫的身份驗證

從客戶端運行前面調試好的WebForm程序(請參考:Yale CAS + .net Client 實現 SSO(3)),輸入用戶名“admin”、密碼“123”,測試是否登錄成功。如果一切配置正常,可以看到程序登錄后的界面如下圖:

CAS004006

 

5.進一步改善登錄體驗

在實際使用過程中,用戶可能希望通過多種方式登錄:用戶名、密碼;郵箱、密碼;手機號、密碼,如何解決多種方式登錄的問題呢?在隨后的部分我們將深入討論如何解決此類問題。

 

待續...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM