SAML セキュリティ トークンを使用して認証を構成する (SharePoint Foundation 2010)

 

適用先: SharePoint Foundation 2010

この記事の手順では、Microsoft SharePoint Foundation 2010 のクレーム ベース Web アプリケーションの SAML (Security Assertion Markup Language) セキュリティ トークンを使用して認証を構成する方法を説明します。

SAML サインインは、通常、ビジネス パートナーにアクセスを提供するなどのエンタープライズ フェデレーション シナリオで使われます。SAML サインインは、SharePoint Foundation 2010 が含まれているフォレストに属さないドメイン内にアカウントがある内部ユーザーにアクセスを提供するためにも展開されます。

SAML セキュリティ トークンを使用して SharePoint Foundation 2010 クレームベース Web アプリケーションの認証を構成する前に、Active Directory フェデレーション サービス (AD FS) 2.0 を実行するサーバーを構成する必要があります。AD FS 2.0 を実行するようにサーバーを構成する方法については、AD FS 2.0 の展開に関するガイド (英語) (https://go.microsoft.com/fwlink/?linkid=191723&clcid=0x411) (英語) を参照してください。

この記事の内容

  • ID プロバイダー STS (IP-STS) Web アプリケーションを Windows PowerShell で構成する

  • 証明書利用者 STS (RP-STS) Web アプリケーションを構成する

  • ID プロバイダー STS (IP-STS) との信頼関係を Windows PowerShell で確立する

  • 信頼できる IP-STS 証明書を Windows PowerShell でエクスポートする

  • クレーム マッピング用の一意識別子を Windows PowerShell で定義する

  • SharePoint Web アプリケーションを新たに作成し、SAML サインインを使うように構成する

ID プロバイダー STS (IP-STS) Web アプリケーションを Windows PowerShell で構成する

Windows PowerShell を使用してクレーム ベースの SharePoint Web アプリケーションを構成するには、次の手順を実行します。

ID プロバイダー STS (IP-STS) Web アプリケーションを Windows PowerShell で構成するには

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 Products] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

  5. Windows PowerShell コマンド プロンプトから、次のようにして x509Certificate2 オブジェクトを作成します。

    $cert = New-Object
    System.Security.Cryptography.X509Certificates.X509Certificate2("path to cert file")
    
  6. 信頼できる認証プロバイダーで使用するクレームの種類のマッピングを作成します。以下に例を示します。

    New-SPClaimTypeMapping "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
    -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
    
  7. 信頼済みログイン プロバイダーを作成するために、まず realm パラメーターの値を次のようにして作成します。

    $realm = "urn:" + $env:ComputerName + ":domain-int"
    
  8. Security Token Service Web アプリケーションを指す signinurl パラメーターの値を作成します。以下に例を示します。

    $signinurl = "https://test-2/FederationPassive/"
    
  9. クレームのマッピングと同じ IdentifierClaim 値 ($map1.InputClaimType) を使用して、信頼できるログイン プロバイダーを作成します。以下に例を示します。

    $ap = New-SPTrustedIdentityTokenIssuer -Name
    "WIF" -Description "Windows® Identity Foundation" -Realm
    $realm -ImportTrustCertificate $cert
    -ClaimsMappings $map1[,$map2..] -SignInUrl
    $signinurl -IdentifierClaim $map1.InputClaimType
    
  10. 最初にアプリケーション プール アカウント (現在のユーザー用) の値を作成することによって、Web アプリケーションを作成します。以下に例を示します。

    $account = "DOMAIN\" + $env:UserName
    

    注意

    アプリケーション プール アカウントは、管理アカウントである必要があります。管理アカウントを作成するには、New-SPManagedAccount を使用します。

  11. Web アプリケーション URL の値を作成します ($webappurl = "https://" + $env:ComputerName)。以下に例を示します。

    $wa = New-SPWebApplication -name "Claims WIF"
    -SecureSocketsLayer -ApplicationPool "SharePoint SSL"
    -ApplicationPoolAccount $account -Url $webappurl -Port 443
    -AuthenticationProvider $ap
    
  12. 最初に claim オブジェクトを作成することによって、サイトを作成します。以下に例を示します。

    $claim = New-SPClaimsPrincipal
    -TrustedIdentityTokenIssuerr $ap -Identity
    $env:UserName
    
  13. サイトを作成します。以下に例を示します。

    $site = New-SPSite $webappurl -OwnerAlias
    $claim.ToEncodedString() -template "STS#0"
    

証明書利用者 STS (RP-STS) Web アプリケーションを構成する

このセクションの手順で証明書利用者 STS Web アプリケーションを構成します。

証明書利用者 STS (RP-STS) Web アプリケーションを構成するには

  1. Active Directory フェデレーション サービス (AD FS) 2.0 管理コンソールを開きます。

  2. 左側のウィンドウで、[ポリシー] を展開し、[証明書利用者] を選択します。

  3. 右側のウィンドウで、[証明書利用者の追加] をクリックします。Active Directory フェデレーション サービス (AD FS) 2.0 構成ウィザードが開始されます。

  4. ウィザードの最初のページで、[開始] をクリックします。

  5. [証明書利用者構成を手動で入力する] を選択し、[次へ] をクリックします。

  6. 証明書利用者名を入力し、[次へ] をクリックします。

  7. [Active Directory フェデレーション サービス (AD FS) 2.0 サーバー プロファイル] を選択し、[次へ] をクリックします。

  8. 暗号証明書は使いません。[次へ] をクリックします。

  9. [Web ブラウザー ベースの ID フェデレーションのサポートの有効化] を選択します。

  10. Web アプリケーション URL の名前を入力し、「/_trust/」を追加します (例: https://servername/_trust/)。[次へ] をクリックします。

  11. 識別子の名前 (たとえば、urn:COMPUTERNAME:Geneva) を入力し、[追加] をクリックします。[次へ] をクリックします。

  12. 概要ページで、[次へ] をクリックし、[閉じる] をクリックします。ルール エディター管理コンソールが開きます。このコンソールを使用して、LDAP Web アプリケーションから SharePoint へのクレームのマッピングを構成します。

  13. 左側のウィンドウで、[新しいルール] を展開し、[定義済みルール] を選択します。

  14. [LDAP 属性ストアからクレームを作成] を選択します。

  15. 右側のウィンドウで、[属性ストア] ドロップダウン リストから [エンタープライズ Active Directory ユーザー アカウント ストア] を選択します。

  16. [LDAP 属性] で、[sAMAccountName] を選択します。

  17. [出力方向のクレームの種類] で、[電子メール アドレス] を選択します。

  18. 左側のウィンドウで、[保存] をクリックします。

ID プロバイダー STS (IP-STS) との信頼関係を Windows PowerShell で確立する

このセクションの手順で IP-STS との信頼関係を確立します。

IP-STS との信頼関係を Windows PowerShell で確立するには

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 Products] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

  5. Windows PowerShell コマンド プロンプトから、次のようにして信頼関係を確立します。

    $waurl = "https://" + $env:ComputerName
    $title = "SAML-Claims"
    

信頼できる IP-STS 証明書を Windows PowerShell でエクスポートする

このセクションの手順で、信頼関係を確立する IP-STS の証明書をエクスポートし、Microsoft SharePoint Foundation 2010 からアクセス可能な場所にコピーします。

信頼できる IP-STS 証明書を Windows PowerShell でエクスポートするには

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 Products] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

  5. Windows PowerShell コマンド プロンプトから、信頼できる IP-STS 証明書を次のようにしてエクスポートします。

    $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("c:\geneva.cer")
    

クレーム マッピング用の一意識別子を Windows PowerShell で定義する

このセクションの手順で、クレーム マッピング用の一意識別子の役割をする電子メール アドレスを定義します。通常、この情報は信頼できる STS の管理者が提供する必要があります。各ユーザーでトークンのどの値が常に一意になるのかわかるのは STS の所有者だけだからです。信頼できる STS の管理者が、電子メール アドレスを表す URI を作成できることに注意してください。

クレーム マッピング用の一意識別子を Windows PowerShell で定義するには

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 Products] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

  5. Windows PowerShell コマンド プロンプトから、次のようにしてマッピングを作成します。

    $map = New-SPClaimTypeMapping -IncomingClaimType "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
    

認証プロバイダーを新たに作成する

このセクションの手順で、Web アプリケーションで使われる認証プロバイダーを新たに作成します。

Windows PowerShell で認証プロバイダーを新たに作成するには

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 Products] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

  5. Windows PowerShell コマンド プロンプトから、次のようにして認証プロバイダーを新たに作成します。realm は、信頼できる STS が特定の SharePoint ファームを識別するために使用するパラメーターです。

    $realm = "urn:" + $env:ComputerName + ":Geneva"
    $ap = New-SPTrustedIdentityTokenIssuer -Name "Geneva" -Description "Geneva" -Realm $realm -ImportTrustCertificate $cert -ClaimsMappings $map -SignInUrl "https://test-2/FederationPassive/" -IdentifierClaim "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
    

SharePoint Web アプリケーションを新たに作成し、SAML サインインを使うように構成する

このステップで、Web アプリケーションを作成して、構成します。

Windows PowerShell で、SharePoint Web アプリケーションを新たに作成して、SAML サインインを使うように構成するには

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 Products] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

  5. Windows PowerShell コマンド プロンプトから、SharePoint Web アプリケーションを作成して、SAML サインインを使うように構成します。なお、"WebAppUrl" と "domain\admin" は、それぞれ有効な値に置き換える必要があります。

    $wa = New-SPWebApplication -Name "SAML Sign-In" -SecureSocketsLayer -ApplicationPool "SAML Sign-In" -ApplicationPoolAccount "domain\admin" -
    Url "WebAppUrl" -Port 443 -AuthenticationProvider $ap
    

    注意

    SAML サインインではユーザーのシングル サインオン チケットとして Cookie が使われるので、SSL を有効にするのが普通です。これで管理者は、トークンが有効な間はユーザーを再認証しなくても SharePoint リソースにアクセスできます。SSL を有効にしないと、これらの Cookie は悪意のあるユーザーにたやすく奪われ、ユーザー本人になりすます目的で利用される可能性があります。

以上の手順を完了したら、SharePoint サイトを作成して所有者を割り当てます。SharePoint サイトの作成については、「サイト コレクションを作成する (SharePoint Foundation 2010)」を参照してください。