大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Tomca教程
Tomcat Manager
Tomcat Realm 配置
Tomcat 安全管理
Tomcat JNDI 資源
Tomcat JDBC 數據源
Tomcat 類加載機制
Tomcat JSPs
Tomcat SSL/TLS配置
Tomcat SSI
Tomcat CGI
Tomcat 代理支持
Tomcat MBean 描述符
Tomcat 默認 Servlet
Tomcat 集群
Tomcat 連接器
Tomcat監控與管理
Tomcat 日志機制
Tomcat 基于 APR 的原生庫
Tomcat 虛擬主機
Tomcat 高級 IO 機制
Tomcat 附加組件
Tomcat 安全性注意事項
Tomcat Windows 服務
Tomcat Windows 認證
Tomcat 的 JDBC 連接池
Tomcat WebSocket 支持
Tomcat 重寫機制

Tomcat Windows 認證

Tomcat Windows 認證概述

集成 Windows 驗證(Integrated Windows authentication)往往用于局域網環境中,因為需要使用服務器執行驗證,被驗證的用戶也必須處于同一域內。為了能夠自動驗證用戶,用戶所用的客戶端機器也必須處于同一域內。

可以利用以下幾種方案來實現 Tomcat 下的集成 Windows 驗證:

  • 內建 Tomcat 支持。
  • 使用第三方庫,比如 Waffle。
  • 使用支持 Windows 驗證的反向代理來執行驗證步驟(IIS 或 httpd)。

下面將分別詳細講述這些方案。

內建 Tomcat 支持

需要仔細配置 Kerberos 身份驗證服務(集成 Windows 驗證的基礎)。如果嚴格按照下列步驟去做,配置就會生效。這些配置的靈活度很小,所以必須嚴格按照下列方式去做。從測試到現在,已知的規則是:

  • 用于訪問 Tomcat 服務器的主機名必須匹配 服務主體名稱(Service Principal Name,SPN)中的主機名,否則驗證就會失敗。驗證失敗時,校驗和錯誤會報告給調試日志。
  • 客戶端必須明確服務器位于本地可信局域網。
  • SPN 必須是 HTTP/<主機名> 的形式,而且必須在所有用到它的位置處保持統一。
  • 端口號不能放在 SPN 中。
  • 不能將多個 SPN 映射給一個域用戶。
  • Tomcat 必須以 SPN 關聯的域賬戶或域管理員的身份運行,但不建議采用域管理員的身份運行 Tomcat。
  • 在 ktpass 命令中,域名(DEV.LOCAL)不區分大小寫,在jaas.conf 中也是這樣。
  • 使用 ktpass 命令時,不能指定域。

在配置 Windows 驗證的 Tomcat 內建支持時,共涉及到4個組件:域控制器、托管 Tomcat 的服務器、需要使用 Windows 驗證的 Web 應用,以及客戶端機器。下面將講解每個組件所需的配置。

下面配置范例中用到的 3 個機器名稱為:win-dc01.dev.local (域控制器)、win-tc01.dev.local(Tomcat 實例)、win-pc01.dev.local (客戶端)。它們都是DEV.LOCAL 域成員。

注意:為了在下面的步驟中使用密碼,不得不放寬了域密碼規則,對于生產環境,可不建議這么做。

1. 域控制器

下列步驟假設前提是:經過配置,服務器可以做為域控制器來使用。關于如何配置 Windows 服務器配置成域控制器,不在本章討論范圍之內。
配置域控制器,使 Tomcat 支持 Windows 驗證的步驟為:

  • 創建一個域用戶,它將映射到 Tomcat 服務器所用的服務名稱上。在本文檔中,用戶為 tc01,密碼為 tc01pass。
  • 將 SPN 映射到用戶賬戶上。SPN 的形式為:/:/。本文檔所用的 SPN 為 HTTP/win-tc01.dev.local。要想將用戶映射到 SPN 上,運行以下命令:
  • setspn -A HTTP/win-tc01.dev.local tc01
  • 生成 keytab 文件,Tomcat 服務器會用該文件將自身注冊到域控制器上。該文件包含用于服務提供者賬戶的 Tomcat 私鑰,所以也應該受到保護。運行以下命令生成該文件(全部命令都應寫在同一行中):
  • ktpass /out c:\tomcat.keytab /mapuser tc01@DEV.LOCAL /princ HTTP/win-tc01.dev.local@DEV.LOCAL /pass tc01pass /kvno 0
  • 創建客戶端所用的域用戶。本文檔中,域用戶為 test,密碼為 testpass。

以上步驟測試環境為:運行 Windows Server 2008 R2 64 位標準版的域控制器。對于域功能級別和林(forest)功能級別,使用 Windows Server 2003 的功能級別。

2. Tomcat 實例(Windows 服務器)

下列步驟假定前提為:已經安裝并配置好了 Tomcat 和 Java 6 JDK/JRE,并以 tc01@DEV.LOCAL 用戶來運行 Tomcat。配置用于 Windows 驗證的 Tomcat 實例的步驟如下:

  • 將域控制器所創建的 tomcat.keytab 文件復制到 $CATALINA_BASE/conf/tomcat.keytab。

創建 kerberos 配置文件 $CATALINA_BASE/conf/krb5.ini。本文檔使用的文件包含以下內容

[libdefaults]
    default_realm = DEV.LOCAL
    default_keytab_name = FILE:c:\apache-tomcat-8.0.x\conf\tomcat.keytab
    default_tkt_enctypes = rc4-hmac,aes256-cts-hmac-sha1-96,aes128-cts- hmac-sha1-96
    default_tgs_enctypes = rc4-hmac,aes256-cts-hmac-sha1-96,aes128-cts- hmac-sha1-96
    forwardable=true

    [realms]
    DEV.LOCAL = {
         kdc = win-dc01.dev.local:88
    }

    [domain_realm]
    dev.local= DEV.LOCAL
    .dev.local= DEV.LOCAL
該文件的位置可以通過 `java.security.krb5.conf` 系統屬性來修改。
  • 創建 JAAS 邏輯配置文件 $CATALINA_BASE/conf/jaas.conf。本文檔使用的文件包含以下內容:
 com.sun.security.jgss.krb5.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    doNotPrompt=true
    principal="HTTP/win-tc01.dev.local@DEV.LOCAL"
    useKeyTab=true
    keyTab="c:/apache-tomcat-8.0.x/conf/tomcat.keytab"
    storeKey=true;
};

    com.sun.security.jgss.krb5.accept {
        com.sun.security.auth.module.Krb5LoginModule required
        doNotPrompt=true
        principal="HTTP/win-tc01.dev.local@DEV.LOCAL"
     useKeyTab=true
        keyTab="c:/apache-tomcat-8.0.x/conf/tomcat.keytab"
     storeKey=true;
    };

本文件位置可以通過 java.security.auth.login.config 系統屬性來修改。所用的 LoginModule 是 JVM 所專有的,從而能保證所指定的 LoginModule 匹配所用的 JVM。登錄配置名稱必須與驗證 valve 所用值相匹配。

SPNEGO 驗證器適用于任何 Realm,但如果和 JNDI Realm 一起使用的話,JNDI Realm 默認將使用用戶的委托憑證(delegated credentials)連接 Active 目錄。

上述步驟測試環境為:Tomcat 服務器運行于 Windows Server 2008 R2 64 位標準版上,帶有 Oracle 1.6.0_24 64 位 JDK。

3. Tomcat 實例(Linux 服務器)

測試環境如下:

  • Java 1.7.0, update 45, 64-bit
  • Ubuntu Server 12.04.3 LTS 64-bit
  • Tomcat 8.0.x (r1546570)

雖然建議使用最新的穩定版本,但其實所有 Tomcat 8 的版本都能使用。

配置與 Windows 基本相同,但存在以下一些差別:

  • Linux 服務器不必位于 Windows 域。
  • 應該更新 krb5.ini 和 jass.conf 中的 keytab 文件路徑,以便適應使用 Linux 文件路徑風格(比如:/usr/local/tomcat/...)的 Linux 服務器。

4. Web 應用

配置 Web 應用,以便使用 web.xml 中的 Tomcat 專有驗證方法 SPNEGO(而不是 BASIC 等)。和其他的驗證器一樣,通過顯式地配置驗證 valve并且在 Valve 中設置屬性來自定義行為。

5. 客戶端

配置客戶端,以便使用 Kerberos 認證。對于 IE 瀏覽器來說,這就需要 Tomcat 實例位于“本地局域網”安全域中,并且需要在“工具 > Internet 選項 > 高級”中啟用集成 Windows 認證。注意:客戶端和 Tomcat 實例不能使用同一臺機器,因為 IE 會使用未經證實的 NTLM 協議。

6. 參考資料

正確配置 Kerberos 驗證是有一定技巧性的。下列參考資料有一定幫助。一般來說,Tomcat 用戶郵件列表中的建議也是可取的。

  • IIS 與 Kerberos
  • SourceForge 的 SPNEGO 項目
  • Oracle Java GSS-API 教程(Java 7)
  • Oracle Java GSS-API 教程 - 疑難解答(Java 7)
  • 用于 Windows 驗證的Geronimo 配置
  • Kerberos 交換中的加密選擇
  • 受支持的 Kerberos Cipher 套件

第三方庫

1. Waffle

關于該解決方案的完整詳情,可瀏覽 Waffle 網站。其關鍵特性為:

  • Drop-in
  • 配置簡單(無需 JAAS 或 keytab 配置)
  • 使用原生庫

2. Spring Security - Kerberos 擴展

關于該解決方案的完整詳情,可瀏覽 Kerberos 擴展網站。其關鍵特性為:

  • xx
  • 需要生成 Kerberos keytab 文件
  • 純粹 Java 解決方案

3. SourceForge 的 SPNEGO 項目

關于該解決方案的完整詳情,可瀏覽 該項目網站。其關鍵特性為:

  • 使用 Kerberos。
  • 純 Java 解決方案。

4. Jespa

關于該解決方案的完整詳情,可瀏覽 該項目網站。其關鍵特性為:

  • 純 Java 解決方案
  • 高級 Active 目錄集成

反向代理

1. Microsoft IIS

通過配置 IIS 提供 Windows 驗證的步驟如下:

  • 將 IIS 配置成 Tomcat 的反向代理(參看 IIS Web 服務器文檔)。
  • 配置 IIS 使用 Windows 驗證。
  • 將 AJP 連接器上的 tomcatAuthentication 屬性設為 false,從而配置 Tomcat 使用來自 IIS 的驗證用戶信息。另一種方法是,將 tomcatAuthorization 設為 true,從而在Tomcat 執行授權時,允許 IIS 進行驗證。

2. Apache httpd

Apache httpd 默認并不支持 Windows 驗證,但可以使用很多第三方模塊來實現:

  • 針對 Windows 平臺的 mod_auth_sspi
  • 針對非 Windows 平臺的 mod_auth_ntlm_winbind。目前已知適用于 32 位平臺上的 httpd 2.0.x。有些用戶已經報告了 httpd 2.2.x 構建與 64 位Linux 構建所存在的穩定性問題。

采用以下步驟配置 httpd,以便提供 Windows 驗證:

  • 將 httpd 配置成 Tomcat 的反向代理(參看 Apache httpd Web 服務器文檔)。
  • 配置 httpd 使用 Windows 驗證。
  • 將 AJP 連接器上的 tomcatAuthentication 屬性設為 false,從而配置 Tomcat 使用來自 httpd 的驗證用戶信息。
全部教程
主站蜘蛛池模板: 国产尤物福利视频一区二区 | 在线看日本吃奶孕交 | 黄色在线免费观看 | 91精品中文字幕 | 成年女人免费视频 | 国产情侣久久精品 | 国产精品u任我爽爆在线播放 | 中文字幕一区在线 | 伊人一道本| 久久精品视频国产 | 奇米影视666 | 伊人99在线 | 日本人一级大毛片 | 国产视频一区二 | 成人国产亚洲欧美成人综合网 | 综合欧美日韩一区二区三区 | 国产伦精品一区二区三区免 | 精品一久久香蕉国产线看播放 | 久热免费| 亚洲视频在线观看 | 午夜视频在线网站 | 国产欧美综合在线一区二区三区 | 99热在线精品播放 | 国产成人久久精品区一区二区 | 人人爱天天做夜夜爽毛片 | 伊人久久99亚洲精品久久频 | 欧美一区二区影院 | 99热久久这里只有精品 | 日本xxxxxbbbbb精品 | 国产视频一区在线观看 | 国产99在线播放 | 中文字幕精品久久 | 久久久久国产精品免费看 | 久久国产经典视频 | 日本激情一区二区三区 | 日本免费毛片在线高清看 | 亚洲午夜一级毛片 | 尹人香蕉久久99天天 | 亚洲欧美久久 | 免费亚洲成人 | 91精选视频 |