Usare mTLS nelle app di Azure Container

Mutual Transport Layer Security (mTLS) è un'estensione del protocollo TLS standard che fornisce l'autenticazione reciproca tra client e server. App Azure Container supporta l'esecuzione di applicazioni abilitate per mTLS per offrire maggiore sicurezza nelle applicazioni.

In App contenitore di Azure, tutte le richieste in ingresso passano attraverso Envoy prima di essere instradate all'app contenitore di destinazione. Quando si usa mTLS, il client scambia i certificati con Envoy. Ognuno di questi certificati viene inserito nell'intestazione X-Forwarded-Client-Cert , che viene quindi inviata all'applicazione.

Per compilare un'applicazione mTLS in App Azure Container, è necessario:

  • Configurare App contenitore di Azure per richiedere certificati client dalle controparti.
  • Estrarre X.509 i certificati dalle richieste.

Questo articolo descrive come gestire i certificati handshake mTLS peer estraendo il X.509 certificato dal client.

Richiedi certificati client

Usare la procedura seguente per configurare l'app contenitore per richiedere certificati client:

  1. Nel portale Azure aprire l'app contenitore.
  2. Nel menu a sinistra selezionare Networking>Ingress.
  3. In Abilita ingresso per le applicazioni che necessitano di un endpoint HTTP o TCP. abilitare Ingresso.
  4. Per Tipo di ingresso selezionare HTTP.
  5. In Modalità certificato client, seleziona Obbligatorio.
  6. Selezionare Salva per applicare le modifiche.

Per altre informazioni su come configurare l'autenticazione tramite certificato client in App contenitore di Azure, vedere Configurare l'autenticazione tramite certificato client in App contenitore di Azure.

Estrarre certificati X.509

Per estrarre i certificati X.509 dall'intestazione X-Forwarded-Client-Cert, analizza il valore dell'intestazione nel codice dell'applicazione. Questa intestazione contiene le informazioni sul certificato del client quando mTLS è abilitato. I certificati vengono forniti in un formato di elenco delimitato da punto e virgola, che include l'hash, il certificato e la catena.

Ecco la procedura da seguire per estrarre e analizzare il certificato nell'applicazione:

  1. Recuperare l'intestazione X-Forwarded-Client-Cert dalla richiesta in ingresso.
  2. Analizzare il valore dell'intestazione per estrarre i dettagli del certificato.
  3. Inserire i certificati analizzati nell'attributo del certificato standard per un'ulteriore convalida o utilizzo.

Dopo l'analisi, è possibile convalidare i certificati e usarli in base alle esigenze dell'applicazione.

Esempio

Nelle applicazioni Java è possibile usare il filtro di autenticazione Reactive X.509 per eseguire il mapping delle informazioni utente dai certificati al contesto di sicurezza. Per un esempio completo di un'applicazione Java con mTLS in App contenitore di Azure, vedere Applicazione server mTLS in App contenitore di Azure.