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

Active Directory 認証

Active Directory 認証では、Active Directory ドメインにアカウントを持つユーザーに対して SGD へのログインが許可されます。Active Directory 認証はユーザーに、LDAP 認証よりも高速で、安全性および拡張性の高い認証機構を提供します。Kerberos 認証プロトコルを使用することにより、SGD は、任意のユーザーをフォレスト内の任意のドメインに対して安全に認証できます。

Active Directory 認証は、デフォルトでは無効になっています。

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

Active Directory 認証の仕組み

SGD のログイン画面で、ユーザーはユーザー主体名とパスワードを入力します。ユーザー主体名とは、「@」記号で連結されたユーザー名とドメイン名 (たとえば、indigo@indigo-insurance.com) です。

SGD では、Kerberos プロトコルを使用してドメインの鍵配布センター (KDC) にアクセスすることで、主体名とパスワードを確認します。

認証が失敗した場合は、次の認証機構が試されます。

Kerberos 認証が成功した場合、SGD は、Active Directory の LDAP 検索を実行することによってユーザーの識別情報を確立します。次に、SGD はユーザープロファイルを検索します (次のセクションを参照)。ユーザープロファイルの「ログイン」属性が有効になっていない場合、ユーザーはログインできず、以降の認証機構は試行されません。ユーザープロファイルの「ログイン」属性が有効になっている場合、ユーザーはログインできます。

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

ユーザーの識別情報は、LDAP 識別情報です。SGD Administration Consoleでは、ユーザーの識別情報は LDAP-ID (LDAP) として表示されます。コマンド行では、ユーザーの識別情報は .../_service/sco/tta/ldapcache/LDAP-ID として表示されます。

SGD は、ローカルリポジトリを検索することによってユーザープロファイルを確立します。LDAP と SGD の命名体系の差に対応することができます。SGD は、次のユーザープロファイルを、一致するものが見つかるまで検索します。

一致するユーザープロファイルがない場合は、プロファイルオブジェクト System Objects/LDAP Profile がユーザープロファイルとして使用されます。

Active Directory 認証は、Directory Services Integration とともに使用できます。Active Directory ユーザーに割り当てられるアプリケーションは、ユーザープロファイルと LDAP 検索の組み合わせに基づいて決められます。

アプリケーションセッションとパスワードキャッシュエントリ

アプリケーションセッションとパスワードキャッシュエントリは、LDAP 人物オブジェクトに属します。

Active Directory 認証の有効化

Active Directory 認証を有効にするには、次の手順を実行します。

  1. Active Directory で Kerberos 認証が有効になっていることを確認します。

    Active Directory で Kerberos 認証が有効になっている必要があります。デフォルトでは有効になっています。

  2. 各 Active Directory ドメインにグローバルカタログサーバーが含まれていることを確認します。

    各ドメイン内の 1 つのドメインコントローラをグローバルカタログサーバーとして設定します。

  3. SGD の Kerberos 認証を設定します。

    SGD の Kerberos 認証を設定する方法」を参照してください。

  4. Active Directory 認証を設定します。

    Active Directory 認証を設定する方法」を参照してください。

SGD の Kerberos 認証を設定する方法

次の手順は、Kerberos プロトコルを使用してユーザーを認証できるように SGD サーバーを設定します。

アレイ内の SGD サーバーごとにこの手順を繰り返します。

  1. スーパーユーザー (root) になります。
  2. SGD サーバーを停止します。
  3. SGD サーバーと KDC サーバーの間で時刻を同期します。「時刻の同期化」を参照してください。
  4. Kerberos 構成ファイルを作成または編集します。「Kerberos 設定」を参照してください。
  5. SGD サーバーを起動します。

時刻の同期化

Kerberos 認証を使用するには、時刻が Microsoft Windows サーバーの Kerberos セキュリティーポリシーおよびデフォルトドメインセキュリティーポリシーに定義されている「コンピュータの時計の同期の最長トレランス」に準拠するように、アレイ内の KDC サーバーと SGD サーバー上のクロックが同期されている必要があります。これをクロックスキューと呼びます。クロックスキューを超えると、Kerberos 認証が失敗します。

時刻の同期は重要であるため、時間情報プロトコル (NTP) ソフトウェアを使用してクロックを同期してください。または、rdate コマンドを実行します。

Kerberos 設定

アレイ内の各 SGD サーバーには Kerberos 構成ファイルが存在する必要があります。SGD サーバーで使用される Kerberos 構成ファイルは、次のいずれかです。

Kerberos 構成ファイルには、Kerberos 認証を制御するための多数のオプションが含まれています。詳細は、使用しているシステムのマニュアルを参照してください。SGD には、少なくとも次の設定オプションが必要です。

これらの設定オプションについて以降のセクションで説明します。

Kerberos 構成に加えた変更が SGD で検出されるようにするには、SGD サーバーの再起動が必要です。または、次のコマンドを使用すると、SGD サーバーを再起動しなくても、Kerberos 構成を更新できます。

過去のコマンド構文またはプログラムコードのスキップ$ tarantella cache --flush krb5config 

Kerberos レルムと KDC の設定

少なくとも、Kerberos 構成ファイルには次のセクションが含まれている必要があります。

Kerberos 構成ファイルの例を、次に示します。

過去の書式設定済みテキストのスキップ[libdefaults]
default_realm = INDIGO-INSURANCE.COM
default_checksum = rsa-md5

[realms]
INDIGO-INSURANCE.COM = {
  kdc = melbourne.indigo-insurance.com
  }
EAST.INDIGO-INSURANCE.COM = {
  kdc = ad01.east.indigo-insurance.com
  kdc = ad02.east.indigo-insurance.com
  }
WEST.INDIGO-INSURANCE.COM = {
  kdc = ad01.west.indigo-insurance.com
  kdc = ad02.west.indigo-insurance.com
  }
  
[domain_realm]
  indigo-insurance.com = INDIGO-INSURANCE.COM
  .east.indigo-insurance.com = EAST.INDIGO-INSURANCE.COM
  east.indigo-insurance.com = EAST.INDIGO-INSURANCE.COM
  .west.indigo-insurance.com = WEST.INDIGO-INSURANCE.COM
  west.indigo-insurance.com = WEST.INDIGO-INSURANCE.COM

パスワードの有効期限

Active Directory パスワードの有効期限が切れているときに、ユーザーに新しいパスワードの入力を要求するように SGD を設定できます。それには、次に示すように、各 Kerberos レルムのパスワード変更を処理するサーバーの詳細を Kerberos 構成ファイルに追加する必要があります。

過去の書式設定済みテキストのスキップkpasswd_server = host:port
admin_server = host:port
kpasswd_protocol = SET_CHANGE

kpasswd_serveradmin_server の行は、パスワード変更を処理する Kerberos 管理サーバー (host) を識別します。kpasswd_server を省略した場合は、代わりに admin_server が使用されます。デフォルトポートの 464 が使用されている場合は、port を省略できます。

レルムに対するパスワードの有効期限の設定例を、次に示します。

過去の書式設定済みテキストのスキップEAST.INDIGO-INSURANCE.COM = {
  kdc = ad01.east.indigo-insurance.com
  kdc = ad02.east.indigo-insurance.com
  admin_server = ad01.east.indigo-insurance.com
  kpasswd_protocol = SET_CHANGE
  }

ネットワークプロトコル

KDC または Kerberos 管理サーバーにメッセージを送信するときには、UDP または TCP プロトコルが使用されます。使用されるプロトコルは、Kerberos 構成ファイルの [libdefaults] セクションにある次の行によって決まります。

過去の書式設定済みテキストのスキップudp_preference_limit = bytes

この行には、UDP を使用して送信できる最大パケット サイズ (バイト単位) を設定します。メッセージがこのサイズより大きい場合は、TCP が使用されます。つまり、KDC または管理サーバーがパッケージが大きすぎることを検出すると、代わりに TCP が使用されます。常に TCP を使用するには、udp_preference_limit を次のように設定します。

過去の書式設定済みテキストのスキップudp_preference_limit = 1

KDC タイムアウト

Kerberos 認証プロセスが失敗した場合は、SGD が KDC からの応答をどの程度待機するか、および各 KDC に何回接続を試みるかを制御する KDC タイムアウトを設定できます。

KDC タイムアウトを設定するときは、Kerberos 構成ファイルの [libdefaults] セクションに次の行を追加します。

過去の書式設定済みテキストのスキップkdc_timeout = time
max_retries = number

kdc_timeout には、KDC からの応答の最大待機時間 (ミリ秒) を設定します。max_retries は、各 KDC への最大接続試行回数です。各レルムの KDC への接続は、Kerberos 構成ファイルの [realms] セクションに設定されている順序に従って行われます。

KDC タイムアウトと LDAP 検出タイムアウトの関係は保持することを推奨します。KDC タイムアウトを増やした場合、LDAP 検出タイムアウトも増やしてください。

SGD からユーザーのレルムの KDC に接続できない場合は、認証に失敗します。

Active Directory 認証を設定する方法

  1. SGD Administration Consoleで、Secure Global Desktop 認証設定ウィザードを表示します。

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

  2. 「サードパーティー/システム認証」手順で、「システム認証」チェックボックスが選択されていることを確認します。
  3. 「システム認証 - リポジトリ」手順で、「LDAP/Active Directory」チェックボックスを選択します。
  4. 「LDAP リポジトリの詳細」手順で、Active Directory ドメインの詳細を設定します。
    1. 「リポジトリタイプ」の「Active Directory」オプションを選択します。
    2. 「URL」フィールドに、ad://east.indigo-insurance.com のように Active Directory ドメインの名前を入力します。

      URL は、ad:// で始まっている必要があります。入力できる URL は 1 つだけです。

      SGD は、このドメイン名を使用してドメインネームシステム (DNS) 検索を実行し、グローバルカタログサーバーのリストを取得します。グローバルカタログは、SGD がユーザーの識別情報とユーザープロファイルを判別するために、どの Active Directory サーバーを検索できるかを決定するために使用されるサーバーです。

    3. SGD が Active Directory への接続にセキュア接続と標準接続のどちらを使用するかを設定します。

      セキュア接続を使用するには、「証明書を使用する」チェックボックスを選択し、アレイ内の各 SGD サーバーのクライアント証明書をインストールします

      標準接続を使用するには、「ユーザー名」フィールドと「パスワード」フィールドに、Active Directory を検索する権限を持つユーザーのユーザー名とパスワードを入力します。ユーザー名には、sgd-ldap@indigo-insurance.com など、ユーザー主体名を入力する必要があります。Active Directory 認証に予約された特別なユーザーを作成することもできます。

    4. 「ベースドメイン」フィールドに、ドメインの一部の名前を入力します。

      ベースドメインは、ログイン時にドメインの一部だけが入力された場合に使用されます。たとえば、ベースドメインが indigo-insurance.com に設定されているときに、ユーザーが rouge@west というユーザー名でログインした場合、SGD はそのユーザーを rouge@west.indigo-insurance.com として認証しようとします。

    5. 「デフォルトドメイン」フィールドに、デフォルトとして使用するドメイン名を入力します。

      デフォルトドメインは、ユーザーがログイン時にドメインを入力しなかった場合に使用されます。たとえば、デフォルトドメインが east.indigo-insurance.com に設定されているときに、ユーザーが rouge というユーザー名でログインした場合、SGD はそのユーザーを rouge@east.indigo-insurance.com として認証しようとします。

  5. 「選択項目の確認」手順で、認証の設定を確認し、「完了」をクリックします。

LDAP キャッシュ

SGD は、Active Directory から収集した LDAP データをキャッシュします。SGD が変更を検出していない場合は、次のコマンドを使用して、キャッシュされたデータを手動で消去できます。

過去のコマンド構文またはプログラムコードのスキップ$ tarantella cache --flush ldapgroups | ldapconn | ldapconn-lookups | all 

このコマンドを実行した SGD サーバーのキャッシュだけがフラッシュされます。

オプション 説明
ldapgroups Directory Services Integration に使用されるすべての LDAP グループデータのキャッシュをフラッシュします。
ldapconn すべての IP アドレス、ドメイン、および属性データのキャッシュをフラッシュします。
ldapconn-lookups Directory Services Integration に使用されるすべての LDAP 検索データのキャッシュをフラッシュします。
all すべての LDAP データをフラッシュします。

LDAP タイムアウト

Active Directory サーバーの LDAP 検索に失敗した場合のために、2 つの LDAP タイムアウトを設定できます。

LDAP 検出タイムアウトは、初期接続要求に対する Active Directory サーバーからの応答を SGD が待機する時間を制御します。デフォルト値は 30 秒です。このタイムアウト値を変更するには、次のコマンドを実行します。

過去のコマンド構文またはプログラムコードのスキップ$ tarantella config edit --tarantella-config-ldap-discovery-timeout secs

LDAP タイムアウトは、データ要求などの LDAP 操作に対する Active Directory サーバーからの応答を、SGD が待機する時間を制御します。デフォルト値は 30 秒です。このタイムアウト値を変更するには、次のコマンドを実行します。

過去のコマンド構文またはプログラムコードのスキップ$ tarantella config edit --tarantella-config-ldap-timeout secs

どちらのタイムアウトでも、SGD は Active Directory サーバーとの接続を 2 回試みます。応答がない場合、SGD は別の Active Directory サーバーを試みます。ドメインの Active Directory サーバーのリストは、グローバルカタログから取得します。すべての Active Directory サーバーでタイムアウトが発生した場合、SGD で Directory Services Integration を使用できなくなることがあります。

LDAP 検出タイムアウトには、KDC タイムアウトより長い値を設定してください。たとえば、KDC タイムアウトが 10 秒で、再試行回数が 3 回の場合、LDAP 検出タイムアウトを 35 秒 (3 x 10 秒 + 追加の 5 秒) に設定します。KDC タイムアウトと LDAP 検出タイムアウトの関係は保持してください。KDC タイムアウトを増やした場合、LDAP 検出タイムアウトも増やしてください。

関連トピック