Home > Windows にまつわる e.t.c.

AD FS の証明書更新


O365(Office 365) 等のクラウドサービスをオンプレ AD DS のアカウントで認証する場合は、AD FS を使います。

この AD FS は、SAML の MS 実装なので、O365 だけではなく、SAML 認証をサポートした様々なクラウドサービスの認証に使うことができる仕組みです。

O365 の認証実体である AAD(Azure Active Directory) も SAML をサポートしているので、AD FS を使ってオンプレ AD DS アカウントの認証ができるのです。

AD FS の構築方法は、別のページで解説しているので(とはいっても Dropbox 向けなので、今度 AAD 向けのセットアップ方法書きます)構築方法は割愛して、AD FS が使用している証明書の更新方法を解説します。

 

前提条件

今回証明書を更新した環境です。他の環境でも基本的には手順は同じはずですが、別の環境での検証をしていないので...

環境 : Windows Server 2012 R2 + Azure AD Connect

 

AD DS は専用のサーバーで構築されており、AD FS も専用のサーバー上で構築しています。
AD DS が WS12R2(Windows Server 2012 R2) なので、AD FS もその関係で WS12R2 になっています。(AD FS の要件として、AD DS と合わせる必要あり)

AAD との関係構築は 一般的な手順通り、AADC(Azure AD Connect)を使っています。

本来 AD FS は、AD FS 単体で SAML 環境設定が完結させる事が出来るのですが、AADC がこの手順を代行してくれるので、基本的に AADC 操作だけで AAD との連携設定が出来ます。

今回は、約1年前に AD FS を構築し、公的 CA に発行してもらった SSL 証明書の期限が近づいたので、新たに更新用の SSL 証明書を発行してもらい、その証明書を AD FS にインストールするシナリオです。

公的 CA に SSL 証明書を発行してもらう際に必要な CSR の作り方は、参考情報にリンクを書いていますので、そちらを見てください。

 

AD FS の SSL 証明書を更新する

公的 CA に発行してもらう証明書は、AD FS が Client PC と通信する際に仕様する SSL 証明書です、

通常この証明書は1年で期限が切れるので、この証明書は毎年更新する必要があります。

 

AD FS では、この SSL 証明書を「サービス通信証明書」と呼んでいます。

AD FS は、自前で https サービスを提供しているので、IIS の証明書更新とは手順が異なるりますので注意してください。
(うっかり、IIS の証明書更新手順でやろうとしてハマったのはナイショデス w)

サービス通信証明書の更新は、AADC を使って更新します。

 

AADC を起動したら、「AD FS SSL 証明書を更新します」を選択します。

 

Azure AD Connect に「AD FS SSL 証明書を更新します」が存在しない場合は、「Set-AdfsSslCertificate -Thumbprint」コマンドレットで更新すると良いです

詳しい手順はこちらのサイトを参照してください

AD FS 3.0におけるSSL証明書更新 | 日々徒然
https://blog.o365mvp.com/2015/07/07/update_adfs-3-0_ssl_certificate

 

 

まずは、AAD の管理権限を持っているアカウントを指定します。「xxxx@xxxx.onmicrosoft.com」形式のアカウントです。

この AAD アカウントはパスワードが有期限なので、パスワード有効期間切れの場合は、O365 等 AAD を使っているサービスに「xxxx@xxxx.onmicrosoft.com」アカウントでログインし、パスワードを更新してください。

 

続いて AD FS の管理権限を持ったドメインアカウントを指定します。「xxxx\xxxx」形式のアカウントです。

 

これで、AAD と AD FS を操作できるアカウントが揃ったので、証明書を更新すると AD FS を指定します。Default 表示されているはずなので検索の必要はないはずです。

 

Web アプリケーション プロキシ サーバーを構築している場合は、ここで指定します。(今回の環境では使っていないので無入力)

 

更新用の証明書を指定するとパスワードが要求されるので、証明書に設定したパスワードを入力します。

 

証明書を更新するサーバーを選択します。

 

準備完了したので、証明書の更新を実行します。

 

念のために、更新した証明書で AD FS 認証が出来るかを確認します。

 

AD FS で認証するアカウントを入力します。「xxxx@xxxx.xx」形式のドメインアカウントです。

 

 

以上で、AD FS の SSL 証明書更新は完了です。

 

トークン証明書の更新

AADC が AD FS 構築の代行をしているので、AD FS の SSL 証明書更新は IIS の証明書より簡単ですね。

AD FS では、クラウドサービスとの通信に SSL 証明書とは別の証明書を使っています。

それが「トークン暗号化解除証明書」と「トークン署名証明書」です。
(うっかりキャプチャ撮り忘れたので流用失礼)

 

この2つのトークン証明書は、公的 CA が発行した証明書ではなく、自己発行の証明書なので SSL 証明書を更新したらといって自動更新されるものではありません。

この証明書の有効期限は Default 1年なので、SSL 証明書を更新する時期とほぼ同じ時期に期限が切れるはずです。

この証明書も更新しておかないと、AD FS 認証が出来なくなっていますので忘れずに更新しておく必要があります。

 

トークン証明書の Default 有効期限を延ばす(Option)

このステップは必須ではありません。

トークン証明書は自己発行証明書なので、有効期限は自分で設定する事が出来ます。

Default 1年のままで運用しても問題はないのですが、有効期限を変更したい場合は、PowerShell の「Set-AdfsProperties」コマンドレットを使います。

Set-AdfsProperties -CertificateDuration 有効期限(日)

 

例えば、10年(3650日)にする場合は以下のようになります。

PS C:\> Set-AdfsProperties -CertificateDuration 3650

 

トークン証明書の生成

トークン証明書を更新するためには、新しいトークン証明書を生成するのですが、なぜかトークン証明書に関する機能が AADC に無いのです。

このため、トークン証明書を更新は裸の AD FS を操作します。

トークン証明書を生成操作する時には、自動ロールオーバー機能が有効になっている必要があるので、Default 有効になっていますが念のために有効にし、「Update-ADFSCertificate」コマンドレットで証明書を生成します。

# 自動ロールオーバー機能を有効
Set-ADFSProperties -AutoCertificateRollover $true

# セカンダリ証明書生成
Update-ADFSCertificate

 

証明書が生成されると、セカンダリとしてトークン暗号化解除証明書とトークン署名証明書が追加されます。

 

トークン証明書を AAD に登録

生成した証明書は自己証明なので、AAD に生成した証明書の公開鍵を登録しないと認証してくれません。

AAD へのトークン証明書登録は「Microsoft Online Services サインイン アシスタント」で拡張される「xxxx-Msolxxxx」コマンドレットを使います。

このコマンドレットが入っていない場合は、以下からダウンロードしてください。

Download IT プロフェッショナル 用 Microsoft Online Services サインイン アシスタント
https://www.microsoft.com/ja-jp/download/details.aspx?id=41950

 

まずは、AAD の管理権限を持っているアカウント(「xxxx@xxxx.onmicrosoft.com」形式)で AAD に接続します。

その後、「Update-MSOLFederatedDomain -DomainName ドメイン名」でトークン証明書を AAD に登録します。
(xxxx.xx 形式のドメイン名)

# AAD へ接続
Connect-MsolService

# 証明書登録
Update-MSOLFederatedDomain -DomainName ドメイン名 -SupportMultipleDomain

 

 

生成したトークン証明書をプライマリにする

AAD に新しく生成した証明書を登録したので、生成した証明書が使えるようになりました。

新しく生成した証明書で認証するように、証明書をプライマリに昇格します。

トークン証明書を操作するためには、自動ロールオーバーを無効にする必要があります。

# 自動ロールオーバー機能無効
Set-ADFSProperties -AutoCertificateRollover $false

 

トークン暗号化解除証明書をプライマリに昇格

トークン署名証明証明書をライマリに昇格

 

プライマリ昇格が完了したら、AD FS サービスを再起動します。

# AD FS サービス再起動
Restart-Service adfssrv

 

新しいトークン証明書での認証確認

新しいトークン証明書で認証できるか AADC で確認します。

AD FS ログインの検証

 

AAD の管理権限を持っているアカウント(「xxxx@xxxx.onmicrosoft.com」形式)で AAD に接続

 

アカウントを検証

 

古いトークン証明書を削除

新しいトークン証明書での認証が成功したので、古い証明書を削除します。

トークン証明書を操作する時は、自動ロールオーバーが無効になっている必要があります。もしメニューに削除が表示されない場合は自動ロールオーバーが有効になっているので無効にします。

# 自動ロールオーバー機能無効
Set-ADFSProperties -AutoCertificateRollover $false

 

セカンダリ トークン暗号化解除証明書を削除

 

セカンダリ トークン署名証明証明書を削除

 

 

参考情報

certreq.exe で SSL 証明書発行に必要な CSR を作る
http://www.vwnet.jp/windows/WS16/2017092701/Certreq.htm

Dropbox の AD 認証
http://www.vwnet.jp/windows/ws12r2/2017100501/dropbox.htm

AD FS の証明書更新手順(トークン署名証明書、トークン暗号化解除証明書) - Ask the Network & AD Support Team

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.