Configura SCIM in Okta

Questo documento descrive come configurare un tenant SCIM in un pool di identità della forza lavoro. Per saperne di più su SCIM, consulta Provisioning SCIM per la federazione delle identità per la forza lavoro.

Ogni pool di identità della forza lavoro supporta un solo tenant SCIM. Per configurare un nuovo tenant SCIM in un pool che ne ha già uno, devi prima eliminare definitivamente il tenant esistente.

Il flag --claim-mapping per un tenant SCIM può contenere solo espressioni Common Expression Language (CEL) specifiche. Per scoprire quali espressioni sono supportate, consulta Mappare token e attributi SCIM.

Per configurare System for Cross-domain Identity Management (SCIM), segui questi passaggi:
  1. Configurare un tenant e un token SCIM in Google Cloud
  2. Configurare SCIM in Okta

Configurare un tenant e un token SCIM in Google Cloud

Per configurare un tenant SCIM in Google Cloud:

  1. Crea un tenant SCIM.

        gcloud iam workforce-pools providers scim-tenants create SCIM_TENANT_ID \
            --workforce-pool="WORKFORCE_POOL_ID" \
            --provider="PROVIDER_ID" \
            --display-name="SCIM_TENANT_DISPLAY_NAME" \
            --description="SCIM_TENANT_DESCRIPTION" \
            --claim-mapping="CLAIM_MAPPING" \
            --location="global"
        

    Sostituisci quanto segue:

    • SCIM_TENANT_ID: un ID per il tuo tenant SCIM.
    • WORKFORCE_POOL_ID: l'ID del pool di forza lavoro che hai creato in precedenza in questo documento.
    • PROVIDER_ID: l'ID del fornitore del pool di identità della forza lavoro creato in precedenza in questo documento.
    • SCIM_TENANT_DISPLAY_NAME: un nome visualizzato per il tenant SCIM.
    • SCIM_TENANT_DESCRIPTION: una descrizione per il tenant SCIM.
    • CLAIM_MAPPING: un elenco separato da virgole di mappature degli attributi. Per l'elenco esteso degli attributi di mappatura, consulta Mappare token e attributi SCIM. Il seguente mapping è consigliato per Gemini Enterprise:
      google.subject=user.emails[0].value.lowerAscii(),google.group=group.displayName

      L'attributo google.subject che mappi nel tenant SCIM deve fare riferimento in modo univoco alle stesse identità mappate nell'attributo google.subject nel provider del pool di identità della forza lavoro utilizzando il flag --attribute-mapping. Una volta creato il tenant SCIM, non puoi aggiornare il mapping delle rivendicazioni. Per sostituirlo, puoi eliminare definitivamente il tenant SCIM e crearne immediatamente uno nuovo. Per scoprire di più sulle considerazioni per l'utilizzo di SCIM, consulta Supporto SCIM.

  2. Al termine del comando, esegui le seguenti operazioni:

    1. Nel campo baseUri dell'output, salva l'intero URI, formattato come https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID. Devi fornire questo URI al tuo IdP.
    2. Inoltre, dall'URI salva solo SCIM_TENANT_UID. Hai bisogno di questo UID per impostare un criterio IAM di autorizzazione sul tenant SCIM più avanti in questo documento.
  3. Crea un token SCIM:

        gcloud iam workforce-pools providers scim-tenants tokens create SCIM_TOKEN_ID \
            --display-name DISPLAY_NAME \
            --scim-tenant SCIM_TENANT_ID \
            --workforce-pool WORKFORCE_POOL_ID \
            --provider PROVIDER_ID \
            --location global
        

    Sostituisci quanto segue:

    • SCIM_TOKEN_ID: un ID per il token SCIM
    • DISPLAY_NAME: il nome visualizzato del token SCIM
    • WORKFORCE_POOL_ID: l'ID del pool di forza lavoro
    • SCIM_TENANT_ID: l'ID del tenant SCIM
    • PROVIDER_ID: l'ID del provider del pool di identità della forza lavoro
  4. Al termine del comando gcloud iam workforce-pools providers scim-tenants tokens create, procedi nel seguente modo:

    1. Nell'output, salva il valore di SCIM_TOKEN nel campo securityToken. Devi fornire questo token di sicurezza al tuo IdP. Il token di sicurezza viene visualizzato solo in questo output. Se lo perdi, devi creare un nuovo token SCIM.

    2. Per verificare se SCIM_TOKEN viene rifiutato dalla policy dell'organizzazione, esegui questo comando:

      curl -v -H "Authorization: Bearer SCIM_TOKEN"  https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Users

      Se il comando non va a buon fine e viene visualizzato un errore relativo alle autorizzazioni, esegui gcloud organizations add-iam-policy-binding, descritto in un passaggio successivo. Se il comando ha esito positivo, puoi saltare questo passaggio.

  5. Imposta un criterio di autorizzazione IAM sul tenant e sul token SCIM. Se il comando curl in un passaggio precedente non è andato a buon fine a causa di un errore relativo alle autorizzazioni, devi eseguire il seguente comando:

        gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
            --member=serviceAccount:SERVICE_AGENT_EMAIL \
            --role roles/iam.scimSyncer
        

    Sostituisci quanto segue:

    • ORGANIZATION_ID: l'ID dell'organizzazione.
    • SERVICE_AGENT_EMAIL: l'indirizzo email dell'agente di servizio. L'indirizzo email è nel seguente formato: o-ORGANIZATION_ID-SCIM_TENANT_UID@gcp-sa-iamscim.iam.gserviceaccount.com. SCIM_TENANT_UID viene restituito quando crei il tenant SCIM.

Quando esegui il provisioning dei gruppi nel tuo IdP, assicurati che il nome visualizzato di ogni gruppo, come fornito nel campo displayName, sia univoco all'interno di un tenant SCIM. Per saperne di più sui gruppi e SCIM in Microsoft Entra ID, consulta Gruppi.

Configura SCIM in Okta

Per configurare SCIM in Okta, nella tua applicazione Okta esistente, segui questi passaggi:

  1. Accedi alla console di amministrazione Okta.
  2. Vai ad Applicazioni > Applicazioni.
  3. Seleziona o crea la tua applicazione:

    • Se vuoi selezionare un'applicazione esistente, procedi nel seguente modo:

      1. Fai clic sul nome dell'applicazione che hai creato utilizzando il modello di federazione delle identità per la forza lavoro di Google Cloud.
      2. Nella scheda Generale, segui questi passaggi:

        1. Nel riquadro Impostazioni app, fai clic su Modifica.
        2. Nel campo Tenant, inserisci l'ID tenant ottenuto dalla gcloud CLI.
        3. Fai clic su Fine.
    • Se vuoi creare una nuova applicazione:

      1. Fai clic su Sfoglia catalogo app.
      2. Nel campo Cerca, inserisci Federazione delle identità della forza lavoro di Google Cloud, quindi seleziona l'integrazione Federazione delle identità della forza lavoro di Google Cloud dai risultati.
      3. Fai clic su Aggiungi integrazione.

        1. Nel campo Applicazione, inserisci un nome per l'app.
        2. Nel campo Tenant, inserisci l'ID tenant ottenuto dalla gcloud CLI.
        3. Fai clic su Fine.
  4. Nella scheda Provisioning, segui questi passaggi:

    1. Nel riquadro Integrazione, fai clic su Modifica.

      1. Nel campo API Token (Token API), inserisci il token SCIM che hai ottenuto da Google Cloud.
      2. Per verificare la validità del token API, fai clic su Testa credenziali.
      3. Seleziona Importa gruppi.
      4. Fai clic su Salva.
    2. Nel riquadro All'app, fai clic su Modifica.

      1. Seleziona Crea utenti, Aggiorna attributi utente e Disattiva utenti.
      2. Fai clic su Salva.

Aggiorna il provider per attivare SCIM

Per abilitare SCIM per un provider:

OIDC

      gcloud iam workforce-pools providers update-oidc PROVIDER_ID \
          --workforce-pool=WORKFORCE_POOL_ID \
          --location=LOCATION \
          --scim-usage=enabled-for-groups
    

Sostituisci quanto segue:

  • PROVIDER_ID: l'ID del provider del pool di identità della forza lavoro
  • WORKFORCE_POOL_ID: l'ID del pool di forza lavoro
  • LOCATION: la posizione del pool di forza lavoro

SAML

      gcloud iam workforce-pools providers update-saml PROVIDER_ID \
          --workforce-pool=WORKFORCE_POOL_ID \
          --location=LOCATION \
          --scim-usage=enabled-for-groups
    

Sostituisci quanto segue:

  • PROVIDER_ID: l'ID del provider del pool di identità della forza lavoro
  • WORKFORCE_POOL_ID: l'ID del pool di forza lavoro
  • LOCATION: la posizione del pool di forza lavoro

Mappare token e attributi SCIM

Devi mappare gli attributi in modo coerente sia nel provider del pool di identità della forza lavoro sia nel tenant SCIM configurato per il provider. Per il provider del pool di identità della forza lavoro, utilizzi il flag --attribute-mapping, mentre per il tenant SCIM, utilizzi il flag --claim-mapping. L'attributo IdP mappato a google.subject per gli utenti deve fare riferimento in modo univoco alla stessa identità, indipendentemente dal fatto che sia definita in un token o in una mappatura SCIM. Per saperne di più sulla mappatura degli attributi quando utilizzi SCIM, consulta la sezione Supporto di SCIM. La tabella seguente mostra come mappare gli attributi nelle rivendicazioni dei token e negli attributi SCIM:

Attributo Google Mapping del provider di pool di identità della forza lavoro Mappatura tenant SCIM
google.subject assertion.oid user.externalId
google.subject assertion.email user.emails[0].value
google.subject assertion.email.lowerAscii() user.emails[0].value.lowerAscii()
google.subject assertion.preferred_username user.userName
google.subject assertion.preferred_username.lowerAscii() user.userName.lowerAscii()
google.group assicurati di aggiornare il tuo fornitore con --scim-usage=enabled-for-groups N/A group.displayName

Forzare l'eliminazione di un tenant SCIM

Per forzare l'eliminazione di un tenant SCIM:

  1. Se --scim-usage=enabled-for-groups è impostato per il tuo provider, disattivalo dalla configurazione del provider:
              gcloud iam workforce-pools providers update-oidc
              --provider=PROVIDER_ID \
              --workforce-pool=WORKFORCE_POOL_ID \
              --location= global
              --scim-usage=SCIM_USAGE_UNSPECIFIED
            

    Sostituisci quanto segue:

    • PROVIDER_ID: l'ID del provider del pool di identità della forza lavoro
    • WORKFORCE_POOL_ID: l'ID del pool di forza lavoro

  2. Elimina il tenant SCIM:
      gcloud iam workforce-pools providers scim-tenants delete SCIM_TENANT_ID \
          --workforce-pool=WORKFORCE_POOL_ID \
          --provider=PROVIDER_ID \
          --hard-delete \
          --location=global
    

    Sostituisci quanto segue:

    • SCIM_TENANT_ID: l'ID del tenant SCIM da eliminare
    • WORKFORCE_POOL_ID: l'ID del pool di forza lavoro
    • PROVIDER_ID: l'ID del provider del pool di identità della forza lavoro
    Per saperne di più su SCIM, inclusa l'eliminazione dei tenant SCIM, consulta Supporto di SCIM.

Passaggi successivi