AziendaGuida introduttiva

Gestire i provider di identità

Configura provider di identità (IdP) personalizzati per il single sign-on SAML o OIDC, in modo che gli utenti della tua organizzazione possano autenticarsi con le credenziali aziendali esistenti.

Nota:

La gestione dei provider di identità è disponibile solo per gli amministratori del piano Enterprise.

Configura un provider di identità (IdP) personalizzato per abilitare il single sign-on (SSO) nella tua organizzazione. Quando configuri un IdP, Bob ti reindirizza ad esso per l'autenticazione quando accedi a IBM Bob dall'IDE, da Bob Shell e da Bob Web.

Puoi configurare provider di identità SAML e OpenID Connect (OIDC) con Bob. Usa il protocollo che corrisponde alla piattaforma di identità della tua organizzazione.

Compatibilità dei protocolli SSO

IBM Bob è compatibile con i seguenti protocolli SSO:

  • SAML (Security Assertion Markup Language)
  • OIDC (OpenID Connect)

Provider OIDC verificati

Sebbene tu possa usare altri provider OIDC che soddisfano i requisiti di configurazione e token, le seguenti piattaforme sono verificate:

  • Auth0
  • Keycloak
  • Okta
  • PingOne

Aggiungere un provider di identità

L'aggiunta di un IdP è un processo in due fasi. Prima configuri l'IdP e lo salvi. Poi aggiungi i domini email che lo utilizzano.

Fase 1: Configurare il provider di identità

Vai alla pagina di amministrazione di IBM Bob.

Seleziona la scheda Authentication.

Clicca su Add IdP. Inserisci un nome per l'IdP. Seleziona il tipo di IdP: SAML o OIDC. Genera le tue credenziali di service provider (SP).

Bob richiede una chiave privata SP e un certificato SP per firmare le richieste di autenticazione SAML. Devi generarli tu stesso usando lo strumento da riga di comando openssl.

Nota:

Se hai già una coppia di chiavi SP e un certificato, passa al passaggio successivo.

Esegui il seguente comando per generare la chiave privata SP:

openssl genrsa -out sp_private_key.pem 2048

Quindi esegui questo comando per generare il certificato SP dalla chiave privata. Sostituisci i valori /CN, /O e /C con un nome descrittivo del certificato, il nome della tua organizzazione e il tuo codice paese di due lettere:

openssl req -new -x509 -key sp_private_key.pem -out sp_certificate.pem -days 365 -subj "/CN=Bob SAML SP/O=IBM/C=US"
Nota:

Il file sp_certificate.pem deve anche essere caricato sul tuo IdP in modo che possa verificare le firme delle richieste provenienti da Bob.

Inserisci i dettagli di configurazione dell'IdP. Rivedi i requisiti specifici del protocollo nelle sezioni seguenti. Clicca su Save.

L'IdP viene creato e appare nella tabella della scheda Authentication.

Configurazione SAML

SAML richiede i seguenti dettagli di configurazione:

Campi identity provider — ottienili dal tuo IdP:

  • idp_entity_id — l'identificatore univoco dell'IdP (ad esempio, https://idp.example.com)
  • idp_sso_url — l'URL SSO dove Bob invia le richieste di autenticazione
  • idp_certificate — il certificato X.509 codificato in PEM utilizzato per verificare le risposte SAML dall'IdP

Campi service provider — usa i file generati nel passaggio precedente:

  • sp_private_key — il contenuto di sp_private_key.pem
  • sp_certificate — il contenuto di sp_certificate.pem

Campi opzionali:

  • idp_slo_url — l'URL Single Logout dell'IdP. Single Logout non è ancora completamente implementato in Bob.

Nella sezione Attribute mapping, associa gli attributi utente dell'IdP ai campi utente di IBM Bob. Il formato di mappatura è nome attributo Bob → nome attributo o URI dell'IdP. Controlla la configurazione del tuo IdP per i nomi degli attributi corretti.

  • email (obbligatorio) — l'indirizzo email dell'utente
  • name (opzionale) — il nome completo visualizzato dell'utente
  • given_name (opzionale) — il nome dell'utente
  • family_name (opzionale) — il cognome dell'utente
  • groups (opzionale) — i gruppi dell'utente

Amministratore IdP: registrazione di un nuovo client OIDC

Prima che un admin dell'istanza Bob possa configurare un record IdP OIDC in Bob, l'amministratore IdP deve creare un'applicazione OIDC (client) nel provider di identità. I valori prodotti in questo passaggio sono quelli che l'admin dell'istanza Bob inserisce quando aggiunge l'IdP in Bob.

Tipo di applicazione e tipo di concessione

Crea un'applicazione web (lato server / client riservato) nel tuo provider di identità e abilita il tipo di concessione Authorization Code. Bob utilizza esclusivamente il flusso Authorization Code — non selezionare Implicit, Device Code o Client Credentials.

URI di reindirizzamento

Registra il seguente URL di callback nell'applicazione OIDC. La maggior parte dei provider esegue una corrispondenza esatta della stringa, quindi copiala esattamente:

https://api.us-east.bob.ibm.com/authn/v1/auth/callback

Scope da abilitare sul client

ScopeScopoObbligatorio
openidAbilita la modalità OIDC e restituisce un id_token
emailEspone l'indirizzo email dell'utente nell'id_token o tramite l'endpoint userinfo
offline_accessConcede un refresh_token insieme all'access tokenSì per la maggior parte dei provider

Bob richiede che un refresh_token sia presente in ogni risposta di scambio del codice di autorizzazione. Se il tuo provider emette refresh token tramite un meccanismo diverso (ad esempio, uno scope specifico del provider o in modo incondizionato a ogni scambio di codice), configuralo di conseguenza — ma assicurati che il client sia autorizzato a ricevere refresh token. Se non viene restituito alcun refresh_token, l'accesso viene interrotto.

Metodo di autenticazione al token endpoint

Configura il metodo di autenticazione al token endpoint dell'applicazione OIDC su client_secret_post. Bob invia client_id e client_secret come parametri nel corpo del form in ogni richiesta di token. client_secret_basic, private_key_jwt e none non sono accettati.

Impostazioni dei token

ImpostazioneValore richiesto
Formato dell'access tokenQualsiasi (JWT o opaco — Bob non analizza direttamente l'access token dell'IdP)
ID tokenDeve essere emesso a ogni scambio del codice di autorizzazione e a ogni rinnovo del token
Algoritmo di firma dell'ID tokenRS256, ES256 o PS256
Rotazione del refresh tokenPuoi usare la rotazione del refresh token. Bob memorizza il nuovo token a ogni rinnovo. Se il tuo provider ruota i refresh token, assicurati che il provider invalidi il token precedente solo dopo che Bob ha ricevuto quello sostitutivo (comportamento di rotazione standard, non monouso senza finestra di tolleranza).

Valori da consegnare all'admin dell'istanza Bob

Una volta creata l'applicazione client, consegna i seguenti valori all'admin dell'istanza Bob:

ValoreDove trovarloCampo di configurazione Bob
Client IDPagina delle credenziali dell'applicazioneclient_id
Client SecretPagina delle credenziali dell'applicazioneclient_secret
URL dell'authorization endpointPagina degli endpoint OIDC del provider o .well-known/openid-configurationauthorization_endpoint
URL del token endpointPagina degli endpoint OIDC del provider o .well-known/openid-configurationtoken_endpoint
JWKS URIPagina degli endpoint OIDC del provider o .well-known/openid-configurationjwks_uri
URL dell'issuerPagina degli endpoint OIDC del provider o .well-known/openid-configurationissuer
URL dell'userinfo endpoint (opzionale)Pagina degli endpoint OIDC del provider o .well-known/openid-configurationuserinfo_endpoint
Suggerimento:

La maggior parte dei provider pubblica tutti gli URL degli endpoint su https://<tuo-dominio-provider>/.well-known/openid-configuration.

Configurazione OIDC

Puoi usare la scoperta del provider OIDC. Clicca sul pulsante Retrieve configuration per popolare automaticamente i campi endpoint dal documento .well-known/openid-configuration del tuo provider, oppure puoi inserire manualmente ogni URL di endpoint.

OIDC richiede i seguenti dettagli di configurazione:

CampoRichiestoDescrizione
client_idL'identificatore client registrato con il tuo provider di identità.
client_secretIl client secret per l'applicazione registrata. Bob lo memorizza in modo sicuro e non lo restituisce mai nelle risposte API.
scopesGli scope richiesti durante il flusso di autorizzazione. Questo elenco deve includere openid. Di solito include anche email e lo scope specifico del provider utilizzato per emettere un refresh token, come offline_access.
authorization_endpointL'URL di autorizzazione HTTPS a cui Bob reindirizza gli utenti per l'accesso.
token_endpointL'URL del token HTTPS utilizzato per scambiare il codice di autorizzazione con i token.
jwks_uriL'URL HTTPS del JSON Web Key Set (JWKS) utilizzato per verificare la firma delle risposte id_token.
issuerNoL'identificatore dell'emittente HTTPS per il provider di identità.
promptNoIl valore prompt OIDC inoltrato alla richiesta di autorizzazione.

OIDC non utilizza Attribute mapping. Bob legge l'email dell'utente direttamente dal claim email nell'id_token.

Esempio di configurazione OIDC

{
  "authorization_endpoint": "https://corp.okta.com/oauth2/default/v1/authorize",
  "token_endpoint": "https://corp.okta.com/oauth2/default/v1/token",
  "issuer": "https://corp.okta.com/oauth2/default",
  "client_id": "0oa1b2c3d4e5f6g7h8i9",
  "client_secret": "super-secret-value",
  "scopes": ["openid", "email", "offline_access"]
}

Requisiti e limitazioni OIDC

  • Bob richiede un refresh_token nella risposta di scambio del codice di autorizzazione. Se il tuo provider non ne restituisce uno, l'accesso fallisce.
  • Per la maggior parte dei provider, l'aggiunta di offline_access a scopes è ciò che attiva l'emissione del refresh token. Alcuni provider utilizzano un comportamento diverso, quindi controlla la documentazione del tuo provider.
  • Il logout back-channel OIDC non è disponibile.
  • Se il tuo provider modifica i suoi URL di endpoint, aggiorna la configurazione dell'IdP in Bob.

Fase 2: Aggiungere filtri di dominio

Dopo aver salvato l'IdP, aggiungi i domini email che devono utilizzarlo per l'autenticazione.

Nella scheda Authentication, individua l'IdP appena creato e apri le sue impostazioni. Nella sezione Domain filters, aggiungi i domini email che devono utilizzare questo IdP. Gli utenti i cui indirizzi email corrispondono a un dominio configurato vengono reindirizzati a questo IdP al momento dell'accesso. Salva le modifiche.

Nota:

Ogni dominio email può essere associato a un solo IdP. Se un dominio è già utilizzato da un altro IdP, la configurazione non può essere salvata finché il conflitto non viene risolto. Ogni dominio deve inoltre essere verificato prima che il SSO venga applicato. Vedi Verificare la proprietà del dominio.

Verificare la proprietà del dominio

IBM Bob richiede che tu verifichi che la tua organizzazione sia proprietaria di ogni dominio prima che il SSO venga applicato. La verifica avviene aggiungendo un record TXT DNS al dominio.

Vai alla pagina di amministrazione di IBM Bob. Seleziona la scheda Authentication. Seleziona l'IdP che contiene il dominio che vuoi verificare. Nella sezione Domain filters, individua il dominio e copia il codice di verifica mostrato. Nel tuo provider DNS, aggiungi un record TXT al dominio con il seguente formato:

bob-verify=<verification-code>

Sostituisci verification-code con il codice copiato dalla sezione Domain filters. Torna alla scheda Authentication e clicca su Check verification per il dominio.

Lo stato di verifica del dominio si aggiorna a Verified quando IBM Bob rileva correttamente il record TXT. Le modifiche DNS possono richiedere del tempo per propagarsi.

Rimuovere un provider di identità

Vai alla pagina di amministrazione di IBM Bob. Seleziona la scheda Authentication. Individua l'IdP che vuoi rimuovere e clicca su Delete. Nella finestra di dialogo di conferma, clicca su Confirm.

Avviso:

L'eliminazione di un IdP rimuove la configurazione SSO per tutti i domini associati. Gli utenti che utilizzavano quell'IdP per autenticarsi dovranno accedere tramite un altro metodo. Viene visualizzato un avviso se l'IdP ha domini verificati.

Come valuti questo argomento?