Skip to main content

Panoramica

Okta può fornire dati normalizzati sul ciclo di vita degli utenti, sull’autenticazione, sull’MFA e sull’attività amministrativa. Tra gli esempi esaminati figurano:
  • account.locked — account bloccato
  • mfa.factor.activated — attiva fattori MFA aggiuntivi
  • auth.login.failed — non riesce ad accedere
Entrambi i metodi di connessione leggono gli stessi due flussi: la directory degli utenti (/api/v1/users) e il log di sistema (/api/v1/logs). Consultare come i dati delle integrazioni diventano Segnali.

Scelta del metodo di connessione

Entrambi i metodi richiedono gli stessi accessi, quindi la scelta riguarda la gestione delle credenziali e non ciò che la piattaforma può leggere.

Opzione A — Token API (SSWS)

Consigliata.

Cosa serve a Living Security

Prerequisiti

  • È necessario essere Super Administrator di Okta per creare un utente di account di servizio, assegnare ruoli di amministratore e creare token API.
1

Creare un utente proprietario del token

Un token API di Okta possiede le autorizzazioni dell’utente che lo ha creato e smette di funzionare se tale utente viene disattivato. Creare un account di servizio dedicato anziché utilizzare un account amministratore personale, in modo che la connessione resti valida anche in caso di cambiamenti nel personale.
  1. Nella Admin Console, andare a Directory → Persone.
  2. Fare clic su Add person e creare un utente come svc-livingsecurity@yourcompany.com.
  3. Attivare l’account.
2

Assegnare il ruolo di amministratore di sola lettura

La piattaforma esegue solo operazioni di lettura. Concedere più del semplice accesso in lettura attribuisce al token autorizzazioni che non utilizzerà mai.
  1. Andare a Sicurezza → Administrators.
  2. Fare clic su Add administrator e selezionare l’utente creato nel passaggio precedente.
  3. Assegnare il ruolo Read-only Administrator.
  4. Salva.
Senza un ruolo di amministratore, le chiamate alla Okta Management API riescono con 200 OK e restituiscono un elenco vuoto. Non è presente alcun 403 che segnali la mancanza del ruolo: i flussi rimangono semplicemente vuoti.
3

Creare il token API

  1. Accedere alla Admin Console come utente dell’account di servizio del passaggio 1. Il token eredita i privilegi dell’account che lo crea.
  2. Andare a Sicurezza → API e aprire la scheda Tokens.
  3. Fare clic su Create token, assegnargli un nome come Living Security Platform e fare clic su Create token.
  4. Copiare subito il valore del token: Okta lo mostra una sola volta e non più in seguito.
Okta disattiva un token API dopo 30 giorni di inutilizzo. Le sincronizzazioni di questa integrazione vengono eseguite almeno una volta al giorno, quindi una connessione attiva mantiene valido il proprio token. Una connessione lasciata in pausa per un mese richiede un nuovo token.
L’elenco di indirizzi riportato sopra è rilevante solo se la propria organizzazione Okta limita l’accesso alle API tramite network zone. La maggior parte delle organizzazioni non lo fa.
4

Individuare il sottodominio del tenant

L’URL della Admin Console ha un aspetto simile a https://acme-admin.okta.com. Il sottodominio del tenant è acme, senza il suffisso -admin, senza .okta.com e senza https://.
La connessione a Okta (SSWS) è stata stabilita.

Risoluzione dei problemi

Il token non è valido, è stato revocato oppure è stato disattivato dopo 30 giorni di inattività. Creare un nuovo token come utente dell’account di servizio e inserirlo nuovamente nella connessione.
Il proprietario del token non ha alcun ruolo di amministratore. Assegnare Read-only Administrator all’account di servizio (passaggio 2): quando il ruolo manca, l’API restituisce 200 OK con un elenco vuoto anziché un errore.
Il token smette di funzionare se l’utente che lo ha creato viene disattivato. Per questo motivo il token deve appartenere a un account di servizio e non a una persona.

Opzione B — Applicazione di servizio OAuth 2.0

Utilizzare questo metodo quando il criterio di sicurezza dell’organizzazione non consente token API di lunga durata. Sostituisce il token con un ID cliente e una coppia di chiavi RSA di cui l’utente è proprietario. Nella piattaforma corrisponde al riquadro Okta (OAuth 2.0), in Impostazioni → Integrazioni → Catalogo. Per autenticarsi con Okta tramite Client Credentials sono necessari i seguenti elementi:
  1. ID cliente - Un identificatore univoco per l’applicazione Okta API Services.
  2. Private Key (JWK) - La chiave privata RSA in formato JSON Web Key, la cui chiave pubblica è registrata nell’applicazione Okta.
  3. Okta Domain - Solo il sottodominio del tenant Okta (ad es. dev-12345678), non il nome host completo.
  4. Scopes - Un elenco di scope della Okta Management API separati da spazi (ad es. okta.users.read okta.logs.read).
Questa guida illustra come creare in Okta un’applicazione API Services con autenticazione private_key_jwt.

Prerequisiti:

  • È necessario disporre di un account Okta. Registrarsi per ottenere un account sviluppatore gratuito su developer.okta.com.

Passaggio 1: Creazione dell’applicazione Okta API Services

  1. Accedere alla Okta Admin Console.
  2. Nella barra laterale sinistra, andare a Applications > Applications.
  3. Fare clic su Create App Integration.
  4. Selezionare API Services come metodo di accesso e fare clic su Avanti.
  1. Assegnare un nome all’applicazione e fare clic su Salva.
  2. Nella scheda General dell’applicazione, individuare l’ID cliente: servirà nell’ultimo passaggio.
  3. Impostare Client authentication su Public key / Private key. Gli scope okta.* sono supportati solo con questo metodo di autenticazione.
  1. Disattivare Proof of possession (DPoP): non è supportato.
L’applicazione deve essere creata come API Services.

Passaggio 2: Generazione e registrazione della coppia di chiavi RSA

Utilizzo del generatore di chiavi di Okta
Okta può generare la coppia di chiavi RSA direttamente nella Admin Console:
  1. Nella Admin Console, aprire l’applicazione API Services.
  2. Andare alla scheda General e scorrere fino alla sezione PUBLIC KEYS.
  3. Fare clic su Add Key, quindi selezionare Generate new key.
  4. Fare clic su Salva: Okta genera la coppia di chiavi e mostra la Private Key (JWK) una sola volta.
  5. Copiare e salvare immediatamente il JSON della chiave privata: non verrà mostrato di nuovo.
  1. La chiave pubblica viene registrata automaticamente nell’applicazione.
Copiare la JWK privata prima di chiudere la finestra di dialogo. Incollarla nel campo Private Key della Living Security Platform nell’ultimo passaggio.
Creazione di una chiave propria
Okta utilizza private_key_jwt per le applicazioni API Services. L’utente genera una coppia di chiavi RSA, registra la JWK pubblica in Okta e fornisce la JWK privata alla Living Security Platform. Generare una JWK privata utilizzando il seguente script Node.js (richiede Node.js 18+):
Registrare la JWK pubblica in Okta:
  1. Nella Admin Console, aprire l’applicazione API Services.
  2. Andare alla scheda General e scorrere fino alla sezione PUBLIC KEYS.
  3. Fare clic su Add Key, incollare il JSON della JWK pubblica prodotto dallo script precedente e fare clic su Salva.
La JWK privata è quella da incollare nella Living Security Platform. Include tutto il materiale della chiave (d, p, q, dp, dq, qi) e il valore kid. Mantenerla riservata.

Passaggio 3: Individuazione dell’Okta Domain

Inserire solo il sottodominio del tenant Okta, ovvero la parte che precede .okta.com.
  • Nella Admin Console, la barra degli indirizzi del browser mostrerà un URL simile a https://dev-12345678-admin.okta.com.
  • L’Okta Domain è solo il sottodominio (ad es. dev-12345678), non dev-12345678.okta.com.
  • In alternativa, andare a Impostazioni > Account nella Admin Console per trovare il proprio dominio Okta, quindi utilizzare la parte del sottodominio.

Passaggio 4: Concessione degli scope API all’applicazione

Okta richiede almeno uno scope in ogni richiesta di token. Prima che l’applicazione possa richiedere scope specifici, questi devono essere concessi:
  1. Nella Admin Console, andare a Applications > Applications e aprire l’applicazione.
  2. Fare clic sulla scheda Okta API Scopes.
  3. Concedere gli scope richiesti dall’integrazione: okta.users.read e okta.logs.read.
L’elenco completo degli scope disponibili è riportato nel riferimento della Okta Management API.

Passaggio 5: Assegnazione di un ruolo di amministratore all’applicazione

La sola concessione degli scope non è sufficiente: gli endpoint della Okta Management API (ad es. /api/v1/users) restituiscono silenziosamente una risposta 200 [] vuota se l’applicazione non ha alcun ruolo di amministratore. È necessario assegnare almeno Read-Only Administrator:
  1. Nella Admin Console, andare a Sicurezza > Administrators (oppure a Applications > Applications > la propria app > Admin roles).
  2. Fare clic su Add administrator assignment e selezionare l’applicazione API Services.
  1. Assegnare il ruolo Read-Only Administrator (o superiore, in base agli scope necessari).
  2. Fare clic su Salva.
Senza un ruolo di amministratore, le chiamate API riescono con 200 OK ma restituiscono risultati vuoti e non viene segnalato alcun errore 403 che indichi il problema.

Passaggio 6: Inserimento delle credenziali nella Living Security Platform

Una volta ottenuti ID cliente, Private Key (JWK), Okta Domain e Scopes:
  1. Aprire il modulo in cui è necessario eseguire l’autenticazione con Okta (Client Credentials).
  2. Inserire l’ID cliente.
  3. Incollare la Private Key (JWK): l’intero oggetto JSON dello script precedente (su una sola riga o formattato).
  4. Inserire l’Okta Domain indicando solo il sottodominio del tenant (ad es. dev-12345678).
  5. Inserire gli Scopes come elenco separato da spazi (ad es. okta.users.read okta.logs.read).
  6. Inviare il modulo: l’autenticazione dovrebbe riuscire.
La connessione a Okta (Client Credentials) è stata stabilita.
Parti di questa documentazione sono adattate da Nango e utilizzate ai sensi della Elastic License 2.0.