クライアント証明書による認証
適用対象: すべての API Management レベル
authentication-certificate
ポリシーを使用し、クライアント証明書を使用してバックエンド サービスで認証します。 証明書を最初に API Management にインストールする場合は、最初にサムプリントまたは証明書 ID (リソース名) で識別します。
注意事項
このポリシーを構成する際に資格情報が露出するリスクを、最小限に抑えます。 マネージド ID 認証や、資格情報マネージャー などがバックエンドでサポートされているのであれば、より安全な認証方法を使用することを、Microsoft ではお勧めしています。 ポリシー定義で機密情報を構成する場合は、名前付き値を使用し、シークレットは Azure Key Vault に保存することをお勧めします。
注意事項
証明書が Azure Key Vault に格納されている証明書を参照している場合は、証明書 ID を使用して識別します。 キー コンテナー証明書がローテーションされると、API Management のサムプリントが変更され、サムプリントによって識別された場合、新しい証明書はポリシーによって解決されません。
Note
ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 API Management ポリシーを設定または編集する方法について説明します。
ポリシー ステートメント
<authentication-certificate thumbprint="thumbprint" certificate-id="resource name" body="certificate byte array" password="optional password"/>
属性
属性 | 説明 | 必要 | Default |
---|---|---|---|
thumbprint | クライアント証明書のサムプリント。 ポリシー式を使用できます。 | thumbprint または certificate-id のいずれかが存在する可能性があります。 |
該当なし |
証明書 ID | 証明書リソースの名前。 ポリシー式を使用できます。 | thumbprint または certificate-id のいずれかが存在する可能性があります。 |
該当なし |
body | バイト配列としてのクライアント証明書。 組み込みの証明書ストアから証明書が取得されない場合に使用します。 ポリシー式を使用できます。 | いいえ | 該当なし |
password | クライアント証明書のパスワード。 ポリシー式を使用できます。 | body で指定された証明書がパスワードで保護されている場合に使用します。 |
該当なし |
使用法
- ポリシー セクション: inbound
- ポリシー スコープ: グローバル、ワークスペース、製品、API、操作
- ゲートウェイ: クラシック、v2、従量課金、セルフホステッド、ワークスペース
使用上の注意
- バックエンド サービスへの安全なアクセスに使用される証明書を管理するために、キー コンテナー証明書を構成することをお勧めします。
- このポリシーで証明書パスワードを構成する場合は、名付きの値を使用することをお勧めします。
例
証明書 ID によって識別されるクライアント証明書
<authentication-certificate certificate-id="544fe9ddf3b8f30fb490d90f" />
サムプリントによって識別されるクライアント証明書
<authentication-certificate thumbprint="CA06F56B258B7A0D4F2B05470939478651151984" />
組み込みの証明書ストアから取得されるのではなく、ポリシーで設定されたクライアント証明書
<authentication-certificate body="@(context.Variables.GetValueOrDefault<byte[]>("byteCertificate"))" password="optional-certificate-password" />
関連ポリシー
関連するコンテンツ
ポリシーに対する処理の詳細については、次のトピックを参照してください。