ADFS を使用して Web SSO 認証を構成する (Windows SharePoint Services)

この記事の内容 :

  • フェデレーション認証システムについて

  • はじめに

  • Web SSO 認証を使用するようにエクストラネット Web アプリケーションを構成する

  • ユーザーにエクストラネット Web サイトへのアクセスを許可する

  • ユーザー選択ウィンドウで作業する

  • 電子メールおよび UPN 要求で作業する

  • グループおよび組織グループ要求で作業する

フェデレーション認証システムについて

Windows SharePoint Services 3.0 では、Windows SharePoint Services 3.0 をホストするコンピュータに対して認証システムがローカルではない、フェデレーション認証シナリオをサポートしています。フェデレーション認証システムは、Web シングル サインオン (SSO) システムとも呼ばれます。Active Directory フェデレーション サービス (ADFS) を使用すると、ある企業のユーザーが自社の既存の Active Directory アカウントを使用して、別の企業がホストするサーバーにアクセスすることができます。また、ADFS により 2 社間の信頼関係が築かれ、エンド ユーザーはシームレスなワンタイム ログオンが可能になります。ADFS は、エンド ユーザーの認証に 302 リダイレクトを使用します。認証されたユーザーには、認証トークン (Cookie) が発行されます。

はじめに

ADFS を使用してエクストラネット Web アプリケーションの Web SSO 認証を構成する前に、以下の参考資料をお読みください。

  • Microsoft SharePoint Products and Technologies Team Blog entry about configuring multiple authentication providers (英語) (https://blogs.msdn.com/sharepoint/archive/2006/08/16/configuring-multiple-authentication-providers-for-sharepoint-2007.aspx)

  • ADFS のステップ バイ ステップ ガイド (https://go.microsoft.com/fwlink/?linkid=145396&clcid=0x411)。この記事で使用しているサーバー名および例は、このステップ バイ ステップ ガイドに基づいています。このガイドでは、小規模なラボ環境で ADFS をセットアップする方法を説明しています。この環境では、Trey-SharePoint という名前の新しいサーバーを Trey Research フォレストに参加させます。ステップ バイ ステップ ガイドの手順に従って、ADFS インフラストラクチャを構成してください。ただし、この記事では、要求に対応するアプリケーション モードで Windows SharePoint Services 3.0 を構成する方法を説明するため、ステップ バイ ステップ ガイドで説明している Windows NT トークン エージェント アプリケーションの構築手順をすべて実行する必要はありません。

注意

ユーザー選択ウィンドウを使用してユーザーを Windows SharePoint Services 3.0 に追加する場合、Windows SharePoint Services 3.0 はプロバイダ (この例では ADFS) に対してユーザーを検証します。したがって、Windows SharePoint Services 3.0 を構成する前に、フェデレーション サーバーを構成しておく必要があります。

重要

ADFS を認証に使用するように Windows SharePoint Services 3.0 を構成するために使用できるセットアップ プロセスは、VBScript ファイルから取得されます。このスクリプト ファイルは、SetupSharePointADFS.zip ファイルに格納されており、Microsoft SharePoint 製品とテクノロジに関するブログの [添付ファイル] セクションから入手できます。詳細については、ブログ ページの「A script to configure SharePoint to use ADFS for authentication (英語)」を参照してください。

Web SSO 認証を使用するようにエクストラネット Web アプリケーションを構成する

  1. 要求に対応するアプリケーション用の Web エージェントをインストールします。

  2. ロール プロバイダや、メンバシップ プロバイダ呼び出すことはできません Windows SharePoint Services 3.0 から ADFS と Microsoft Windows SharePoint Services 3.0 を実行している Windows Server 2003 R2 ベースのコンピュータで」(https://go.microsoft.com/fwlink/?linkid=145397&clcid=0x411) で説明している ADFS の修正プログラムをダウンロードし、インストールします。この修正プログラムは、Windows Server 2003 Service Pack 2 (SP2) に含まれています。

  3. Windows SharePoint Services 3.0 をインストールし、ファーム内のすべてのサービスおよびサーバーを構成して、新しい Web アプリケーションを作成します。既定では、このアプリケーションは Windows 認証を使用するように構成され、イントラネット ユーザーがサイトにアクセスするときのエントリ ポイントとなります。この記事で使用する例では、サイトの名前を http://trey-moss とします。

  4. 手順 2. で作成した Web アプリケーションを別の領域で拡張します。SharePoint のサーバーの全体管理 Web サイトの [アプリケーション構成の管理] ページで、[Web アプリケーションの作成または拡張] をクリックし、[既存の Web アプリケーションの拡張] をクリックして、以下の手順を実行します。

    1. ホスト ヘッダを追加します。これは、エクストラネットのユーザーに公開されるサイトの DNS 名です。この例では、extranet.treyresearch.net です。

    2. 領域を [エクストラネット] に変更します。

    3. サイトにホスト ヘッダ名を付けます。後で、エクストラネット ユーザーが解決のために照会できるように、この名前を DNS で構成します。

    4. [SSL (Secure Sockets Layer) の使用] をクリックし、ポート番号を 443 に変更します。ADFS では、SSL を使用するようにサイトを構成する必要があります。

    5. [負荷分散される URL] ボックスの ":443" というテキスト文字列を削除します。前の手順で 443 というポート番号を指定したので、インターネット インフォメーション サービス (IIS) では自動的にポート 443 が使用されます。

    6. ページ内の残りの手順を実行して、Web アプリケーションの拡張を完了します。

  5. [代替アクセス マッピング] (AAM) ページで、URL が以下の表のようになっていることを確認します。

    内部 URL 領域 領域のパブリック URL

    http://trey-moss

    既定値

    http://trey-moss

    https://extranet.treyresearch.net

    エクストラネット

    https://extranet.treyresearch.net

  6. IIS で、エクストラネット Web サイトに SSL 証明書を追加します。クライアントがサイトにアクセスするときに使用するのは extranet.treyresearch.net という名前なので、SSL 証明書がこの名前宛てに発行されていることを確認してください。

  7. 以下の手順を実行して、Web SSO を使用するように Web アプリケーションのエクストラネット領域の認証プロバイダを構成します。

    1. ファームのサーバーの全体管理サイトの [アプリケーション構成の管理] ページで、[認証プロバイダ] をクリックします。

    2. ページの右上隅にある [変更] をクリックし、Web SSO を有効にする Web アプリケーションを選択します。

    3. この Web アプリケーションにマップされている 2 つの領域 (どちらも Windows) の一覧で、[エクストラネット] 領域の [Windows] リンクをクリックします。

    4. [認証の種類] セクションの [Web シングル サインオン] をクリックします。

    5. [メンバシップ プロバイダ名] ボックスに、以下のように入力します。

      SingleSignOnMembershipProvider2

      この値をメモします。後の手順で web.config ファイルの <membership> セクションの name 要素を編集するときに、この値を追加します。

    6. [ロール マネージャ名] ボックスに、以下のように入力します。

      SingleSignOnRoleProvider2

      この値をメモします。後の手順で web.config ファイルの <roleManager> セクションの name 要素を編集するときに、この値を追加します。

    7. [クライアント統合を有効にする] 設定が [いいえ] に設定されていることを確認します。

    8. [保存] をクリックします。

これで、エクストラネット Web アプリケーションは、Web SSO を使用するように構成されました。ただし、この時点では、だれにも権限が付与されていないので、このサイトはアクセス不能です。次の手順では、このサイトにアクセスできるようにユーザーに権限を割り当てます。

注意

認証プロバイダとして WebSSO を選択した後、IIS で SharePoint サイトの匿名認証が自動的に有効になります (ユーザーの操作は不要)。この設定は、要求のみを使用したアクセスをサイトで許可するために必要です。

ユーザーにエクストラネット Web サイトへのアクセスを許可する

  1. Windows 認証を使用している既定の領域の Web サイトの web.config ファイルをテキスト エディタで開きます。

  2. <system.web> ノードの任意の場所に以下のエントリを追加します。

    <membership>

    <providers>

    <add name="SingleSignOnMembershipProvider2" type="System.Web.Security.SingleSignOn.SingleSignOnMembershipProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" fs="https://fs-server/adfs/fs/federationserverservice.asmx" />

    </providers>

    </membership>

    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">

    <providers>

    <remove name="AspNetSqlRoleProvider" />

    <add name="SingleSignOnRoleProvider2" type="System.Web.Security.SingleSignOn.SingleSignOnRoleProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" fs="https://fs-server/adfs/fs/federationserverservice.asmx" />

    </providers>

    </roleManager>

  3. fs-server の値を、リソース フェデレーション サーバー (adfsresource.treyresearch.net) に変更します。サーバーの全体管理の [認証プロバイダ] ページで正しいメンバシップ プロバイダとロール マネージャ名を入力したことを確認します。web.config にこのエントリを追加すると、Windows 認証を使用している既定の領域のサイトのユーザー選択ウィンドウにより ADFS プロバイダが認識されるようになり、ADFS 要求を解決できるようになります。これにより、Web サイトの ADFS 要求に権限を付与できます。

  4. 以下の手順を実行して、ADFS 要求にサイトへのアクセス権を付与します。

    1. サイトの管理者として、Windows 認証を使用する既定の領域の Web サイトに移動します。

    2. [サイトの操作] メニューをクリックし、[サイトの設定] をポイントして、[権限の設定 (詳細)] をクリックします。

    3. [新規] をクリックし、[ユーザーの追加] をクリックします。

    4. ユーザー要求を追加するには、[ユーザー/グループ] セクションで、電子メール アドレスまたはユーザー プリンシパル名を指定します。UPN と電子メールの両方の要求がフェデレーション サーバーから送信された場合、SharePoint は UPN を使用し、メンバシップ プロバイダに対して検証します。したがって、電子メールを使用する場合、フェデレーション サーバーで UPN 要求を無効にしておく必要があります。詳細については、「電子メールおよび UPN 要求で作業する」を参照してください。

    5. グループ要求を追加するには、[ユーザー/グループ] セクションで、SharePoint サイトで使用する要求の名前を入力します。たとえば、フェデレーション サーバーに、Adatum Contributers という名前の組織グループ要求を作成します。Windows ユーザーまたはグループを追加する場合と同様に、SharePoint サイトに「Adatum Contributers」という要求名を追加します。 この要求に [ホームのメンバ [投稿]] グループを割り当てると、このグループ要求を使用して SharePoint サイトにアクセスするすべてのユーザーに、サイトへの投稿アクセス権を付与できます。

    6. 適切なアクセス許可レベルまたは SharePoint グループを選択します。

    7. [OK] をクリックします。

  5. エクストラネット サイトの web.config ファイルをテキスト エディタで開き、<configSections> ノードに以下のエントリを追加します。

    <sectionGroup name="system.web">

    <section name="websso" type="System.Web.Security.SingleSignOn.WebSsoConfigurationHandler, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" />

    </sectionGroup>

  6. <httpModules> ノードに以下のエントリを追加します。

    <add name="Identity Federation Services Application Authentication Module" type="System.Web.Security.SingleSignOn.WebSsoAuthenticationModule, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" />

    注意

    web.config ファイルの <httpModules> ノードでは、ADFS 認証モジュールは常に SharePoint SPRequest モジュールの後に指定されている必要があります。そのセクションの最後のエントリとして ADFS 認証モジュールを追加するのが最も安全です。

  7. <system.web> ノードの任意の場所に以下のエントリを追加します。

    <membership defaultProvider="SingleSignOnMembershipProvider2">

    <providers>

    <add name="SingleSignOnMembershipProvider2" type="System.Web.Security.SingleSignOn.SingleSignOnMembershipProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

    </providers>

    </membership>

    <roleManager enabled="true" defaultProvider="SingleSignOnRoleProvider2">

    <providers>

    <add name="SingleSignOnRoleProvider2" type="System.Web.Security.SingleSignOn.SingleSignOnRoleProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

    </providers>

    </roleManager>

    <websso>

    <authenticationrequired />

    <auditlevel>55</auditlevel>

    <urls>

    <returnurl>https://your_application</returnurl>

    </urls>

    <fs>https://fs-server/adfs/fs/federationserverservice.asmx</fs>

    <isSharePoint />

    </websso>

    注意

    fs-server の値をフェデレーション サーバーのコンピュータに変更し、your_application の値をエクストラネット Web アプリケーションの URL に変更します。

  8. エクストラネット Web サイト https://extranet.treyresearch.net に対する権限を持つ ADFS ユーザーとして、このサイトを参照します。

サーバーの全体管理の使用について

サーバーの全体管理のポリシーを使用して ADFS ユーザーに権限を付与することもできますが、この方法は以下の理由で最適ではありません。

  • ポリシーによって権限を付与するのは、非常に粗雑な方法です。この方法を使用すると、ユーザー (またはグループ) に対して、Web アプリケーション全体のすべてのサイト コレクションのすべての Web サイトで同じ一連の権限を付与できます。この方法は非常に慎重に使用する必要があります。特に、この記事で説明しているシナリオでは、この方法を使わなくても ADFS ユーザーにアクセスを許可できます。

  • エクストラネット環境でサイトを使用した後、サイトおよびコンテンツへのアクセスを許可するのは、通常は内部のユーザーの責任となります。サーバーの全体管理サイトへのアクセス権を持っているのはファーム管理者だけなので、Windows 認証を使用している既存の領域のサイトから内部のユーザーが ADFS 要求を追加できるのは、最も理に適っています。

  • 異なる複数のプロバイダを使用して Web アプリケーションを拡張する場合、それぞれの Web アプリケーションで使用しているさまざまなプロバイダからユーザーおよびグループを検索できるように、1 つ以上の Web アプリケーションを構成できます。このシナリオでは、そのサイトのユーザーが他の Windows ユーザー、Windows グループ、および ADFS 要求をすべて 1 つのサイトから選択できるように、Windows 認証を使用するサイトを構成しました。

ユーザー選択ウィンドウで作業する

ユーザー選択ウィンドウでは、ワイルドカード検索でロールを検索することはできません。Readers という名前の Web SSO ロール プロバイダのロールがある場合、ユーザー選択ウィンドウの検索ダイアログ ボックスに「Read」と入力しても Readers は見つかりません。「Readers」と入力した場合は見つかります。これはバグではありません。ロール プロバイダを使用してワイルドカード検索を実行できないだけです。

既定では、stsadm.exe などのコマンド ライン実行可能ファイルで ADFS 要求を解決することはできません。たとえば、stsadm.exe –o adduser コマンドを使用してエクストラネット サイトに新しいユーザーを追加する場合、Stsadm (またはその他の実行可能ファイル) でユーザーを解決できるようにするには、以下の手順を実行して新しい .config ファイルを作成します。

  • stsadm.exe と同じディレクトリ (%programfiles%\Common Files\Microsoft Shared Debug\Web Server Extensions\12\BIN) に、stsadm.exe.config という名前の新しいファイルを作成します。stsadm.exe.config ファイルに以下のエントリを追加します。

    <configuration>

    <system.web>

    <membership defaultProvider="SingleSignOnMembershipProvider2">

    <providers>

    <add name="SingleSignOnMembershipProvider2" type="System.Web.Security.SingleSignOn.SingleSignOnMembershipProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" fs="https://fs-server/adfs/fs/federationserverservice.asmx" />

    </providers>

    </membership>

    <roleManager enabled="true" defaultProvider="SingleSignOnRoleProvider2">

    <providers>

    <add name="SingleSignOnRoleProvider2" type="System.Web.Security.SingleSignOn.SingleSignOnRoleProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" fs="https://fs-server/adfs/fs/federationserverservice.asmx" />

    </providers>

    </roleManager>

    </system.web>

    </configuration>

    注意

    fs-server の値を、リソース フェデレーション サーバー (adfsresource.treyresearch.net) に変更します。

電子メールおよび UPN 要求で作業する

Windows SharePoint Services 3.0 への電子メールまたは UPN 要求の送信をフェデレーション サーバーで有効にするかどうかを構成するには、以下の手順を実行します。

フェデレーション サーバーで電子メールおよび UPN 要求を構成する

  1. フェデレーション サーバーの [管理ツール] から、ADFS スナップインを開きます。

    注意

    [ファイル名を指定して実行] ダイアログ ボックスで、「ADFS.MSC」と入力して ADFS スナップインを開くこともできます。

  2. Windows SharePoint Services 3.0 アプリケーション ノードを選択します (既にアプリケーション ノードをノード リストに追加している必要があります)。

  3. 右側の要求リストで [電子メール] を右クリックし、[有効] または [無効] を選択します。

  4. 右側の要求リストで [UPN] を右クリックし、[有効] または [無効] をクリックします。

    注意

    UPN と電子メールの両方を有効にした場合、Windows SharePoint Services 3.0 は UPN を使用して、ユーザー要求の検証を実行します。したがって、Windows SharePoint Services 3.0 を構成するときには、どちらのユーザー要求を入力するか注意してください。また、フェデレーション サーバーが受け取る UPN サフィックスと電子メールのサフィックスが同一の場合には、常に UPN 要求だけが有効です。これは、メンバシップ プロバイダが電子メールに基づいているためです。UPN 要求の構成はこのように複雑なので、メンバシップ認証のユーザー要求設定には電子メールをお勧めします。

グループおよび組織グループ要求で作業する

Windows SharePoint Services 3.0 では、Active Directory グループを SharePoint グループに追加するかアクセス許可レベルに直接追加することによって、グループに権限を割り当てることができます。特定のユーザーがサイトに対して持つアクセス許可レベルは、そのユーザーがメンバとなっている Active Directory グループ、そのユーザーが所属する SharePoint グループ、およびそのユーザーが直接追加されているアクセス許可レベルに基づいて計算されます。

Windows SharePoint Services 3.0 でのロール プロバイダとして ADFS を使用する場合は、処理が異なります。Web SSO プロバイダが Active Directory グループを直接解決する方法はありません。代わりに、Web SSO プロバイダは組織グループ要求を使用してメンバシップを解決します。Windows SharePoint Services 3.0 で ADFS を使用する場合は、ADFS 内に一連の組織グループ要求を作成する必要があります。その後、ADFS の組織グループ要求に複数の Active Directory グループを関連付けることができます。

最新バージョンの ADFS でグループ要求を扱うには、ADFS サーバーで IIS の ADFS アプリケーションの web.config ファイルを編集する必要があります。

web.config ファイルを開き、以下の例に示すように、<getGroupClaims /> を、<System.Web> ノード内部の <FederationServerConfiguration> ノードに追加します。

<configuration>
     <system.web>
          <FederationServerConfiguration>
               <getGroupClaims />
          </FederationServerConfiguration>
     </system.web>
</configuration>

Adatum (アカウント フォレスト) で、以下の手順を実行します。

  1. Trey SharePoint Readers という名前の Active Directory グループを作成します。

  2. Trey SharePoint Contributors という名前の Active Directory グループを作成します。

  3. Alansh を Readers グループに追加し、Adamcar を Contributors グループに追加します。

  4. Trey SharePoint Readers という名前の組織グループ要求を作成します。

  5. Trey SharePoint Contributors という名前の組織グループ要求を作成します。

  6. [Active Directory] アカウント ストアを右クリックし、[新規作成] の [グループの要求の抽出] をクリックします。

    1. [Trey SharePoint Readers] 組織グループ要求を選択し、[Trey SharePoint Readers] Active Directory グループと関連付けます。

    2. 手順 6. を繰り返し、[Trey SharePoint Contributors] グループ要求を [Trey SharePoint Contributors] Active Directory グループと関連付けます。

  7. [Trey Research] アカウント パートナを右クリックし、外部への要求のマッピングを作成します。

    1. [Trey SharePoint Reader] 要求を選択し、外部への要求 adatum-trey-readers にマップします。

    2. [Trey SharePoint Contributor] 要求を選択し、外部への要求 adatum-trey-contributors にマップします。

注意

要求のマッピング名を組織間で協議し、正確に一致させる必要があります。

Trey Research 側で、ADFS.MSC を起動し、以下の手順を実行します。

  1. Adatum SharePoint Readers という名前の組織グループ要求を作成します。

  2. Adatum SharePoint Contributors という名前の組織グループ要求を作成します。

  3. 要求に対する外部からのグループ マッピングを作成します。

    1. [Adatum] アカウント パートナを右クリックし、[入力方向のグループ要求のマッピング] をクリックします。

    2. [Adatum SharePoint Readers] を選択し、外部からの要求名 adatum-trey-readers にマップします。

    3. [Adatum SharePoint Contributors] を選択し、外部からの要求名 adatum-trey-contributors にマップします。

  4. [Windows SharePoint Services 3.0] Web アプリケーションを右クリックし、Reader 要求と Contributor 要求の両方で [有効] をクリックします。

Trey Research 側で、サイト管理者として http://trey-moss サイトを参照し、以下の手順を実行します。

  1. [サイトの操作] メニューをクリックし、[サイトの設定] をポイントして、[ユーザーとグループ] をクリックします。

  2. サイトの [メンバ] グループが選択されていない場合は、これをクリックします。

  3. [新規] をクリックし、ツール バーの [ユーザーの追加] をクリックします。

  4. [ユーザー/グループ] ボックスの横のアドレス帳アイコンをクリックします。

  5. [ユーザー選択ウィンドウ] ダイアログ ボックスの [検索] ボックスに、以下のように入力します。

    Adatum SharePoint Readers

    [権限の付与] セクションで、[SharePoint グループ] として [ホームの閲覧者 [閲覧]] を選択します。

  6. [検索] ボックスに、以下のように入力します。

    Adatum SharePoint Contributors

    [権限の付与] セクションで、[SharePoint グループ] として [ホームのメンバ [投稿]] を選択します。

このブックをダウンロードする

のトピックは、簡単に読んだり印刷したりできるように、次のダウンロード可能なドキュメントに収められています。

入手可能なドキュメントの詳細な一覧については、「Windows SharePoint Services のダウンロード可能なコンテンツ」を参照してください。