Microsoft Entra アプリケーション プロキシによる SharePoint へのリモート アクセスの有効化

この手順ガイドでは、オンプレミスの SharePoint ファームと Microsoft Entra アプリケーション プロキシを統合する方法について説明します。

前提条件

構成を実行するには、次のリソースが必要です。

  • SharePoint 2013 以降のファーム。 SharePoint ファームは、Microsoft Entra ID と統合されている必要があります。
  • アプリケーション プロキシが含まれるプランを使用する Microsoft Entra テナント。 詳細については、Microsoft Entra ID のプランと価格に関するページを参照してください。
  • オンプレミスの SharePoint ファームから Office ファイルを適切に起動するための Microsoft Office Web アプリ サーバー ファーム。
  • Microsoft Entra テナント内の確認済みカスタム ドメイン
  • Microsoft Entra Connect と同期されたオンプレミスの Active Directory。これによりユーザーは Azure にサインインできます。
  • 企業ドメイン内のマシンにインストールされて実行されているプライベート ネットワーク コネクタ。

アプリケーション プロキシで SharePoint を構成するには、次の2つの URL が必要です。

重要

リンクが正しくマップされるようにするには、内部 URL について次の推奨事項に従います。

  • HTTPS を使用する。
  • カスタム ポートを使用しない。
  • 企業ドメイン ネーム システム (DNS) では、エイリアス (CName) ではなく、SharePoint WFE (またはロード バランサー) を指すようにホスト (A) を作成します。

この記事では、次の値を使用しています。

  • 内部 URL: https://sharepoint
  • 外部 URL: https://spsites-demo1984.msappproxy.net/
  • SharePoint Web アプリケーションのアプリケーション プール アカウント: Contoso\spapppool

ステップ 1: Microsoft Entra ID でアプリケーション プロキシを使用するアプリケーションを構成する

この手順では、アプリケーション プロキシが使用されるアプリケーションを Microsoft Entra テナントに作成します。 外部 URL を設定し、内部 URL を指定します。どちらも、後で SharePoint において使用します。

  1. 次の設定で説明されているように、アプリを作成します。 詳細な手順については、Microsoft Entra アプリケーション プロキシを使用したアプリケーションの発行に関するページを参照してください。

    • [内部 URL]: 後で SharePoint において設定される SharePoint の内部 URL (https://sharepoint など)。
    • 事前認証: Microsoft Entra ID
    • ヘッダーの URL の変換: No
    • アプリケーション本文の URL を変換する: No

    アプリケーションとして SharePoint を発行する

  2. アプリケーションを発行したら、次の手順に従ってシングル サインオンの設定を構成します。

    1. ポータルのアプリケーション ページで [シングル サインオン] を選択します。
    2. シングル サインオン モードの場合、 [統合 Windows 認証] を選択します。
    3. [内部アプリケーション サービス プリンシパル名 (SPN)] を、先ほど設定した値に設定します。 この例では、値は HTTP/sharepoint です。
    4. [委任されたログイン ID] で、お使いの Active Directory フォレストの構成に最も適したオプションを選択します。 たとえば、フォレスト内に単一の Active Directory ドメインがある場合は、[オンプレミスのソフトウェア アセット管理アカウント名] を選択します (次のスクリーンショットを参照)。 ただし、ユーザーが SharePoint およびプライベート ネットワーク コネクタ サーバーと同じドメインに属していない場合は、[オンプレミス ユーザー プリンシパル名] を選択します (スクリーンショットには示されていません)。

    SSO のための統合 Windows 認証の構成

  3. アプリケーションの設定を完了し、[ユーザーとグループ] セクションに移動し、このアプリケーションにアクセスするユーザーを割り当てます。

ステップ 2: SharePoint Web アプリケーションを構成する

SharePoint Web アプリケーションが Microsoft Entra アプリケーション プロキシで正しく動作するには、Kerberos と適切な代替アクセス マッピングを使用して構成する必要があります。 次の 2 つのオプションを使用できます。

  • 新しい Web アプリケーションを作成し、既定のゾーンのみを使用します。 既定のゾーンを使うことが推奨されるオプションであり、SharePoint で最適なエクスペリエンスが提供されます。 たとえば、SharePoint で生成されるメール アラートのリンクは、既定のゾーンを指します。
  • 既存の Web アプリケーションを拡張して、既定以外のゾーンで Kerberos を構成します。

重要

Kerberos が正常に機能するためには、使用するゾーンに関係なく、SharePoint Web アプリケーションのアプリケーション プール アカウントは、ドメイン アカウントである必要があります。

SharePoint Web アプリケーションを作成する

  • このスクリプトは、既定のゾーンを使って新しい Web アプリケーションを作成する例を示しています。 既定のゾーンを使うことをお勧めします。

    1. SharePoint 管理シェルを起動し、スクリプトを実行します。

      # This script creates a web application and configures the Default zone with the internal/external URL needed to work with Azure AD application proxy
      # Edit variables below to fit your environment. Note that the managed account must exist and it must be a domain account
      $internalUrl = "https://sharepoint"
      $externalUrl = "https://spsites-demo1984.msappproxy.net/"
      $applicationPoolManagedAccount = "Contoso\spapppool"
      
      $winAp = New-SPAuthenticationProvider -UseWindowsIntegratedAuthentication -DisableKerberos:$false
      $wa = New-SPWebApplication -Name "SharePoint - AAD Proxy" -Port 443 -SecureSocketsLayer -URL $externalUrl -ApplicationPool "SharePoint - AAD Proxy" -ApplicationPoolAccount (Get-SPManagedAccount $applicationPoolManagedAccount) -AuthenticationProvider $winAp
      New-SPAlternateURL -Url $internalUrl -WebApplication $wa -Zone Default -Internal
      
    2. [SharePoint サーバーの全体管理] サイトを開きます。

    3. [システム設定] で、[代替アクセス マッピングの構成] を選択します。 [代替アクセス マッピング コレクション] ボックスが開きます。

    4. 新しい Web アプリケーションで表示をフィルター処理します。

      Web アプリケーションの代替アクセス マッピング

  • 既存の Web アプリケーションを新しいゾーンに拡張する場合。

    1. SharePoint 管理シェルを起動し、次のスクリプトを実行します。

      # This script extends an existing web application to Internet zone with the internal/external URL needed to work with Azure AD application proxy
      # Edit variables below to fit your environment
      $webAppUrl = "http://spsites/"
      $internalUrl = "https://sharepoint"
      $externalUrl = "https://spsites-demo1984.msappproxy.net/"
      
      $winAp = New-SPAuthenticationProvider -UseWindowsIntegratedAuthentication -DisableKerberos:$false
      $wa = Get-SPWebApplication $webAppUrl
      New-SPWebApplicationExtension -Name "SharePoint - AAD Proxy" -Identity $wa -SecureSocketsLayer -Zone Extranet -Url $externalUrl -AuthenticationProvider $winAp
      New-SPAlternateURL -Url $internalUrl -WebApplication $wa -Zone Extranet -Internal
      

    `. [SharePoint サーバーの全体管理] サイトを開きます。

    1. [システム設定] で、[代替アクセス マッピングの構成] を選択します。 [代替アクセス マッピング コレクション] ボックスが開きます。

    2. 拡張した Web アプリケーションで表示をフィルター処理します。

      拡張されたアプリケーションの代替アクセス マッピング

SharePoint Web アプリケーションがドメイン アカウントで実行されていることを確認する

SharePoint Web アプリケーションのアプリケーション プールが実行されているアカウントを特定し、それがドメイン アカウントであることを確認するには、次の手順を実行します。

  1. [SharePoint サーバーの全体管理] サイトを開きます。

  2. [セキュリティ] に移動し、[サービス アカウントの構成] を選択します。

  3. [Web アプリケーション プール - ] を選択します。

    サービス アカウントを構成するための選択肢

  4. [このコンポーネントのアカウントの選択] にドメイン アカウントが表示されていることを確認します。また、次の手順で使うので記録しておきます。

エクストラネット ゾーンの IIS サイト用に HTTPS 証明書が構成されていることを確認する

内部 URL では HTTPS プロトコル (https://SharePoint/) が使用されるため、インターネット インフォメーション サービス (IIS) サイトで証明書を設定する必要があります。

  1. Windows PowerShell コンソールを開きます。

  2. 次のスクリプトを実行して自己署名証明書を生成し、それをコンピューターの MY store に追加します。

    # Replace "SharePoint" with the actual hostname of the Internal URL of your Azure AD proxy application
    New-SelfSignedCertificate -DnsName "SharePoint" -CertStoreLocation "cert:\LocalMachine\My"
    

    重要

    自己署名証明書はテスト目的にのみ適しています。 運用環境では、代わりに証明機関が発行した証明書を使用することを強くお勧めします。

  3. インターネット インフォメーション サービス マネージャー コンソールを開きます。

  4. ツリー ビューでサーバーを展開し、[サイト] を展開し、[SharePoint - Microsoft Entra ID Proxy] サイトを選択して [バインド] を選択します。

  5. https バインドを選択して、[編集] を選択します。

  6. TLS/SSL 証明書フィールドで、SharePoint 証明書を選択してから [OK] をクリックします。

これで、Microsoft Entra アプリケーション プロキシ経由で外部から SharePoint サイトにアクセスできるようになりました。

ステップ 3: Kerberos の制約付き委任 (KCD) を構成する

ユーザーは、最初に Microsoft Entra ID で認証を行った後、Microsoft Entra プライベート ネットワーク コネクタ経由で Kerberos を使用して SharePoint に対する認証を行います。 Microsoft Entra ユーザーに代わってコネクタで Kerberos トークンを取得できるようにするには、プロトコルの切り替えで Kerberos の制約付き委任 (KCD) を構成する必要があります。 KCD の詳細については、「Kerberos の制約付き委任の概要」をご覧ください。

SharePoint サービス アカウントのサービス プリンシパル名 (SPN) を設定する

この記事では、内部 URL が https://sharepoint のため、サービス プリンシパル名 (SPN) は HTTP/sharepoint です。 これらの値は、実際の環境に対応する値に置き換える必要があります。 SharePoint アプリケーション プール アカウント Contoso\spapppool に SPN HTTP/sharepoint を登録するには、ドメインの管理者としてコマンド プロンプトから次のコマンドを実行します。

setspn -S HTTP/sharepoint Contoso\spapppool

Setspn コマンドでは、追加前にその SPN が検索されます。 SPN が既に存在する場合は、"Duplicate SPN Value" (重複する SPN 値) エラーが発生します。 既存の SPN を削除します。 -L オプションを指定して Setspn コマンドを実行して、SPN が正常に追加されたことを確認します。 このコマンドの詳細については、「Setspn」を参照してください。

SharePoint アプリケーション プール アカウントに追加された SPN への委任に対してコネクタが信頼されていることを確認する

KCD を構成して、Microsoft Entra アプリケーション プロキシ サービスがユーザー ID を SharePoint アプリケーション プール アカウントに委任できるようにします。 KCD を構成するには、プライベート ネットワーク コネクタで、Microsoft Entra ID で認証されているユーザーの Kerberos チケットを取得できるようにします。 その後、そのサーバーは、コンテキストを対象アプリケーション (この場合は SharePoint) に渡します。

KCD を構成するには、コネクタ コンピューターごとに以下の手順を実行します。

  1. ドメイン管理者としてドメイン コントローラーにサインインし、[Active Directory ユーザーとコンピューター] を開きます。

  2. Microsoft Entra プライベート ネットワーク コネクタを実行しているコンピューターを見つけます。 この例では、SharePoint Server を実行しているコンピューターです。

  3. そのコンピューターをダブルクリックし、 [委任] タブを選択します。

  4. 委任オプションが [指定されたサービスへの委任でのみこのコンピューターを信頼する] に設定されていることを確認します。 [任意の認証プロトコルを使う] を選択します。

  5. [追加] ボタンを選択し、[ユーザーまたはコンピューター] を選択して、SharePoint アプリケーション プール アカウントを特定します。 (例: Contoso\spapppool)。

  6. SPN 一覧から、先ほどサービス アカウント用に作成したものを選びます。

  7. [OK] を選択してから、もう一度 [OK] を選択して変更を保存します。

    Delegation settings

これで、外部 URL を使用して SharePoint にサインインし、Azure で認証を行うことができるようになりました。

サインイン エラーのトラブルシューティング

サイトへのサインインが機能していない場合は、コネクタ ログで問題に関する詳細情報を取得できます。コネクタを実行しているコンピューターから、イベント ビューアーを開き、[アプリケーションとサービス ログ]>[Microsoft]>[Microsoft Entra private network](Microsoft Entra プライベート ネットワーク)>[コネクタ] に移動して、[管理者] のログを調べます。

次のステップ