IBM Cloud Docs
Applicazioni inserite nel contenitore con Ingress

Applicazioni inserite nel contenitore con Ingress

Con IBM Cloud® App ID, puoi implementare in modo congruente una sicurezza controllata dalle politiche utilizzando la funzionalità di rete Ingress in IBM Cloud Kubernetes Service. Con questo approccio, è possibile applicare le politiche di autenticazione e autorizzazione per tutte le applicazioni del cluster contemporaneamente, senza modificare il codice dell'applicazione!

L'immagine Ingress personalizzata Kubernetes Service è obsoleta dal 1 ° dicembre 2020. Questa esercitazione viene aggiornata per utilizzare l'immagine Ingress Kubernetes della community. Per vedere la versione precedente di questa documentazione, vedi la DocumentazioneKubernetes Service.

App ID Kubernetes integration architecture
App ID Kubernetes integration architecture

  1. Un utente apre la tua applicazione e attiva una richiesta all'API o all'applicazione web.
  2. Nel flusso API, il controllore Ingress tenta di convalidare i token forniti. Se si utilizza il flusso web, si avvia un processo di autenticazione OIDC a tre livelli.
  3. App ID inizia il processo di autenticazione visualizzando il Widget di accesso.
  4. L'utente fornisce un nome utente oppure una mail e una password.
  5. Il controller Ingress ottiene i token di accesso e di identità da App ID per l'autorizzazione.
  6. Ogni richiesta convalidata e inoltrata dal controller Ingress alle tue applicazioni ha un'intestazione di autorizzazione che contiene i token.

Prima di iniziare

Prima di poter iniziare, assicurati di avere i seguenti prerequisiti.

  • Un'istanza di App ID che viene fornita nella stessa regione in cui è distribuito il cluster. Il nome del servizio deve contenere solo caratteri alfanumerici o trattino (-) e non può contenere spazi.

  • Un cluster Kubernetes Service standard con almeno due nodi di lavoro in ciascuna zona disponibile.

  • I seguenti IBM Cloud Ruoli IAM:

    • Cluster: Ruolo di piattaforma amministratore
    • Spazi dei nomi Kubernetes: Ruolo del servizio Manager
    • App ID: ruolo della piattaforma Editor e ruolo Writer Service
  • Le seguenti CLI:

  • Il Kubernetes Service e Container Registry I plugin CLI

Per garantire le migliori prestazioni dell'integrazione, si consiglia di utilizzare sempre la versione più recente di IBM Cloud Kubernetes Service Application Load Balancer (ALB). Per impostazione predefinita, l'aggiornamento automatico è abilitato per il cluster.

Aggiunta di URL redirect

Un URL redirect è l'endpoint di callback della tua app; la posizione in cui un utente viene inviato dopo aver firmato correttamente dentro o fuori la tua app. Per prevenire gli attacchi di phishing, App ID convalida gli URL richiesti contro un allowlist di URL redirect che si aggiunge al servizio. Aggiungendo un URL al proprio allowlist, si dà il permesso App ID di inoltrare i propri utenti a quella località. Ulteriori informazioni sugli URI di reindirizzamento.

  1. Nella console IBM Cloud, selezionare la tua istanza di App ID dalla tua lista risorse.

  2. Naviga nella pagina Gestisci autenticazione della tua istanza di App ID.

  3. Nella scheda provider di identità, assicurarsi che un provider di identità sia impostato su on.

    Se non viene selezionato alcun provider, l'utente non viene autenticato, ma gli viene comunque rilasciato un token di accesso per l'accesso anonimo all'applicazione.

  4. Nella scheda Impostazioni di autenticazione, aggiungere gli URL redirect e fare clic sul simbolo + per salvare le modifiche. L'URL redirect deve essere formattato analogamente al seguente esempio:

    https://<hostname>/oauth2-<AppIDServiceInstanceName>/callback
    
    • Dominio personalizzato:

      A URL that is registered with a custom domain might look like: http://mydomain.net/myapp2path/oauth2-myappid/callback. Se le applicazioni che si desidera esporre si trovano all'interno dello stesso cluster ma in namespace diversi, è possibile utilizzare un carattere jolly per specificarle tutte. Ciò può essere utile durante lo sviluppo, ma si consiglia di prestare attenzione quando si utilizzano i caratteri jolly in produzione. Ad esempio, https://custom_domain.net/*/oauth2-myappid/callback

    • Dominio secondario Ingress:

      Se l'applicazione è registrata con un sottodominio di IBM Kubernetes Ingress, l'URL di callback potrebbe essere simile a: https://mycluster.us-south.containers.appdomain.cloud/myapp1path/oauth2-myappid/callback

Aggiornamento della tua risorsa Ingress

Risorsa Ingress viene utilizzato per definire come si desidera esporre le proprie applicazioni. La risorsa contiene le regole che definiscono come instradare le richieste in entrata alle tue applicazioni. Per aggiungere l'autenticazione App ID alle tue applicazioni, segui la procedura nella documentazione diIBM Cloud Kubernetes Service.

Passi successivi

Ora che la tua applicazione è in esecuzione in un cluster Kubernetes e Ingress è configurato, puoi provarla: