AD FS 証明書の緊急ローテーション
Active Directory フェデレーション サービス (AD FS) (AD FS) 証明書をすぐにローテーションする必要がある場合は、この記事の手順に従います。
重要
AD FS 環境で証明書をローテーションすると、古い証明書がすぐに取り消され、フェデレーション パートナーが新しい証明書を使用するのに通常かかる時間を無視できます。 このアクションにより、新しい証明書を使用するように信頼が更新されるため、サービスの停止が発生することもあります。 すべてのフェデレーション パートナーが新しい証明書を取得した後、停止を解決する必要があります。
注意
証明書を保護し、セキュリティで保護するために、ハードウェア セキュリティ モジュール (HSM) を使用することを強く推奨します。 詳細については、AD FS をセキュリティ保護するためのベスト プラクティスの「ハードウェア セキュリティ モジュール」セクションを参照してください。
トークン署名証明書の拇印を特定する
現在 AD FS で使用している古いトークン署名証明書を取り消すには、トークン署名証明書の拇印を特定する必要があります。 次の操作を行います。
PowerShell
Connect-MsolService
で実行して、Microsoft Online Service に接続します。Get-MsolFederationProperty -DomainName <domain>
を実行してオンプレミスとクラウドの両方のトークン署名証明書の拇印と有効期限を文書化します。拇印をコピーします。 これは後で既存の証明書を削除するために使用します。
また、AD FS 管理を使用してサムプリントを取得することもできます。 [サービス]>[証明書] に移動し、証明書を右クリックし、[証明書の表示] を選択した後、[詳細] を選択します。
AD FS によって証明書を自動的に更新させるかどうかを決定する
既定では、AD FS はトークン署名およびトークン暗号化解除証明書を自動的に生成するように構成されています。 これは、初期構成時と証明書の有効期限が近づいているときの両方で行われます。
次の PowerShell コマンド Get-AdfsProperties | FL AutoCert*, Certificate*
を実行します。
AutoCertificateRollover
プロパティは、AD FS がトークン署名証明書とトークン暗号化解除証明書を自動的に更新するように構成されているかどうかを示します。 以下のいずれかを実行します。
AutoCertificateRollover
がTRUE
に設定されている場合、新しい自己署名証明書を生成します。AutoCertificateRollover
がFALSE
に設定されている場合、新しい証明書を手動で生成します。
AutoCertificateRollover が TRUE に設定されている場合に新しい自己署名証明書を生成する
このセクションでは、"2 つ" のトークン署名証明書を作成します。 1 つ目は、-urgent
フラグを使用し、これにより、現在のプライマリ証明書がただちに置き換えられます。 2 つ目は、セカンダリ証明書として使用されます。
重要
2 つの証明書を作成するのは、Microsoft Entra ID で前の証明書に関する情報が保持されるためです。 2 つ目の証明書を作成することで、Microsoft Entra ID に古い証明書に関する情報を除去させ、2 つ目に関する情報に置き換えさせることができます。
2 つ目の証明書を作成して、それによって Microsoft Entra ID を更新しない場合、古いトークン署名証明書でユーザーを認証できてしまう可能性があります。
新しいトークン署名証明書を生成するには、次の手順を実行します。
プライマリ AD FS サーバーにログオンしていることを確認します。
Windows PowerShell を管理者として開きます。
PowerShell で実行して、
AutoCertificateRollover
がTrue
に設定されていることを確認します。Get-AdfsProperties | FL AutoCert*, Certificate*
新しいトークン署名証明書を生成するには、次を実行します。
Update-ADFSCertificate -CertificateType Token-Signing -Urgent
次を実行して更新プログラムを確認します。
Get-ADFSCertificate -CertificateType Token-Signing
ここで、次を実行して 2 つ目のトークン署名証明書を生成します。
Update-ADFSCertificate -CertificateType Token-Signing
次のコマンドを再度実行して更新を確認できます。
Get-ADFSCertificate -CertificateType Token-Signing
AutoCertificateRollover が FALSE に設定されている場合に新しい証明書の手動で生成する
自動的に生成された既定の自己署名トークン署名証明書とトークン暗号化解除証明書を使用していない場合は、これらの証明書を手動で更新して構成する必要があります。 これを行う場合、2 つの新しいトークン署名証明書の作成とそれらのインポートが含まれます。 次に、一方をプライマリに昇格させ、古い証明書を失効させて、2 つ目の証明書をセカンダリ証明書として構成します。
まず、証明機関から 2 つの新しい証明書を取得し、各フェデレーション サーバー上のローカル コンピューターの個人証明書ストアにそれらをインポートする必要があります。 手順については、「証明書のインポート」を参照してください。
重要
2 つの証明書を作成するのは、Microsoft Entra ID で前の証明書に関する情報が保持されるためです。 2 つ目の証明書を作成することで、Microsoft Entra ID に古い証明書に関する情報を除去させ、2 つ目に関する情報に置き換えさせることができます。
2 つ目の証明書を作成して、それによって Microsoft Entra ID を更新しない場合、古いトークン署名証明書でユーザーを認証できてしまう可能性があります。
新しい証明書をセカンダリ証明書として構成する
次に、1 つの証明書をセカンダリの AD FS トークン署名証明書または暗号化解除証明書として構成してから、それをプライマリに昇格させます。
証明書をインポートしたら、AD FS 管理コンソールを開きます。
[サービス] を展開し、[証明書] を選択します。
[操作] ウィンドウで、[トークン署名証明書の追加] を選択します。
表示された証明書一覧から新しい証明書を選択し、[OK] を選択します。
新しい証明書のセカンダリからプライマリへの昇格
新しい証明書を AD FS にインポートし、構成したので、プライマリ証明書として設定する必要があります。
AD FS の管理コンソールを開きます。
[サービス] を展開し、[証明書] を選択します。
セカンダリ トークン署名証明書を選択します。
[操作] ウィンドウで、[プライマリに設定] をクリックします。 プロンプトで [はい] を選択します。
新しい証明書をプライマリ証明書として昇格させた後、古い証明書はまだ使用できるため、削除する必要があります。 詳細については、「古い証明書を削除する」セクションを参照してください。
2 つ目の証明書をセカンダリ証明書として構成するには
1 つ目の証明書を追加し、それをプライマリにして、古い証明書を削除したので、2 つ目の証明書をインポートできます。 次を行って、証明書をセカンダリ AD FS トークン署名証明書として構成します。
証明書をインポートしたら、AD FS 管理コンソールを開きます。
[サービス] を展開し、[証明書] を選択します。
[操作] ウィンドウで、[トークン署名証明書の追加] を選択します。
表示された証明書一覧から新しい証明書を選択し、[OK] を選択します。
Microsoft Entra ID を新しいトークン署名証明書で更新する
Azure AD PowerShell モジュールを開きます。 または、Windows PowerShell を開き、
Import-Module msonline
コマンドを実行します。次のコマンドを実行して、Microsoft Entra ID に接続します。
Connect-MsolService
ハイブリッド ID 管理者の資格情報を入力します。
注意
プライマリ フェデレーション サーバーでないコンピューターでこれらのコマンドを実行する場合は、まず次のコマンドを入力します。
Set-MsolADFSContext -Computer <servername>
<servername> を AD FS サーバーの名前に置き換え、プロンプトで AD FS サーバーの管理者資格情報を入力します。
必要に応じて、Microsoft Entra ID の現在の証明書情報を確認して、更新が必要であるかどうかを確認します。 これを行うには、コマンド
Get-MsolFederationProperty
を実行します。 入力が求められたら、フェデレーション ドメインの名前を入力します。Microsoft Entra ID の証明書情報を更新するには、コマンド
Update-MsolFederatedDomain
を実行します。入力を求められたら、ドメイン名を入力します。Note
このコマンドの実行時にエラーが発生した場合は、
Update-MsolFederatedDomain -SupportMultipleDomain
を実行し、プロンプトでドメイン名を入力します。
SSL 証明書の置き換え
セキュリティ侵害のためにトークン署名証明書を置き換える必要がある場合は、AD FS と Web アプリケーション プロキシ (WAP) サーバーの Secure Sockets Layer (SSL) 証明書も失効させて置き換える必要があります。
SSL 証明書の失効は、証明書を発行した証明機関 (CA) で行う必要があります。 これらの証明書は、多くの場合、GoDaddy などのサード パーティ プロバイダーによって発行されます。 例については、GoDaddy の SSL 証明書ヘルプの証明書の失効に関するページを参照してください。 詳細については、「証明書の失効のしくみ」を参照してください。
古い SSL 証明書が失効し、新しいものが発行された後、SSL 証明書を置き換えることができます。 詳細については、「AD FS の SSL 証明書の置き換え」を参照してください。
古い証明書の削除
古い証明書を置き換えた後、古い証明書はまだ使用できるため、削除する必要があります。 そのためには次を行います。
プライマリ AD FS サーバーにログオンしていることを確認します。
Windows PowerShell を管理者として開きます。
古いトークン署名証明書を削除するには、次を実行します。
Remove-ADFSCertificate -CertificateType Token-Signing -thumbprint <thumbprint>
フェデレーション メタデータを使用できるフェデレーション パートナーの更新
新しいトークン署名証明書またはトークン暗号化解除証明書を更新して構成した場合は、すべてのフェデレーション パートナーが新しい証明書を選択していることを確認する必要があります。 この一覧には、証明書利用者の信頼と要求プロバイダーの信頼によって AD FS で表されるリソース組織またはアカウント組織パートナーが含まれます。
フェデレーション メタデータを使用できないフェデレーション パートナーの更新
フェデレーション パートナーがフェデレーション メタデータを使用できない場合は、新しいトークン署名またはトークン暗号化解除証明書の公開キーをパートナーに手動で送信する必要があります。 新しい証明書公開キー (.cer ファイルまたはチェーン全体を含める場合は . p7b ファイル) を、すべてのリソース組織またはアカウント組織パートナー (AD FS で証明書利用者の信頼とクレーム プロバイダーの信頼によって表される) に送信します。 新しい証明書を信頼するために、パートナー側で変更を実装してもらう必要があります。
PowerShell による更新トークンの失効
ここで、更新トークンを持っている可能性のあるユーザーの更新トークンを失効させ、そのユーザーに再ログオンと新しいトークンの取得を強制する必要があります。 これにより、電話、現在の Web メールセッション、およびトークンと更新トークンを使用しているその他の場所から、ユーザーがログアウトされます。 詳細については、「Revoke-AzureADUserAllRefreshToken」を参照してください。 Microsoft Entra ID でユーザー アクセスを取り消す方法に関する記事も参照してください。
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 日以降に中断が発生する可能性があります。