5.8.2. SPNEGO を使用したデスクトップ SSO
SPNEGO を使用するデスクトップ SSO を設定するには、以下を設定します。
- セキュリティードメイン
- システムプロパティー
- Web アプリケーション
手順5.5 SPNEGO を使用するデスクトップ SSO の設定
セキュリティードメインの設定
セキュリティードメインを設定して、サーバーのアイデンティティーを表し、Web アプリケーションをセキュアにします。例5.15 セキュリティードメインの設定
<security-domains> <security-domain name="host" cache-type="default"> <authentication> <login-module code="Kerberos" flag="required"> <module-option name="storeKey" value="true"/> <module-option name="useKeyTab" value="true"/> <module-option name="principal" value="host/testserver@MY_REALM"/> <module-option name="keyTab" value="/home/username/service.keytab"/> <module-option name="doNotPrompt" value="true"/> <module-option name="debug" value="false"/> </login-module> </authentication> </security-domain> <security-domain name="SPNEGO" cache-type="default"> <authentication> <login-module code="SPNEGO" flag="requisite"> <module-option name="password-stacking" value="useFirstPass"/> <module-option name="serverSecurityDomain" value="host"/> </login-module> <!-- Login Module For Roles Search --> </security-domain>
システムプロパティーの設定
必要な場合は、システムプロパティーをドメインモデルに設定できます。例5.16 システムプロパティーの設定
<system-properties> <property name="java.security.krb5.kdc" value="mykdc.mydomain"/> <property name="java.security.krb5.realm" value="MY_REALM"/> </system-properties>
Web アプリケーションの設定
オーセンティケーターは上書きできませんが、NegotiationAuthenticator
をバルブとして jboss-web.xml 記述子に追加し、Web アプリケーションを設定できます。注記
セキュア化するリソースの決定に使用されるため、security-constraint
およびlogin-config
が web.xml ファイルに定義されている必要があります。しかし、選択されたauth-method
はこのオーセンティケーターによって上書きされます。例5.17 Web アプリケーションの設定
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd"> <jboss-web> <security-domain>java:/jaas/SPNEGO</security-domain> <valve> <class-name>org.jboss.security.negotiation.NegotiationAuthenticator</class-name> </valve> </jboss-web>
また、JBoss Negotiation クラスの場所を特定できるようにするため、Web アプリケーションはMETA-INF/MANIFEST.MF
に定義された依存関係を必要とします。例5.18
META-INF/MANIFEST.MF
での依存関係の定義Manifest-Version: 1.0 Build-Jdk: 1.6.0_24 Dependencies: org.jboss.security.negotiation