SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Azure AD 証明書ベースの認証 (CBA) の CDP を構成する

leave a comment

先日投稿した、Azure AD の証明書ベースの認証 (CBA) をスマートカードで検証する環境を準備してみる では 証明書失効リストの配布ポイント (CDP) の構成は行っていなかったのですが、CDP を構成してみたので情報を残しておきたいと思います。

AD CS で証明書失効リスト (CRL) を作成

AD CS で発行される証明書についてですが、デフォルトで証明書失効リストの発行が可能にはなっていますが、AD DS の構成パーティションに保存されるようになっているので、ファイルとしても出力されるように設定しておきます。

CRL の出力の設定については CRL配布ポイント (CDP) の構築 の手順を使用することで設定できますが、今回は AD CS のローカルディレクトリ上に出力するように設定してみます。

CRL の出力先については、AD CS の証明機関のプロパティを開き「拡張機能」で「CRL 配布ポイント (CDP)」から追加することができます。今回は次のように「C:\CRLDist」に出力するように設定しています。

image

このような設定をした場合、失効した証明書の公開を実行すると、指定したディレクトリに CRL ファイルが出力されますので、このファイルを CBA で指定した CDP に配置することで、証明書の失効の検証を実施することができます。

image

CDP の配布元については、Azure ポータルで CBA の証明書を追加する際に設定することができますので、ルート証明書に拡張機能の設定として HTTP CDP が含まれるようにするといった設定は不要でした。

 

CDP の作成と設定

上記の作業で作成した CRL を配布する CDP (証明書失効リスト配布ポイント) については、Web サーバーを作成しなくても、Azure ストレージで代替することができます。

検証した範囲では CDP の URL は HTTPS のアクセスとしても問題なかったのですが、次のような事例もあるようです。

証明書認証の制限事項の情報の サポートされていないシナリオ には、次の記載があります。

CDP には HTTP URL のみを指定できます。 オンライン証明書状態プロトコル (OSCP) およびライトウェイト ディレクトリ アクセス プロトコル (LDAP) の URL はサポートされていません。

HTTP URL のみ指定とありますので、HTTP 経由でアクセスする場所に配置するのがよさそうですね。

Azure ストレージでは、デフォルトでは セキュリティで保護された接続を確保するために安全な転送を要求する が有効になっており、HTTPS でのアクセスが必須ですが、この設定を無効にすることで、HTTP 経由で CRL にアクセスをすることができる状態にすることが可能ですので、CDP については、セキュリティを落とすことも検討する必要があるかもしれません。

Azure ストレージにコンテナーを作成し、作成したコンテナーをパブリック読み取りアクセスを有効にして CRL ファイルを配置することで CDP として利用することができます。

image

これで HTTP 経由で CRL ファイルにアクセスができるようになりましたので、Azrure ポータルの「セキュリティ -> 証明機関」から証明書のファイルをアップロードする際に、証明書失効リストの URL を設定します。

image

現状、ポータルからはファイルアップロード時にのみ CRL の設定が可能ですが、特定の CA の証明書失効チェックをオンまたはオフにするにはどうすればよいですか? で記載されている PowerShell を使用することで、アップロードした証明書に対して、CDP を後から設定することができます。

認証についてはキャッシュされているようで、証明書を失効 (または失効の取り消し) を実施した直後に設定を反映させたい場合の方法は、証明書をすぐに取り消すにはどうすればよいですか? に記載されています。

失効の検証を実施する場合は、手順 3:失効を構成する の手順の実施も意識しておくとよさそうでした。

 

CRL の公開期間を意識する

証明書を失効後、CRL を公開し、CDP に発行することで失効した証明書を使用して Microsoft 365 のポータルにログオンしてみたところ、次のようなエラーが発生しだすことがありました。
image

CRL については有効期間があり、「失効した証明書」のプロパティから、公開期間を変更することができ、デフォルトでは次のような設定になっているかと思います。

image

公開期間が過ぎていると、証明書を使用した認証で「Unable to download CRL. Invalid or no response from CRL source {source}.」のエラーで失敗していそうでしたので、CRL を使用する場合は定期的に更新しないとだめなのかもしれませんね。

certutil -crl」でコマンドで更新することができるので、ファイルに出力して azcopy でアップロードするバッチを作成するという方法もありそうでした。

Share

Written by Masayuki.Ozawa

9月 11th, 2022 at 4:43 pm

Leave a Reply