次の方法で共有


Azure Container Apps で mTLS を使用する

相互トランスポート層セキュリティ (mTLS) は標準的な TLS プロトコルの拡張機能であり、クライアントとサーバーの間の相互認証を提供します。 Azure Container Apps では、アプリケーションのセキュリティを強化するための mTLS 対応アプリケーションの実行がサポートされています。

Azure Container Apps では、着信したすべての要求は、ターゲット コンテナー アプリにルーティングされる前に Envoy を通過します。 mTLS の使用時は、クライアントは Envoy と証明書を交換します。 これらの各証明書は、X-Forwarded-Client-Cert ヘッダーに配置されてから、アプリケーションに送信されます。

Azure Container Apps で mTLS アプリケーションを構築するには、次のことを行う必要があります。

  1. ピアからのクライアント証明書を必要とするように Azure Container Apps を構成します。
  2. 要求から X.509 証明書を抽出します。

この記事では、クライアントから X.509 証明書を抽出して、ピア mTLS ハンドシェイク証明書を処理する方法について説明します。

クライアント証明書を要求する

次の手順を使って、クライアント証明書を要求するようにコンテナー アプリを構成します。

  1. Azure portal でコンテナー アプリを開きます。
  2. [設定] で [イングレス] を選びます。
  3. [有効] オプションを選択します。
  4. [イングレス タイプ] で [HTTP] を選びます。
  5. [クライアント証明書モード] で [必須] を選びます。
  6. [保存] をクリックして変更を適用します。

Azure Container Apps でのクライアント証明書認証の構成について詳しくは、「Azure Container Apps でクライアント証明書の認証を構成する」をご覧ください。

X.509 証明書を抽出する

X-Forwarded-Client-Cert ヘッダーから X.509 証明書を抽出するには、アプリケーションのコードでヘッダーの値を解析します。 mTLS が有効になっている場合、このヘッダーにはクライアント証明書の情報が含まれます。 証明書はセミコロンで区切られたリスト形式で提供され、ハッシュ、証明書、チェーンが含まれます。

アプリケーションで証明書を抽出して解析するには、次の手順のようにします。

  1. 着信した要求から X-Forwarded-Client-Cert ヘッダーを取得します。
  2. ヘッダーの値を解析して、証明書の詳細を抽出します。
  3. さらに検証または使用するため、解析された証明書を標準の証明書属性に設定します。

解析が済んだら、証明書を検証し、アプリケーションのニーズに応じて使用できます。

Java アプリケーションでは、リアクティブ X.509 認証フィルターを使って、証明書からセキュリティ コンテキストにユーザー情報をマップできます。 Azure Container Apps で mTLS を使用する Java アプリケーションの完全な例については、Azure Container Apps での mTLS サーバー アプリケーションに関するページを参照してください。