Microsoft 365 と Microsoft Entra ID のフェデレーション証明書を更新する

概要

Microsoft Entra ID と Active Directory Federation Services (AD FS) とのフェデレーションが正常に機能するためには、AD FS が Microsoft Entra ID に提示するセキュリティ トークンに署名するときに使う証明書が、Microsoft Entra ID 側の構成内容と一致している必要があります。 完全に一致していないと、信頼関係が失われる可能性があります。 この情報は、AD FS と Web アプリケーション プロキシ (エクストラネット アクセスに使用される) をデプロイするときに Microsoft Entra ID によって同期されます。

Note

この記事では、フェデレーション認定資格証の管理に関する情報を提供します。 緊急ローテーションに関する情報については、「AD FS 証明書の緊急ローテーション」をご覧ください

この記事では、トークン署名証明書を管理し、Microsoft Entra ID との同期状態を維持する方法について詳しく説明します。以下のケースを想定しています。

  • Web アプリケーション プロキシをデプロイしていないため、エクストラネットではフェデレーション メタデータを利用できない。
  • トークン署名証明書に AD FS の既定の構成を使用していない。
  • サード パーティの ID プロバイダーを使用している。

重要

Microsoft では、証明書を保護し、セキュリティで保護するために、ハードウェア セキュリティ モジュール (HSM) を使用することを強く推奨します。 詳細については、AD FS をセキュリティ保護するためのベスト プラクティスの「ハードウェア セキュリティ モジュール」を参照してください。

トークン署名証明書に使用する AD FS の既定の構成

通常、トークン署名証明書とトークン暗号化解除証明書は自己署名証明書であり、有効期間は 1 年です。 AD FS には AutoCertificateRolloverと呼ばれる自動更新プロセスが既定で含まれています。 AD FS 2.0 以降を使用している場合、Microsoft 365 と Microsoft Entra ID により、証明書は期限切れになる前に自動的に更新されます。

Microsoft 365 管理センターからの更新の通知またはメール

注意

Office の証明書を更新するよう求めるメールが届いた場合は、トークン署名証明書に対する変更の管理についての記載を参照して、何らかの対処が必要かどうかを確認してください。 実際には対処が不要であるにもかかわらず証明書の更新を求める通知が送信される問題が確認されています。

Microsoft Entra ID は、フェデレーション メタデータを監視し、その結果に応じてトークン署名証明書の更新を試みます。 トークン署名証明書の有効期限が切れる 35 日前に、Microsoft Entra ID がフェデレーション メタデータをポーリングして新しい証明書が利用可能かどうかをチェックします。

  • フェデレーション メタデータをポーリングして新しい証明書を取得できた場合、メール通知はユーザーに送信されません。
  • フェデレーション メタデータにアクセスできないか、証明書の自動ロールオーバーが有効になっていないことが原因で、新しいトークン署名証明書を取得できない場合は、Microsoft Entra ID によって、Office 365 ポータルで子メールが発行されます。

重要

AD FS を使用している場合、ビジネス継続性を確保するために、既知の問題による認証エラーを防止する更新プログラムがサーバーに適用されていることを確認してください。該当する更新プログラムは次のとおりです。 以後、更新期間における AD FS プロキシ サーバーの既知の問題が軽減されます。

Server 2012 R2 - Windows Server 2014 年 5 月の更新プログラム ロールアップ

Server 2008 R2 および 2012 - Windows Server 2012 または Windows 2008 R2 SP1 で、プロキシ経由の認証に失敗する

証明書の更新が必要かどうかを確認する

手順 1:AutoCertificateRollover の状態を確認する

AD FS サーバーで PowerShell を開きます。 AutoCertificateRollover の値が True に設定されていることを確認します。

Get-Adfsproperties

AutoCertificateRollover

注意

AD FS 2.0 を使用している場合は、最初に Add-Pssnapin Microsoft.Adfs.Powershell を実行してください。

手順 2: AD FS と Microsoft Entra ID が同期されていることを確認する

AD FS Server で MSOnline PowerShell プロンプトを開き、Microsoft Entra ID に接続します。

Note

MSOL-Cmdlets は、MSOnline PowerShell モジュールの一部です。 PowerShell ギャラリーから MSOnline PowerShell モジュールを直接ダウンロードできます。

Install-Module MSOnline

Note

Azure AD および MSOnline PowerShell モジュールは、2024 年 3 月 30 日の時点で非推奨となります。 詳細については、非推奨の最新情報を参照してください。 この日以降、これらのモジュールのサポートは、Microsoft Graph PowerShell SDK への移行支援とセキュリティ修正プログラムに限定されます。 非推奨になるモジュールは、2025 年 3 月 30 日まで引き続き機能します。

Microsoft Entra ID (旧称 Azure AD) を使用するには、Microsoft Graph PowerShell に移行することをお勧めします。 移行に関する一般的な質問については、「移行に関する FAQ」を参照してください。 注: MSOnline のバージョン 1.0.x では、2024 年 6 月 30 日以降に中断が発生する可能性があります。

MSOnline PowerShell-Module を使用して Microsoft Entra ID に接続します。

Import-Module MSOnline
Connect-MsolService

AD FS と Microsoft Entra ID との間の信頼関係のプロパティで証明書が構成されていることを特定のドメインを指定して確認します。

Get-MsolFederationProperty -DomainName <domain.name> | FL Source, TokenSigningCertificate

Get-MsolFederationProperty

両方の出力結果において拇印が一致した場合、Microsoft Entra ID 側と証明書が同期されています。

手順 3:証明書の有効期限が迫っているかどうかを確認する

Get-MsolFederationProperty または Get-AdfsCertificate のいずれかの出力で、"Not After" の日付を確認します。日付が 35 日未満になった場合は、アクションを実行する必要があります。

AutoCertificateRollover Microsoft Entra ID と同期する証明書 フェデレーション メタデータにパブリックにアクセス可能 有効期限までの日数 アクション
はい イエス はい - 対処は必要ありません。 「 トークン署名証明書を自動的に更新する」を参照してください。
はい いいえ - 15 日未満 すぐに更新してください。 「 トークン署名証明書を手動で更新する」を参照してください。
いいえ - - 35 日未満 すぐに更新してください。 「 トークン署名証明書を手動で更新する」を参照してください。

[-] 該当せず

次の 2 点両方に該当する場合は、手動の手順を実行する必要はありません。

  • Web アプリケーション プロキシをデプロイ済みで、エクストラネットからフェデレーション メタデータへのアクセスを有効にできる。
  • AD FS の既定の構成を使用している (AutoCertificateRollover が有効である)。

証明書を自動的に更新できるかどうかを確認するには、次の点をチェックしてください。

1.AD FS の AutoCertificateRollover プロパティが True に設定されている。 これは、有効期限が切れる前に、AD FS が新しいトークン署名証明書とトークン暗号化解除証明書を自動的に生成することを示します。

2.AD FS のフェデレーション メタデータへのパブリック アクセスが確保されている。 (社内ネットワークの外部の) パブリック インターネット上のコンピューターで次の URL に移動して、フェデレーション メタデータにパブリックにアクセスできることを確認します。

https://(your_FS_name)/federationmetadata/2007-06/federationmetadata.xml

この (your_FS_name) は、fs.contoso.com など、組織で使用しているフェデレーション サービスのホスト名に置き換えます。 どちらの設定も適切であることを確認できた場合、他の作業は不要です。

例: https://fs.contoso.com/federationmetadata/2007-06/federationmetadata.xml

トークン署名証明書を手動で更新する

トークン署名証明書を手動で更新することもできます。 たとえば、次のシナリオは手動更新の方が適している場合があります。

  • トークン署名証明書が自己署名証明書ではない。 よくある理由に、企業が、組織的な証明機関によって登録された AD FS 証明書を管理していることが挙げられます。
  • フェデレーション メタデータのパブリック アクセスがネットワーク セキュリティで禁止されている。
  • フェデレーション ドメインを既存のフェデレーション サービスから新しいフェデレーション サービスに移行します。

重要

既存のフェデレーション ドメインを新しいフェデレーション サービスに移行する場合は、「AD FS 証明書の緊急ローテーション」に従うことをお勧めします

このようなシナリオでは、トークン署名証明書を更新するたびに、PowerShell コマンド Update-MsolFederatedDomain を使って Microsoft 365 ドメインも更新する必要があります。

手順 1:AD FS のトークン署名証明書が新しいことを確認する

既定の構成が変更されている場合

AD FS の既定の構成が変更されている (AutoCertificateRolloverFalse に設定されている) 場合、(自己署名ではない) カスタムの証明書が使用されていると考えられます。 AD FS トークン署名証明書の更新方法の詳細については、「フェデレーション サーバーの証明書の要件」を参照してください。

フェデレーション メタデータへのパブリック アクセスができない場合

AutoCertificateRolloverTrue に設定されているにもかかわらず、フェデレーション メタデータに対してパブリックにアクセスできない場合は、まず新しいトークン署名証明書が AD FS によって生成されていることを確認します。 以下の手順に従って、新しいトークン署名証明書があることを確認してください。

  1. プライマリ AD FS サーバーにログオンしていることを確認します。

  2. PowerShell コマンド ウィンドウを開き、次のコマンドを実行して、AD FS の現在の署名証明書を確認します。

    Get-ADFSCertificate -CertificateType Token-Signing

    Note

    AD FS 2.0 を使用している場合は、最初に Add-Pssnapin Microsoft.Adfs.Powershell を実行する必要があります。

  3. コマンドの出力に表示されたすべての証明書を確認します。 新しい証明書が AD FS によって生成されている場合は、出力に 2 つの証明書が表示されます。1 つは IsPrimary 値が TrueNotAfter の日付が 5 日以内、もう 1 つは IsPrimary 値が FalseNotAfter の日付が約 1 年後です。

  4. 証明書が 1 つしか表示されず、その NotAfter の日付が 5 日以内の場合は、新しい証明書を生成する必要があります。

  5. 新しい証明書を生成するには、PowerShell コマンド プロンプトで次のコマンドを実行します: Update-ADFSCertificate -CertificateType Token-Signing

  6. 次のコマンドを再実行し、更新を確認します: Get-ADFSCertificate -CertificateType Token-Signing

これで、2 つの証明書が表示されます。1 つは NotAfter の日付が約 1 年後で、IsPrimary の値が False です。

手順 2:Microsoft 365 の信頼のために新しいトークン署名証明書を更新する

次のように、信頼に使用できるように、新しいトークン署名証明書で Microsoft 365 を更新します。

  1. Azure AD PowerShell モジュールを開きます。
  2. $cred=Get-Credential を実行します。 このコマンドレットで資格情報の入力を求められたら、クラウド サービス管理者アカウントの資格情報を入力します。
  3. Connect-MsolService -Credential $cred を実行します。 このコマンドレットでクラウド サービスに接続します。 クラウド サービスに接続している状況を作った後で、ツールによってインストールされた追加のコマンドレットを実行する必要があります。
  4. AD FS プライマリ フェデレーション サーバーではないコンピューターでこれらのコマンドを実行している場合は、Set-MSOLAdfscontext -Computer <AD FS primary server> を実行します。この <AD FS プライマリ サーバー> はプライマリ AD FS サーバーの内部 FQDN 名です。 このコマンドレットで AD FS に接続している状況を作ります。
  5. Update-MSOLFederatedDomain -DomainName <domain> を実行します。 このコマンドレットは、AD FS の設定でクラウド サービスを更新し、両者の信頼関係を構成します。

注意

contoso.com や fabrikam.com などの複数のトップ レベル ドメインをサポートする必要がある場合は、すべてのコマンドレットで SupportMultipleDomain スイッチを使用する必要があります。 詳細については、 複数のトップ レベル ドメインのサポートに関するページを参照してください。

テナントが複数のドメインとフェデレーションされている場合、Get-MsolDomain -Authentication Federated の出力に一覧表示されているすべてのドメインに対して Update-MsolFederatedDomain を実行する必要があります。 これにより、すべてのフェデレーション ドメインがトークン署名証明書に対して更新されます。 これを実施するには、Get-MsolDomain -Authentication Federated | % { Update-MsolFederatedDomain -DomainName $_.Name -SupportMultipleDomain } を実行します。

Microsoft Entra Connect を使用して Microsoft Entra ID 信頼を修復する

Microsoft Entra Connect を使用して AD FS ファームと Microsoft Entra ID 信頼を構成した場合は、トークン署名証明書に関して何らかの対処が必要かどうかを Microsoft Entra Connect を使用して検出できます。 証明書を更新する必要がある場合は、Microsoft Entra Connect を使用して更新できます。

詳細については、「 信頼の修復」を参照してください。

AD FS とMicrosoft Entra 証明書の更新手順

トークン署名証明書は標準の X509 証明書であり、フェデレーション サーバーが発行するすべてのトークンに安全に署名するために使用されます。 トークン暗号化解除証明書は、標準の X509 証明書であり、受信トークンの暗号化解除に使用されます。

既定では、AD FS は、初期構成時にも、証明書の有効期限が近づいたときにも、トークン署名証明書とトークン暗号化解除証明書を自動的に生成するように構成されます。

Microsoft Entra ID は、現在の証明書の有効期限が切れる 35 日前に、フェデレーション サービスのメタデータから新しい証明書を取得しようとします。 その時点で新しい証明書が利用できない場合、Microsoft Entra ID は 1 日間隔でメタデータの監視を続けます。 新しい証明書がメタデータで利用可能になるとすぐに、ドメインのフェデレーション設定が新しい証明書情報で更新されます。 Get-MsolDomainFederationSettings を使用すると、NextSigningCertificate / SigningCertificate に新しい証明書があるかどうかを確認できます。

AD FS のトークン署名証明書の詳細については「Obtain and Configure Token Signing and Token Decryption Certificates for AD FS (AD FS でのトークン署名証明書およびトークン暗号化解除証明書の取得と構成)」 をご覧ください。