Active Directory ドメインにおける SPNEGO を使用したシングル・サインオンの実装

Active Directory ドメインでシングル・サインオンを実装する際に、Simple and Protected GSS-API Negotiation (SPNEGO) 機構を使用することができます。

始める前に

この作業を行うには、ネットワーク上に次の要素が必要です。

  • Active Directory ドメイン
  • ディレクトリー・サーバーのホスト名
  • Kerberos 鍵配布センター (KDC) のホスト名
  • Active Directory ドメインのホスト上の Build Forge インストール済み環境
  • Active Directory ドメイン上のクライアント・ホスト
  • 各クライアント上の Kerberos 構成ファイル
  • ディレクトリー・サーバー・ホストにインストールされた Windows Server 2003 SP2 リソース・ツールキット
  • サポートされている Web ブラウザー
    注: SPNEGO を使用する場合には、Internet Explorer 6 はサポートされません。サポートされているブラウザーを使用してください。
以下の手順にはいくつかの例が含まれており、次のようにセットアップされています。
  • mycompany.com は、ドメインのすべてのホストが使用する TCP/IP ドメインの名前です。
  • ITDEV.COM は、Active Directory ドメインの名前です。
  • it_directory.mycompany.com は、ディレクトリー・サーバーが稼働しているホストです。 ここでは、Kerberos KDC も稼働しています。
  • it_domain.mycompany.com は、Active Directory ドメイン・コントローラーが稼働しているホストです。
  • it_buildforge.mycompany.com は、Build Forge がインストールされているホストです。
  • bfuser は、Build Forge システムのドメイン・ユーザー名です。
  • happy_user は、ドメイン・ユーザー名です。例えば Web ブラウザーで SSO を使用して Build Forge にアクセスするユーザーなどです。

このタスクについて

Active Directory ドメインおよび KDC に SPNEGO SSO を実装するには、次の作業を行います。各作業はセクションに分けられており、それぞれ詳細な手順が記載されています。
注: SPNEGO インターセプターは、Active Directory 以外の KDC で使用できます。

手順

  1. Active Directory のユーザーとサービス・プリンシパルをセットアップします。
  2. Kerberos ファイルをセットアップします。
  3. Build Forge で Active Directory と SPNEGO が使用されるように構成します。
  4. セキュアなアクセスができるように、ブラウザー・クライアントを構成します。
  5. SSO を使用して Build Forge にアクセスします。

Active Directory ユーザーとサービス・プリンシパルのセットアップ

Build Forge サーバーと Build Forge クライアントを、Active Directory ドメインにセットアップする必要があります。

始める前に

以下の手順を実行するには、Windows 2003 SP2 に対応したサポート・ツールが必要です。 これらのツールには、setspn コマンドが含まれており、Active Directory でサービス・プリンシパルを設定する必要があります。Windows Server 2003 製品 CD、または Microsoft Download Center から、サポート・ツールをインストールします。

このタスクについて

Build Forge クライアントおよびサーバーが Active Directory ドメインにある場合、ユーザーは、Windows ホストにログインするときに、Kerberos 証明書トークンを生成します。 生成後、ユーザーが Build Forge サーバーにアクセスしようとすると、SPNEGO インターセプターはユーザー・トークンを受け取り、それを検証します。 検証済みの ID は Build Forge に渡され、構成された Microsoft Active Directory LDAP サーバーを介してログインが行われます。

手順

  1. ドメイン・コントローラー・ホストへのログオン 例では、ホストは it_example.mycompany.com です。
  2. Build Forge ホストがまだメンバーではない場合は、これを Active Directory ドメインに追加します。 この例では、ホスト it_buildforge をドメイン ITDEV.COM に追加します。このドメインにおけるホストの完全修飾名は、it_buildforge.ITDEV.COM になります。
  3. Build Forge ユーザーを Active Directory ドメインに追加します。 この例では、ユーザー bfuser を作成します。
    重要:
    • 「パスワード期限なし (Password never expires)」を選択します。他のパスワード管理を選択することもできます。 ただし、期限が切れるたびに、Build Forge サーバーで新しいパスワードを入力する必要があります。
    • 「アカウント」タブで、「アカウントは委任に対してトラステッド (Account is trusted for delegation)」を選択します。
  4. ユーザー・アカウントがない場合、すべてのクライアントに対して、Microsoft Active Directory でアカウントを作成します。 この例では、ユーザー happy_user を作成します。
  5. Build Forge のサービス・プリンシパル名 (SPN) を作成します。 以下の例では、Active Directory ユーザーの bfuser が、サービス名 HTTP/it_buildforge.mycompany.com に関連付けられ、Build Forge サーバーの SPN it_buildforge が作成されます。
    setspn -A HTTP/it_buildforge.mycompany.com bfuser

    HTTP は、Build Forge サービスのサービス名です。

Kerberos 認証用のファイルのセットアップ

スタートアップ・ファイル (Kerberos クライアント構成ファイル) および keytab ファイルを、Build Forge ホスト上にセットアップする必要があります。

手順

  1. スタートアップ・ファイルを、Build Forge が稼働しているホスト上にセットアップします。
    • Windows システム
      • krb.ini ファイルを指定し、それを C:¥winnt に置きます。 まだ作成していない場合は、C:¥winnt を作成します。
      • default_keytab_nameFILE:C:¥winnt¥krb5.keytab に設定します。
    • UNIX システムおよび Linux システム
      • krb.conf ファイルを指定し、それを C:¥winnt に置きます。
      default_keytab_nameFILE:/etc/krb5.keytab に設定します。

    サンプル・システムのドメインおよび領域設定を使用して、Windows 用に以下のサンプル・ファイルがセットアップされます。

    [libdefaults]
    	default_realm = ITDEV.COM
    	default_keytab_name = FILE:C:¥winnt¥krb5.keytab
    	default_tkt_enctypes = rc4_hmac
    	default_tgs_enctypes = rc4_hmac
    #	kdc_default_options = 0x40800000
    	forwardable  = true
    	renewable  = true
    	noaddresses = true
    	clockskew  = 300
    [realms]
    	ITDEV.COM = {
    		kdc = it_directory.itdev.com:88
    		default_domain = mycompany.com
    [domain_realm]
    	.mycompany.com = ITDEV.COM
    注: クライアント・ホストと Build Forge サーバー・ホスト間のクロック・スキューが 300 秒を超えている場合、トークンは作動しません。クライアントおよびサーバー・ホスト上に、スキュー制限内で、時刻、日付、およびタイムゾーンを設定してください。
  2. Kerberos keytab ファイルをセットアップします。 Build Forge サーバーは、keytab ファイルを使用して、クライアントが Build Forge サーバーの URL にアクセスしようとするときに、Kerberos トークンを検証します。 ドメイン・コントローラー・ホストで ktpass コマンドを使用して、このファイルを作成します。 ktpass コマンドは、前提条件である Windows リソース・ツールキットに含まれています。以下の例では、Build Forge サービスのプリンシパル名と、サンプル・シナリオで Build Forge 用にセットアップされた Active Directory ユーザー名が使用されています。 -pass Rat1onal を自分のパスワードに置き換えます。 分かりやすくするために、例では改行が表示されています。ktpass コマンドでは、改行を使用しないでください。
    ktpass -out C:¥it_buildforge.keytab
    -princ HTTP/it_buildforge.mycompany.com@ITDEV.COM 
    -mapuser bfuser -mapop set 
    -pass Rat1onal /crypto RC4-HMAC-NT /rndpass /ptype KRB5_NT_SRV_HST
    it_buildforge.keytab を krb5.keytab に名前変更し、Kerberos スタートアップ・ファイルが置かれているディレクトリーにある Build Forge ホストに置きます。
    • Windows の場合: C:¥winnt¥
    • UNIX および Linux の場合: /etc

Build Forge で Active Directory と SPNEGO が使用されるための構成

手順

  1. Build Forge で、LDAP が Active Directory ドメイン・コントローラーを指定するように設定します。
    1. Build Forge で、「管理」 > 「LDAP」とクリックします。
    2. 新規 LDAP 構成を作成し、以下のようにプロパティーを設定して、ドメイン・コントローラーへのアクセスをセットアップします。
      • 名前: Active Directory ドメインの名前に設定します。例の環境では、itdev になります。
      • 管理者 DN: ドメイン内の管理者ユーザーに設定します。
      • アクセス・グループのマップ: いいえ
      • ホスト: ドメイン・コントローラー・ホストの IP アドレスに設定します。
      • ユーザー・アカウントのバインド: はい
      • プロトコル: LDAP
      • 表示名: displayname
      • 識別名: distinguishedname
      • グループ名: memberof
      • メール名: displayname
      • 検索基準: on=users、do=domainname、do=domainextension。 この例の環境では、on=users,do=itdev,do=.com になります。
      • 検索フィルター: sAMAccountNames=%
    3. 「デフォルトの設定」をクリックします。 この構成を、デフォルトの LDAP 構成にする必要があります。
  2. Build Forge 環境変数を SPNEGO に対応するように設定します。
    1. Build Forge で、「環境変数」 > 「SPNEGO SSO の環境変数」と移動します。
    2. bf_spnego_service_name を HTTP に設定します。 これは、サービス・プリンシパル名と同一です。
    3. bf_spnego_server_nameit_buildforge.mycompany.com (Build Forge サーバー・ホストの完全修飾ホスト名) に設定します。 この変数が設定されていないと、INetAddress API はホスト名の場所を探索しようとします。
    4. bf_spnego_realm を ITDEV.COM (Kerberos 領域名) に設定します。 この変数が設定されていない場合、Kerberos スタートアップ・ファイル内の値が使用されます。
  3. SPNEGO インターセプターを有効に設定します。
    1. Build Forge で、「管理」 > 「セキュリティー」 > 「SSO」 > 「SPNEGO SSO インターセプター」と移動します。
    2. 「アクティブ・プロパティー (Active property)」を「はい」に設定し、「保存」をクリックします。
    3. 「管理」 > 「セキュリティー」 > 「SSO」とクリックして、「SPNEGO SSO インターセプター」をリストの最上部に移動します。 「SSO オプション」メニューの「最上部に移動」を選択して、SPNEGO SSO インターセプターを移動し、「保存」をクリックします。

SSO に対応したクライアント・ブラウザーの構成

クライアント・ブラウザーで、セキュリティー設定に SPNEGO が使用されるようにセットアップする必要があります。

このタスクについて

Build Forge へのアクセスに使用されるブラウザー (Microsoft Internet Explorer または Mozilla Firefox) のクライアント・セットアップ手順に従います。

手順

  • Internet Explorer の場合、以下の手順に従います。
    1. Active Directory のドメインにログインします。 例の構成では、itdev.com にログインします。
    2. Internet Explorer を開きます。
    3. 「ツール」 > 「インターネット オプション」 > 「セキュリティ」とクリックします。
    4. 「ローカル イントラネット」を選択し、「サイト」をクリックします。
    5. 「ローカル イントラネット」ダイアログで、「ほかのゾーンにないローカル (イントラネット) のサイトをすべて含める」にチェックマークを付け、「詳細設定」をクリックします。
    6. Build Forge を実行するホストを「Web サイト」リストに追加し、「OK」をクリックします。
    7. 「OK」をクリックして、「ローカル イントラネット」ダイアログを閉じます。
    8. 「インターネット オプション」ウィンドウで、「詳細設定」タブをクリックします。
    9. 「セキュリティ」グループまでスクロールダウンして、「統合 Windows 認証を使用する」を見つけ、これが選択されていない場合は、選択します。
    10. 「OK」をクリックします。
    11. Internet Explorer を再始動します。
  • Mozilla Firefox の場合、以下の手順に従います。
    1. Active Directory のドメインにログインします。 例の構成では、itdev.com にログインします。
    2. Firefox を開きます。
    3. アドレス・フィールドに「about:config」と入力します。
    4. 「フィルタ」ボックスに「network.n」と入力します。 リストが更新されます。
    5. 「network.negotiate-auth.trusted-uris」をダブルクリックします。 トラステッド・ドメインのリストを入力します。このリストには、ディレクトリー・サーバー・ホストと Build Forge サーバー・ホスト (この例では、it_directory.mycompany.com および it_buildforge.mycompany.com) が含まれている必要があります。「OK」をクリックします。
    6. 委任をセットアップします。 「network.negotiate-auth.delegation-uris」をダブルクリックして、ブラウザーがユーザー認証を委任するサイトのリストを入力します。

SSO を使用した Build Forge へのアクセス

サーバー URL を入力して、SSO を使用したログインをテストします。

手順

  1. ユーザーの Active Directory リストにあるユーザー名を使用して、Active Directory ドメインにあるホストにログインします。
  2. ブラウザーを開きます。
  3. Build Forge サーバー・ホストの URL を入力します。 サンプルの構成では、これは http://it_buildforge.mycompany.com です。 SSO が正しく設定されていると、Build Forge 管理コンソールが表示されます。
  4. Build Forge コンソールの右上に表示されているユーザー名が、クライアントの Windows ログイン名と一致していることを確認します。

フィードバック