Azure フロント エンド Web アプリと Azure APIM の間に相互クライアント証明書認証を実装しました。APIM プロキシ API が呼び出される場所からカスタム ドメインにマップされた自己署名クライアント証明書を作成しました。さらに、APIM で同じ証明書をアップロードし、拇印認証ポリシーを追加しました。証明書は、TLS/SSL バインディングを追加することにより、TLS/SSL 設定タブの下の Azure フロント エンド Web アプリにアップロードされ、ClientCertificateEnabled は true としてマークされています。
証明書は Azure フロント エンド Web アプリから APIM にヘッダーとして転送されX-ARR-ClientCert
、その値は証明書の拇印として転送されることを期待しています。これを検証するために、リクエストが APIM に届いたときにヘッダーをキャプチャし、それを出力に転送して確認できるようにします。次の行を記述します。
<set-variable name="X-ARR-ClientCert" value="@(context.Request.Headers.GetValueOrDefault("X-ARR-ClientCert", "No Certificate Received"))" />
しかし、常に「証明書を受け取っていません」という価値を得ています。
このアプローチは私たちの期待どおりに機能していますか? またはこれをどのように検証しますか?
注: 現在、APIM は開発者層を指しています。基本にスケールアップする必要がありますか?