Secure Global Desktop 4.40 管理者ガイド
> ユーザーと認証
> Web サーバー認証
Web サーバー認証 (技術的には正確な用語は HTTP 認証) は、サードパーティー認証の最も一般的な形式です。Web サーバー認証では、Web サーバーが認証を実行し、SGD がユーザーの識別情報とユーザープロファイルを判定します。
Web サーバー認証の利点は、REMOTE_USER
環境変数に設定しさえすれば、任意の Web サーバー認証プラグインを使用できることです。使用する認証プラグインが異なる変数を設定する場合、それをサポートするように SGD を設定できます。
Web サーバー認証とシステム認証は一緒に使用できます。少なくとも 1 つのシステム認証機構を、フォールバック用に使用可能にしておくのが最善です。SGD がユーザーのユーザープロファイルを検出できない場合、システム認証機構を使ってユーザーが認証を実行できるように、SGD の標準ログインページが表示されます。
このページで説明する内容は、次のとおりです。
Web サーバーの認証は、以下のように機能します。
http://server/sgd
という URL です。保護された URL に対する要求があるたびに証明書を送信する必要があるため、Web ブラウザはユーザーの証明書をキャッシュします。証明書は、ブラウザから自動的に送信されます。証明書のキャッシュ方法には、次の種類があります。
Web サーバーは、ユーザーの認証を実行したあとで、REMOTE_USER
環境変数を設定します。この変数には、認証済みのユーザーのユーザー名が含まれます。SGD は REMOTE_USER
変数の値を受け取り、その値を使用してユーザーの識別情報とユーザープロファイルを検索します。SGD は、ユーザーの識別情報とユーザープロファイルを確立するための 4 種類の検索方法をサポートします。詳細は、「サードパーティー認証を参照してください。
SGD で Web サーバー認証を実行する場合のセキュリティー上の主な考慮事項を、以下に示します。
Web サーバー認証では、Web ブラウザがユーザーの証明書をキャッシュします。これは、事実上、Web ブラウザが SGD に対する認証をキャッシュすることと同義です。キャッシュされた資格情報を他人に使用される危険性を最小限に抑えるため、ユーザーは次の操作を実行する必要があります。
セキュア (HTTPS) Web サーバーを使って、ユーザー証明書がプレーンテキストで送信されるのを防ぎます。
SGD Webtop および SGD サーバーが信頼されているユーザーのユーザー名とパスワードという秘密を共有しているため、SGD は Web サーバーの認証を信頼できます。この信頼されているユーザーの証明書は、SGD のインストール時にデフォルトで作成されます。これらの証明書を変更する方法の詳細は、「信頼されているユーザーとサードパーティー認証」を参照してください。
Web サーバー認証を有効にするには、次の操作を実行する必要があります。
Web サーバー認証を使用できるように Web サーバーを設定するには、各 SGD ホストで /sgd
URL を保護します。/sgd
URL を保護する方法は、Web サーバーによって異なります。詳細については、Web サーバーのマニュアルを参照してください。
ここでは、Web サーバー認証を使用できるように SGD Web Server を設定する手順の例を紹介します。SGD Web Server を使用する場合は、Apache または Tomcat コンポーネントで /sgd
URL を保護することができます。ここでは、Apache で URL を保護していることを前提にしています。
アレイ内の各 SGD サーバーで、次の手順を繰り返します。
/opt/tarantella/webserver/apache/version/bin/htpasswd
プログラムを使用して Web サーバーのパスワードファイルを作成して、エントリを追加します。
/sgd
URL を保護します。
Apache 構成ファイルは /opt/tarantella/webserver/apache/version/conf/httpd.conf
です。
SetEnvIf Request_URI "\.(jar|gif)$" sgd_noauth_ok <LocationMatch /sgd> Order Allow,Deny Allow from env=sgd_noauth_ok AuthUserFile file-path AuthName auth-domain Authtype Basic Require valid-user Satisfy any </LocationMatch>
file-path は Web サーバーのパスワードファイルへのフルパス、auth-domain は Web ブラウザの認証ダイアログに表示される認証レルムの名前です。
SetEnvIf
ディレクティブを使用すると、SGD Web Server の開始画面の操作に影響を与えることなく、/sgd
URL を保護できます。
注 SGD Web Server は /sgd
URL の管理を Tomcat に委譲するため、Directory
ディレクティブではなく LocationMatch
ディレクティブを使用する必要があります。これは、Apache 構成ファイル内で設定されるため、.htaccess
ファイルを使って /sgd
URL を保護することはできません。
Tomcat 構成ファイルは /opt/tarantella/webserver/tomcat/version/conf/server.xml
です。
次のようにして、tomcatAuthentication="false"
属性を <Connector>
要素に追加します。
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 --> <Connector port="8009" minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443" acceptCount="10" debug="0" connectionTimeout="0" useURIValidationHack="false" tomcatAuthentication="false" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
設定の変更を有効にするため、SGD Web Server を再起動する必要があります。
「グローバル設定」の「Secure Global Desktop 認証」タブで、「Secure Global Desktop 認証を変更」ボタンをクリックします。
検索方式の詳細については、「サードパーティー認証」を参照してください。
「LDAP リポジトリを検索」チェックボックスが選択されている場合は、LDAP ユーザープロファイルを検索するオプションを選択します。
「LDAP リポジトリの詳細」の手順が表示されるのは、 「サードパーティーの認証 - ユーザー識別情報とユーザープロファイル」の手順で LDAP 検索方式が選択されている場合だけです。
ldap://melbourne.indigo-insurance.com
)。
ldaps://
URL を使って LDAP ディレクトリサーバーのルート証明書をインストールします。ldap://melbourne.indigo-insurance.com:5678
)。ldap://melbourne.indigo-insurance.com/dc=indigo-insurance,dc=com
)、ユーザー識別情報の検索に使用する LDAP ディレクトリの部分を制限します。cn=sgd-user,cn=Users,dc=indigo-insurance,dc=com
)。SGD Web サーバー認証では、Web サーバーの REMOTE_USER
環境変数の設定に基づいて、ユーザーが識別されます。Web サーバー認証に認証プラグインを使用する場合は、プラグインが別の環境変数を使ってユーザーを識別する可能性があります。これを回避するには、使用する変数をサポートするように Webtop Web アプリケーションを設定する必要があります。
SGD は、REMOTE_USER
変数のほかに、次の変数をサポートします。
SSL_CLIENT_S_DN_CN
- この変数のサポートを有効にする方法の詳細は、「クライアント証明書の使用」を参照してください。HTTP_SAFEWORD_USER
- この変数のサポートを有効にする方法の詳細は、「SafeWord PremierAccess の使用」を参照してください。操作を開始する前に、認証プラグインのマニュアルを参照して、認証プラグインがユーザーを識別するために設定する環境変数を書き留めておいてください。
次に示す手順では、Web サーバー用の認証プラグインが設定済みで、その動作が確認済みであることを前提としています。
アレイ内の各 SGD サーバーで、次の手順を繰り返します。
ファイルは、/opt/tarantella/webserver/apache/version/conf/httpd.conf
です。
JkEnvVar
ディレクティブを追加して、環境変数を転送します。
次の方法で、既存の JKEnvVar
ディレクティブを検索して、独自の変数用のディレクティブを追加します。
#JkEnvVar SSL_CLIENT_S_DN_CN " " #JkEnvVar HTTP_SAFEWORD_USER " " JKEnvVar YOUR_VARIABLE " "
/SGD
の位置で、環境変数を使用可能にします。
次の方法で、Location
ディレクティブからコメント記号 (#) を削除します。
<Location "/sgd"> SSLOptions +StdEnvVars +ExportCertData </Location>
このディレクトリは、/opt/tarantella/webserver/tomcat/version/webapps/sgd/resources/jsp
です。
webtopsession.jsp
ファイルを編集して、使用する変数のサポートを追加します。
その方法については、HTTP_SAFEWORD_USER
および SSL_CLIENT_S_DN_CN
変数のコードを例として使用します。
SGD には、Web サーバー認証での SafeWord PremierAccess のサポートが含まれます。SafeWord PremierAccess は、ユーザーの識別に REMOTE_USER
変数ではなく、HTTP_SAFEWORD_USER
環境変数を使用します。
次に示す手順では、Web サーバー認証用の SafeWord PremierAccess が設定済みで、その動作が確認済みであることを前提としています。
アレイ内の各 SGD サーバーで、次の手順を繰り返します。
このファイルは、/opt/tarantella/webserver/apache/version/conf/httpd.conf
です。
JkEnvVar
ディレクティブを有効にして、HTTP_SAFEWORD_USER
変数を転送します。
次の方法で、既存の JKEnvVar
ディレクティブを検索して、HTTP_SAFEWORD_USER
変数のコメント記号 (#) を削除します。
#JkEnvVar SSL_CLIENT_S_DN_CN " " JkEnvVar HTTP_SAFEWORD_USER " "
/SGD
の場所で、HTTP_SAFEWORD_USER
環境変数を使用可能にします。
次の方法で、Location
ディレクティブからコメント記号 (#) を削除します。
<Location "/sgd"> SSLOptions +StdEnvVars +ExportCertData </Location>
Web サーバー認証のセキュリティーを強化するために、有効な公開鍵インフラストラクチャー (PKI) 証明書がクライアントデバイスにインストールされているユーザーだけを認証するようにできます。
SGD Web サーバー認証では、Web サーバーの REMOTE_USER
変数の設定に基づいて、ユーザーが識別されます。ただし、クライアント証明書を使ってユーザーが認証される場合は、通常、別の環境変数がユーザーの識別に使用されます。Apache Web サーバー (SGD Web Server を含む) では、SSL_CLIENT_S_DN_CN
変数が使用されます。次の手順では、SSL_CLIENT_S_DN_CN
変数のサポートを有効にします。使用する Web サーバーが、クライアント証明書の使用時に別の変数を設定する場合は、ここで説明する手順を実行してください。
以降の手順では、/sgd
URL へのアクセスにクライアント証明書が必要になるように Web サーバーを設定済みであり、その動作も確認済みであるものとします。SGD Web Server には、Apache mod_ssl
モジュールが含まれます。このモジュールを使って、PKI クライアント証明書を設定できます。
アレイ内の各 SGD サーバーで、次の手順を繰り返します。
このファイルは、/opt/tarantella/webserver/apache/version/conf/httpd.conf
です。
JkEnvVar
ディレクティブを有効にして、SSL_CLIENT_S_DN_CN
変数を転送します。
次の方法で、既存の JKEnvVar
ディレクティブを検索して、SSL_CLIENT_S_DN_CN
変数のコメント記号 (#) を削除します。
JkEnvVar SSL_CLIENT_S_DN_CN " " #JkEnvVar HTTP_SAFEWORD_USER " "
/SGD
の位置で、SSL_CLIENT_S_DN_CN
環境変数を使用可能にします。
次の方法で、Location
ディレクティブからコメント記号 (#) を削除します。
<Location "/sgd"> SSLOptions +StdEnvVars +ExportCertData </Location>
Copyright © 1997-2007 Sun Microsystems, Inc. All rights reserved.