この手順ガイドでは、オンプレミスの SharePoint ファームと Microsoft Entra アプリケーション プロキシを統合する方法について説明します。
[前提条件]
構成を実行するには、次のリソースが必要です。
- SharePoint 2013 以降のファーム。 SharePoint ファームは、Microsoft Entra ID と統合されている必要があります。
- アプリケーション プロキシを含むプランを持つ Microsoft Entra テナント。 Microsoft Entra IDプランと価格の詳細については、こちらを参照してください。
- オンプレミスの SharePoint ファームから Office ファイルを適切に起動するための Microsoft Office Web Apps Server ファーム。
- Microsoft Entra テナント内の確認済みカスタム ドメイン。
- オンプレミスの Active Directory デプロイは Microsoft Entra Connect と同期され、ユーザーは Azure にサインインできます。
- 企業ドメイン内のマシンにインストールされ、実行されているプライベート ネットワーク コネクタ。
アプリケーション プロキシを使用して SharePoint を構成するには、次の 2 つの URL が必要です。
- 外部 URL。エンド ユーザーに表示され、Microsoft Entra で決定されます。 この URL ではカスタム ドメインを使用できます。 詳しくは、Microsoft Entra アプリケーション プロキシでのカスタム ドメインの使用に関するページを参照してください。
- 内部 URL。企業ドメイン内でのみ認識され、直接使用されることはありません。
重要
リンクが正しくマップされるようにするには、内部 URL について次の推奨事項に従います。
- HTTPS を使用する。
- カスタム ポートを使用しない。
- エイリアス (
A
レコード) ではなく、SharePoint Web フロントエンド (WFE) (またはロード バランサー) を指すホスト (CName
レコード) を企業ドメイン ネーム システム (DNS) に作成します。
この記事では、次の値を使用しています。
- 内部 URL:
https://sharepoint
。 - 外部 URL:
https://spsites-demo1984.msappproxy.net/
。 - SharePoint Web アプリケーションのアプリケーション プール アカウント:
Contoso\spapppool
。
手順 1: アプリケーション プロキシを使用する Microsoft Entra ID でアプリケーションを構成する
この手順では、アプリケーション プロキシを使用するアプリケーションを Microsoft Entra テナントに作成します。 外部 URL を設定し、内部 URL を指定します。どちらも、後で SharePoint において使用します。
次の設定で説明されているように、アプリを作成します。 詳細な手順については、Microsoft Entra アプリケーション プロキシを使用したアプリケーションの発行に関するページを参照してください。
-
内部 URL:
https://sharepoint
など、SharePoint で後で設定される SharePoint 内部 URL。 -
事前認証:
Microsoft Entra ID
。 -
ヘッダー内の URL を翻訳する:
No
。 -
アプリケーション本文で URL を翻訳する:
No
。
-
内部 URL:
アプリが発行されたら、次の手順に従ってシングル サインオン設定を構成します。
- ポータルのアプリケーション ページで、[ シングル サインオン] を選択します。
- シングル サインオン モードの場合は、[統合 Windows 認証] を選択します。
-
内部アプリケーション サービス プリンシパル名 (SPN) を、前に設定した値に設定します。 この例では、値は
HTTP/sharepoint
です。 - [委任されたログイン ID] で、お使いの Active Directory フォレストの構成に最も適したオプションを選択します。 たとえば、フォレスト内に単一の Active Directory ドメインがある場合は、[オンプレミスのソフトウェア アセット管理アカウント名] を選択します (次のスクリーンショットを参照)。 ただし、ユーザーが SharePoint およびプライベート ネットワーク コネクタ サーバーと同じドメインにない場合は、 オンプレミスのユーザー プリンシパル名 (スクリーンショットには表示されません) を選択します。
アプリケーションの設定を完了し、[ ユーザーとグループ ] セクションに移動し、このアプリケーションにアクセスするユーザーを割り当てます。
ステップ 2: SharePoint Web アプリケーションを構成する
SharePoint Web アプリケーションが Microsoft Entra アプリケーション プロキシで正しく動作するには、Kerberos と適切な代替アクセス マッピングを使用して構成する必要があります。 次の 2 つのオプションを使用できます。
- 新しい Web アプリケーションを作成し、 既定 のゾーンのみを使用します。 既定のゾーンを使用することが推奨されるオプションであり、SharePoint で最適なエクスペリエンスを提供します。 たとえば、SharePoint によって生成される電子メール アラート内のリンクは 、既定 のゾーンを指します。
- 既存の Web アプリケーションを拡張して、既定以外のゾーンで Kerberos を構成します。
重要
使用されているゾーンに関係なく、SharePoint Web アプリケーションのアプリケーション プール アカウントは、Kerberos が正常に動作するためのドメイン アカウントである必要があります。
SharePoint Web アプリケーションを作成する
このスクリプトは、 既定 のゾーンを使用して新しい Web アプリケーションを作成する例を示しています。 既定のゾーンを使用することをお勧めします。
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
[SharePoint サーバーの全体管理] サイトを開きます。
[システム設定] で、[代替アクセス マッピングの構成] を選択します。 [代替アクセス マッピング コレクション] ボックスが開きます。
新しい Web アプリケーションでディスプレイをフィルター処理します。
既存の Web アプリケーションを新しいゾーンに拡張する場合。
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 サーバーの全体管理] サイトを開きます。
[システム設定] で、[代替アクセス マッピングの構成] を選択します。 [代替アクセス マッピング コレクション] ボックスが開きます。
拡張された Web アプリケーションで表示をフィルター処理します。
SharePoint Web アプリケーションがドメイン アカウントで実行されていることを確認する
SharePoint Web アプリケーションのアプリケーション プールが実行されているアカウントを特定し、それがドメイン アカウントであることを確認するには、次の手順を実行します。
[SharePoint サーバーの全体管理] サイトを開きます。
[セキュリティ] に移動し、[サービス アカウントの構成] を選択します。
[Web アプリケーション プール -
] を選択します。次の手順で使用するため、 このコンポーネントのアカウントを選択 するとドメイン アカウントが返されることを確認し、覚えておいてください。
エクストラネット ゾーンの IIS サイトに対して HTTPS 証明書が構成されていることを確認します
内部 URL では HTTPS プロトコル (https://SharePoint/
) が使用されるため、インターネット インフォメーション サービス (IIS) サイトで証明書を設定する必要があります。
Windows PowerShell コンソールを開きます。
次のスクリプトを実行して自己署名証明書を生成し、コンピューターの
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"
重要
自己署名証明書はテスト目的にのみ適しています。 運用環境では、代わりに証明機関が発行した証明書を使用することを強くお勧めします。
インターネット インフォメーション サービス マネージャー コンソールを開きます。
ツリー ビューでサーバーを展開し、[サイト] を展開し、[SharePoint - Microsoft Entra ID Proxy] サイトを選択して [バインド] を選択します。
https バインドを選択して、[編集] を選択します。
[トランスポート層セキュリティ (TLS) 証明書] フィールドで、[ 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 アプリケーション プール アカウント HTTP/sharepoint
に SPN Contoso\spapppool
を登録するには、ドメインの管理者としてコマンド プロンプトから次のコマンドを実行します。
setspn -S HTTP/sharepoint Contoso\spapppool
Setspn
コマンドでは、追加前にその SPN が検索されます。 SPN が既に存在する場合は、"Duplicate SPN Value" (重複する SPN 値) エラーが発生します。 既存の SPN を削除します。
Setspn
オプションを指定して -L
コマンドを実行して、SPN が正常に追加されたことを確認します。 コマンドの詳細については、「 Setspn」を参照してください。
SharePoint アプリケーション プール アカウントに追加された SPN への委任に対してコネクタが信頼されていることを確認する
KCD を構成して、Microsoft Entra アプリケーション プロキシ サービスがユーザー ID を SharePoint アプリケーション プール アカウントに委任できるようにします。 プライベート ネットワーク コネクタで、Microsoft Entra ID で認証されたユーザーの Kerberos チケットを取得できるようにすることで、KCD を構成します。 その後、そのサーバーは、コンテキストを対象アプリケーション (この場合は SharePoint) に渡します。
KCD を構成するには、コネクタ コンピューターごとに以下の手順を実行します。
ドメイン管理者としてドメイン コントローラーにサインインし、[Active Directory ユーザーとコンピューター] を開きます。
Microsoft Entra プライベート ネットワーク コネクタを実行しているコンピューターを見つけます。 この例では、SharePoint Server を実行しているコンピューターです。
そのコンピューターをダブルクリックし、 [委任] タブを選択します。
委任オプションが [指定されたサービスへの委任でのみこのコンピューターを信頼する] に設定されていることを確認します。 次に、[ 任意の認証プロトコルを使用する] を選択します。
[追加] ボタンを選択し、[ユーザーまたはコンピューター] を選択して、SharePoint アプリケーション プール アカウントを特定します。 たとえば、
Contoso\spapppool
と指定します。SPN の一覧で、前にサービス アカウント用に作成したサービス アカウントを選択します。
[OK] を選択してから、もう一度 [OK] を選択して変更を保存します。
これで、外部 URL を使用して SharePoint にサインインし、Azure で認証を行うことができるようになりました。
サインイン エラーのトラブルシューティング
サイトへのサインインが機能していない場合は、コネクタ ログで問題の詳細を確認できます。コネクタを実行しているコンピューターから、イベント ビューアーを開き、 アプリケーションとサービス ログ>Microsoft>Microsoft Entra プライベート ネットワーク>Connector に移動し、 管理者 ログを調べます。