CA 証明書チェーンを使用したクライアント認証
サービスへの接続中に、Azure Event Grid で CA 証明書チェーンを使用してクライアントを認証します。
このガイドでは、次のタスクを実行します。
- CA 証明書 (クライアント証明書の直接の親証明書) を名前空間にアップロードします。
- クライアント認証設定を構成します。
- 以前にアップロードした CA 証明書によって署名されたクライアント証明書を使用してクライアントを接続します。
前提条件
- 既に作成されている Event Grid 名前空間が必要です。
- クライアント証明書と、クライアント証明書の署名に使用された親証明書 (通常は中間証明書) の CA 証明書チェーンが必要です。
サンプルのクライアント証明書とサムプリントを生成する
まだ証明書がない場合は、step CLI を使用してサンプル証明書を作成できます。 Windows の場合は、手動でインストールすることを検討してください。
step をインストールしたら、Windows PowerShell でコマンドを実行してルートと中間の証明書を作成します。
.\step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
生成された CA ファイルを使用して、クライアントの証明書を作成します。
.\step certificate create client1-authnID client1-authnID.pem client1-authnID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
CA 証明書を名前空間にアップロードする
- Azure portal で Event Hubs 名前空間に移動します。
- 左側のレールの MQTT ブローカー セクションで、CA 証明書メニューに移動します。
- [+ 証明書] を選択して、[証明書のアップロード] ページを起動します。
- 証明書名を追加し、中間証明書 (.step/certs/intermediate_ca.crt) を参照して検索し、[アップロード] を選択します。 種類が .pem、.cer、または .crt のファイルをアップロードできます。
Note
- CA 証明書の名前は 3 ~ 50 文字の長さにできます。
- CA 証明書の名前には、英数字、ハイフン (-) を含めることができ、スペースは不可です。
- 名前は名前空間ごとに一意である必要があります。
クライアント認証設定を構成する
- [クライアント] ページに移動します。
- [+ クライアント] を選択して、新しいクライアントを追加します。 既存のクライアントを更新する場合は、クライアント名を選択し、[Update client] (クライアントの更新) ページを開きます。
- [クライアントの作成] ページで、クライアント名、クライアント認証名、およびクライアント証明書認証検証スキームを追加します。 通常、クライアント認証名は、クライアント証明書のサブジェクト名フィールドにあります。
- [作成] ボタンを選択して、クライアントを作成します。
証明書オブジェクト スキーマのサンプル
{
"properties": {
"description": "CA certificate description",
"encodedCertificate": "-----BEGIN CERTIFICATE-----`Base64 encoded Certificate`-----END CERTIFICATE-----"
}
}
Azure CLI の構成
次のコマンドを使用して、証明機関 (CA) 証明書をサービスにアップロード/表示/削除する
証明機関のルートまたは中間の証明書をアップロードする
az eventgrid namespace ca-certificate create -g myRG --namespace-name myNS -n myCertName --certificate @./resources/ca-cert.json
証明書情報を表示する
az eventgrid namespace ca-certificate show -g myRG --namespace-name myNS -n myCertName
証明書の削除
az eventgrid namespace ca-certificate delete -g myRG --namespace-name myNS -n myCertName