過去のナビゲーションリンクのスキップSecure Global Desktop 4.40 管理者ガイド > ユーザーと認証 > Web サーバー認証

Web サーバー認証

Web サーバー認証 (技術的には正確な用語は HTTP 認証) は、サードパーティー認証の最も一般的な形式です。Web サーバー認証では、Web サーバーが認証を実行し、SGD がユーザーの識別情報とユーザープロファイルを判定します。

Web サーバー認証の利点は、REMOTE_USER 環境変数に設定しさえすれば、任意の Web サーバー認証プラグインを使用できることです。使用する認証プラグインが異なる変数を設定する場合、それをサポートするように SGD を設定できます。

Web サーバー認証とシステム認証は一緒に使用できます。少なくとも 1 つのシステム認証機構を、フォールバック用に使用可能にしておくのが最善です。SGD がユーザーのユーザープロファイルを検出できない場合、システム認証機構を使ってユーザーが認証を実行できるように、SGD の標準ログインページが表示されます。

このページで説明する内容は、次のとおりです。

Web サーバー認証の動作

Web サーバーの認証は、以下のように機能します。

保護された URL に対する要求があるたびに証明書を送信する必要があるため、Web ブラウザはユーザーの証明書をキャッシュします。証明書は、ブラウザから自動的に送信されます。証明書のキャッシュ方法には、次の種類があります。

ユーザーの識別情報とユーザープロファイル

Web サーバーは、ユーザーの認証を実行したあとで、REMOTE_USER 環境変数を設定します。この変数には、認証済みのユーザーのユーザー名が含まれます。SGD は REMOTE_USER 変数の値を受け取り、その値を使用してユーザーの識別情報とユーザープロファイルを検索します。SGD は、ユーザーの識別情報とユーザープロファイルを確立するための 4 種類の検索方法をサポートします。詳細は、「サードパーティー認証を参照してください。

Web サーバー認証を使用するときのセキュリティー上の考慮事項

SGD で Web サーバー認証を実行する場合のセキュリティー上の主な考慮事項を、以下に示します。

Web サーバー認証の有効化

Web サーバー認証を有効にするには、次の操作を実行する必要があります。

  1. Web サーバー認証を使用できるように Web サーバーを設定する
  2. サードーパーティー認証を使用できるように SGD を設定する

Web サーバー認証を使用できるように Web サーバーを設定する

Web サーバー認証を使用できるように Web サーバーを設定するには、各 SGD ホストで /sgd URL を保護します。/sgd URL を保護する方法は、Web サーバーによって異なります。詳細については、Web サーバーのマニュアルを参照してください。

ここでは、Web サーバー認証を使用できるように SGD Web Server を設定する手順の例を紹介します。SGD Web Server を使用する場合は、Apache または Tomcat コンポーネントで /sgd URL を保護することができます。ここでは、Apache で URL を保護していることを前提にしています。

アレイ内の各 SGD サーバーで、次の手順を繰り返します。

  1. スーパーユーザー (root) になります。
  2. Web サーバーのパスワードファイルを作成します。

    /opt/tarantella/webserver/apache/version/bin/htpasswd プログラムを使用して Web サーバーのパスワードファイルを作成して、エントリを追加します。

  3. Apache 構成ファイルを編集して、/sgd URL を保護します。

    Apache 構成ファイルは /opt/tarantella/webserver/apache/version/conf/httpd.conf です。

    1. 次のディレクティブを、358 行目の前後に挿入します。
      過去の書式設定済みテキストのスキップ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 を保護することはできません。

    2. Apache 構成ファイルを保存します。
  4. Web サーバーの認証を信頼するように、SGD Web Server の Tomcat コンポーネントを設定します。
    1. Tomcat 構成ファイルを編集します。

      Tomcat 構成ファイルは /opt/tarantella/webserver/tomcat/version/conf/server.xml です。

    2. Coyote/JK2 AJP 1.3 Connector の設定を修正します。

      次のようにして、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"/>
    3. Tomcat 構成ファイルを保存します。
  5. SGD Web Server を再起動します。

    設定の変更を有効にするため、SGD Web Server を再起動する必要があります。

サードーパーティー認証を使用できるように SGD を設定する

  1. SGD Administration Console で、Secure Global Desktop Authentication Configuration Wizard を表示します。

    「グローバル設定」の「Secure Global Desktop 認証」タブで、「Secure Global Desktop 認証を変更」ボタンをクリックします。

  2. 「サードパーティー/システム認証」 の手順で、「サードパーティーの認証」チェックボックスを選択します。
  3. 「サードパーティーの認証 - ユーザー識別情報とユーザープロファイル」の手順で、ユーザーの識別情報の検索方法として、1 つ以上のチェックボックスを選択します。

    検索方式の詳細については、「サードパーティー認証」を参照してください。

    「LDAP リポジトリを検索」チェックボックスが選択されている場合は、LDAP ユーザープロファイルを検索するオプションを選択します。

  4. (省略可能) 「LDAP リポジトリの詳細」の手順で、LDAP ディレクトリの詳細を設定します。

    「LDAP リポジトリの詳細」の手順が表示されるのは、 「サードパーティーの認証 - ユーザー識別情報とユーザープロファイル」の手順で LDAP 検索方式が選択されている場合だけです。

    1. 「リポジトリタイプ」で、「LDAP」オプションを選択します。Microsoft Active Directory サーバーを使用している場合でも、このオプションを選択してください。
    2. 「URL」フィールドに、1 つ以上の LDAP ディレクトリサーバーの URL を入力します (例: ldap://melbourne.indigo-insurance.com)。
      • 各 URL の入力後に、Return キーを押します。
      • 複数の URL が存在する場合、SGD は記載されている順に URL を使用します。リスト内の最初の LDAP ディレクトリサーバーを使用できない場合に、次の LDAP ディレクトリサーバーの使用が試みられます。
      • LDAP ディレクトリサーバーへのセキュア接続を使用するには、ldaps:// URL を使って LDAP ディレクトリサーバーのルート証明書をインストールします
      • LDAP ディレクトリサーバーへの接続に使用する標準ポートは、ポート 389 です。LDAP ディレクトリサーバーが別のポートを使用する場合は、そのポート番号を URL に含めて指定します (例: ldap://melbourne.indigo-insurance.com:5678)。
      • サーチルートを URL の最後に追加して (例: ldap://melbourne.indigo-insurance.com/dc=indigo-insurance,dc=com)、ユーザー識別情報の検索に使用する LDAP ディレクトリの部分を制限します。
    3. 「User Name」および「Password」フィールドに LDAP ユーザーの詳細情報を入力します。
      • ユーザー名は、ユーザーの識別名でなければなりません (たとえば、cn=sgd-user,cn=Users,dc=indigo-insurance,dc=com)。
      • 一部の LDAP ディレクトリサーバーでは匿名ログインがサポートされるため、ユーザー名やパスワードを入力する必要はありません。その他 (Microsoft Active Directory など) の場合は、LDAP ディレクトリの検索権限を有するユーザーのユーザー名とパスワードを入力する必要があります。
      • 入力できるユーザー名とパスワードは 1 組だけであるため、このユーザーが「URL」フィールドに記載されたすべての LDAP ディレクトリサーバーを検索できる必要があります。
      • SGD LDAP 認証用の特別な LDAP ユーザーを作成することもできます。
  5. 「選択項目の確認」の手順で、認証の設定を確認して、「終了」をクリックします。

Web サーバー認証での認証プラグインの使用

SGD Web サーバー認証では、Web サーバーの REMOTE_USER 環境変数の設定に基づいて、ユーザーが識別されます。Web サーバー認証に認証プラグインを使用する場合は、プラグインが別の環境変数を使ってユーザーを識別する可能性があります。これを回避するには、使用する変数をサポートするように Webtop Web アプリケーションを設定する必要があります。

SGD は、REMOTE_USER 変数のほかに、次の変数をサポートします。

Web サーバー認証でその他の環境変数のサポートを有効にする方法

操作を開始する前に、認証プラグインのマニュアルを参照して、認証プラグインがユーザーを識別するために設定する環境変数を書き留めておいてください。

次に示す手順では、Web サーバー用の認証プラグインが設定済みで、その動作が確認済みであることを前提としています。

アレイ内の各 SGD サーバーで、次の手順を繰り返します。

  1. スーパーユーザー (root) になります。
  2. 使用する変数を Tomcat コンポーネントに転送するように、SGD Web Server の Apache コンポーネントを設定します。
    1. Apache 構成ファイルを編集します。

      ファイルは、/opt/tarantella/webserver/apache/version/conf/httpd.conf です。

    2. JkEnvVar ディレクティブを追加して、環境変数を転送します。

      次の方法で、既存の JKEnvVar ディレクティブを検索して、独自の変数用のディレクティブを追加します。

      過去の書式設定済みテキストのスキップ#JkEnvVar SSL_CLIENT_S_DN_CN " "
      #JkEnvVar HTTP_SAFEWORD_USER " "
      JKEnvVar YOUR_VARIABLE " "
    3. /SGD の位置で、環境変数を使用可能にします。

      次の方法で、Location ディレクティブからコメント記号 (#) を削除します。

      過去の書式設定済みテキストのスキップ<Location "/sgd">
       SSLOptions +StdEnvVars +ExportCertData
      </Location>
    4. Apache 構成ファイルを保存します。
  3. 該当する環境変数を使用するよう、Webtop Web アプリケーションを設定します。
    1. SGD Web アプリケーションのリソースディレクトリに移動します。

      このディレクトリは、/opt/tarantella/webserver/tomcat/version/webapps/sgd/resources/jsp です。

    2. webtopsession.jsp ファイルを編集して、使用する変数のサポートを追加します。

      その方法については、HTTP_SAFEWORD_USER および SSL_CLIENT_S_DN_CN 変数のコードを例として使用します。

    3. 変更を保存します。
  4. SGD Web Server を再起動します。

Web サーバー認証での SafeWord PremierAccess の使用

SGD には、Web サーバー認証での SafeWord PremierAccess のサポートが含まれます。SafeWord PremierAccess は、ユーザーの識別に REMOTE_USER 変数ではなく、HTTP_SAFEWORD_USER 環境変数を使用します。

次に示す手順では、Web サーバー認証用の SafeWord PremierAccess が設定済みで、その動作が確認済みであることを前提としています。

アレイ内の各 SGD サーバーで、次の手順を繰り返します。

  1. スーパーユーザー (root) になります。
  2. Apache 構成ファイルを編集します。

    このファイルは、/opt/tarantella/webserver/apache/version/conf/httpd.conf です。

  3. JkEnvVar ディレクティブを有効にして、HTTP_SAFEWORD_USER 変数を転送します。

    次の方法で、既存の JKEnvVar ディレクティブを検索して、HTTP_SAFEWORD_USER 変数のコメント記号 (#) を削除します。

    過去の書式設定済みテキストのスキップ#JkEnvVar SSL_CLIENT_S_DN_CN " "
    JkEnvVar HTTP_SAFEWORD_USER " "
  4. /SGD の場所で、HTTP_SAFEWORD_USER 環境変数を使用可能にします。

    次の方法で、Location ディレクティブからコメント記号 (#) を削除します。

    過去の書式設定済みテキストのスキップ<Location "/sgd">
     SSLOptions +StdEnvVars +ExportCertData
    </Location>
  5. Apache 構成ファイルを保存します。
  6. SGD Web Server を再起動します。

Web サーバー認証でのクライアント証明書の使用

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 サーバーで、次の手順を繰り返します。

  1. スーパーユーザー (root) になります。
  2. Apache 構成ファイルを編集します。

    このファイルは、/opt/tarantella/webserver/apache/version/conf/httpd.conf です。

  3. JkEnvVar ディレクティブを有効にして、SSL_CLIENT_S_DN_CN 変数を転送します。

    次の方法で、既存の JKEnvVar ディレクティブを検索して、SSL_CLIENT_S_DN_CN 変数のコメント記号 (#) を削除します。

    過去の書式設定済みテキストのスキップJkEnvVar SSL_CLIENT_S_DN_CN " "
    #JkEnvVar HTTP_SAFEWORD_USER " "
  4. /SGD の位置で、SSL_CLIENT_S_DN_CN 環境変数を使用可能にします。

    次の方法で、Location ディレクティブからコメント記号 (#) を削除します。

    過去の書式設定済みテキストのスキップ<Location "/sgd">
     SSLOptions +StdEnvVars +ExportCertData
    </Location>
  5. Apache 構成ファイルを保存します。
  6. SGD Web Server を再起動します。
関連トピック