spnego 配置心得

對於spnego,似乎國內沒有什麼比較好的配置文檔,今天工作遇上,也解決了所以我就寫下我的心得

參考源文檔,http://spnego.sourceforge.net/spnego_tomcat.html

以下是我的spnego的配置教程的理解

現在假設域控服務器以及 請求NTLM的tomcat應用服務器的一些參數。
1.域控服務器,設置域名爲test.com,域控服務器的IP地址爲 192.168.1.22,
2.請求NTLM的tomcat應用服務器,在域控中的機器名(Computer)爲bk-srv,
3.請求NTLM的tomcat應用服務器,在域控中的DSN重定向後的路徑名爲boke,
4.準備好的域控內的請求用戶爲xxxxxx,密碼爲******
接下來開始配置:
第一.spnego,大家可以去官網:http://spnego.sourceforge.net 去下spnego的jar包,放置在tomcat下
第二. 配置login.conf.這個直接照官網陪就好
第三. 配置krb5.conf,
[libdefaults]的參數中
default_realm = TEST.COM    //注意必須大寫域名
剩下的照搬
default_tkt_enctypes = aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc
    default_tgs_enctypes = aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc
  permitted_enctypes   = aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc
    [realms]參數
因爲是指明瞭TEST.COM,所以
TEST.COM =   {
        kdc = 192.168.1.22 // kdc值爲域控服務器的ip,包括端口,如果指定端口爲 88,那麼就是  192.168.1.22:88
//注意kdc在官網上說可以多個,我猜也許指可以指定多個域控服務器  
default_domain = TEST.COM
    }   
    
          [domain_realm]參數
//一般沒有太多指向地址就是
.TEST.COM =TEST.COM  //這個說明可以參考 IBM的spnego的使用說明 http://publib.boulder.ibm.com/tividd/td/ITAME/SC32-1365-00/zh_CN/HTML/am51_webservers_guide112.htm
 
    第四,配置web.xml
<filter>
<filter-name>SpnegoHttpFilter</filter-name>
<filter-class>net.sourceforge.spnego.SpnegoHttpFilter</filter-class>
<init-param>
<param-name>spnego.allow.localhost</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>spnego.login.client.module</param-name>
<param-value>spnego-client</param-value>
</init-param>
<init-param>
<param-name>spnego.krb5.conf</param-name>
<param-value>krb5.conf</param-value>  //推薦使用krb5.conf的絕對地址
</init-param>
<init-param>
<param-name>spnego.login.conf</param-name>
<param-value>login.conf</param-value> //推薦使用login.conf的絕對地址
</init-param>
<init-param>
<param-name>spnego.preauth.username</param-name>
<param-value>xxxxxx</param-value>
</init-param>
<init-param>
<param-name>spnego.preauth.password</param-name>
<param-value>******</param-value>
</init-param>
<init-param>
<param-name>spnego.login.server.module</param-name>
<param-value>spnego-server</param-value>
</init-param>
<init-param>
<param-name>spnego.allow.basic</param-name>
<param-value>true</param-value>   //true表示當前用戶無法域登入成功時,提供基礎的輸入驗證
</init-param>
<init-param>
<param-name>spnego.allow.unsecure.basic</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>spnego.prompt.ntlm</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>spnego.logger.level</param-name>
<param-value>1</param-value>
</init-param>
    </filter>
    <filter-mapping>
        <filter-name>SpnegoHttpFilter</filter-name>
        <url-pattern>*.jsp</url-pattern>
    </filter-mapping>
第五,域控上SPN的註冊,這個是重點中的重點!
* 在域控服務器上,以管理員角色打開cmd,使用setspn進行spn註冊
* 由於請求NTLM的tomcat應用服務器 bk-srv,被DSN重定向爲boke,所以在spn註冊時,必須將原有的機器名和重定向的http訪問路徑一起註冊,缺一不可
* cmd中輸入如下代碼:
--------------------------------------------------------------------
setspn -A Http/boke tester
setspn -A Http/boke.test.com tester
setspn -A Http/bk-oasrv tester
setspn -A Http/bk-oasrv.test.com tester
--------------------------------------------------------------------

* 然後輸入 setspn -L tester 驗證setspn的註冊信息,顯示的結果應該爲:
*******************************************************************************
Registered ServicePrincipalNames for CN=tester,OU=test,DC=test,DC=com:
Http/boke 
Http/boke.test.com 
Http/bk-oasrv 
Http/bk-oasrv.test.com 
*******************************************************************************
* 註冊
以上完成配置工作 -End


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章