Configurare il provisioning degli utenti MariaDB
Il provisioning degli utenti in MariaDB semplifica la gestione degli accessi (IAM) e automazione degli utenti esterni e interni nelle applicazioni. miniOrange consente di creare, gestire ed eliminare l'accesso degli utenti alle app on-premise, cloud e ibride
Ecco tre parti principali per impostare la sincronizzazione utente tra il tuo database e miniOrange IdP. Sono le seguenti:
- Parte A: Aggiungere il tuo database MariaDB come directory esterna in miniOrange IdP
- Parte B: Configurazione delle query per il provisioning degli utenti
- Parte C: Configurazione del provisioning degli utenti e del mapping degli attributi
Considerate il seguente schema per impostare il provisioning/deprovisioning degli utenti. Abbiamo utilizzato questo schema per illustrare come configurare le opzioni per un database semplice. Potete utilizzare questo esempio per configurare il vostro database come Directory esterna in miniOrange.
Configurazione di esempio:
| Tipo di database |
MariaDB-10.4.14 |
| Nome del database |
Wordpress |
| URL JDBC del database (per MariaDB) |
jdbc:mysql://{dominio-server}:3306/wordpress |
| Tabella in cui sono archiviate le informazioni dell'utente |
wp_users |
descrizione della tabella wp_users:
| Column |
Tipo |
Descrizione |
| ID |
bigint(20) non firmato |
Colonna ID utente |
| user_login |
VARCHAR |
Colonna Nome utente |
| user_pass |
VARCHAR |
Memorizza la password dell'utente; memorizzerà la password predefinita durante la creazione dell'utente |
| display_name |
VARCHAR |
Nome visualizzato dell'utente |
| user_email |
VARCHAR |
Indirizzo email dell'utente |
Parte A: Aggiungere il database MariaDB come directory esterna in miniOrange IdP
- Fare riferimento ai passaggi 1-3 da questo documento.
Parte B: Configurazione del provisioning degli utenti per il database
Il provisioning degli utenti può essere configurato in due direzioni: in entrata (ad esempio dal database a miniOrange) e in uscita (da miniOrange al database).
Il provisioning in entrata si occupa dell'importazione degli utenti, mentre l'outbound si occupa della creazione/eliminazione/aggiornamento degli utenti. In entrambi i casi, è necessario il mapping degli attributi. Il mapping degli attributi tra le colonne del database e gli attributi miniOrange IdP viene eseguito tramite una notazione speciale. I valori delle colonne vengono dedotti dal miniOrange IdP tramite questa notazione.
- Per configurare il provisioning degli utenti per il tuo database, dovrai prima andare alla sezione Directory esterna. Qui, vedrai l'elenco delle directory esterne configurate.

- Fare clic sul menu a discesa vicino al database configurato e selezionare Modifica:

- Verrà aperta la pagina di modifica della directory esterna configurata.

- Ora sei pronto per configurare tutte le funzionalità di provisioning richieste.
1. Importa utenti
- Questo è un esempio di provisioning in entrata. Gli utenti vengono importati dal database nella directory esterna predefinita di miniOrange. Gli attributi da selezionare sono specificati nella sezione attributi di Database come directory esterna. Per ogni attributo (tranne username e password) che si desidera importare e mappare a un utente nella directory esterna predefinita di miniOrange, è necessario specificare una query SELECT.
- Non è necessario specificare una query SELECT per i valori delle colonne nome utente e password; vengono importati automaticamente utilizzando i nomi delle colonne utilizzati durante la configurazione del database come directory esterna.
- Nella pagina di modifica dell'archivio utenti, scorri verso il basso fino a visualizzare l'opzione per aggiungere attributi al database.

- Aggiungi tutti i campi di input che ti servono. Per questo esempio, abbiamo 3 colonne del database - FIRSTNAME, LASTNAME e EMAIL_ADDRESS - escludendo le colonne USERNAME e PASSWORD. Le query per queste colonne saranno le seguenti:
- Query per Nome →
SELECT '##FIRSTNAME##', FIRSTNAME FROM USERS WHERE USERNAME=?
- Query per Cognome →
SELECT '##LASTNAME##', LASTNAME FROM sUSERS WHERE USERNAME=?
- Richiesta indirizzo email →
SELECT '##EMAIL_ADDRESS##', EMAIL_ADDRESS FROM USERS WHERE USERNAME=?
- La notazione [ '##COLUMN_NAME##', COLUMN_NAME ] nella query indica a miniOrange che questo campo deve essere popolato con il valore della colonna dal database, in base all'identificativo univoco del nome utente.
- Dopo aver aggiunto le query, la configurazione dovrebbe apparire così:
2. Controlla gli utenti
- Questa query viene utilizzata per verificare se un particolare utente esiste già nel database. Un utente che esiste già nel database non verrà creato di nuovo. La struttura della query dovrebbe essere tale da verificare tutte le colonne nella tabella che definiscono un utente distinto.
- Nel nostro esempio confronteremo il valore della colonna USERNAME con il campo pertinente in miniOrange:
SELECT * FROM USERS WHERE USERNAME='##USERNAME##'
3. Crea utente
- Queste query creano un utente nel database ogni volta che un utente viene creato in miniOrange. La query dovrebbe contenere i nomi di colonna appropriati. In questo esempio, la password è impostata su una stringa predefinita (che deve essere modificata in seguito).
- Queste query utilizzano la stessa notazione per specificare gli attributi che devono essere mappati da miniOrange IdP al database. Questo è un esempio di provisioning in uscita.
- Nel nostro esempio, sincronizzeremo username, firstname, lastname e indirizzo email dell'utente appena creato da miniOrange al database. Passeremo una stringa di password predefinita ('defaultPassword123#') al database:
INSERT INTO USERS (USERNAME, PASSWORD, FIRSTNAME, LASTNAME, EMAIL_ADDRESS) VALUES
('##USERNAME##', 'defaultPassword123#',
'##FIRSTNAME##','##LASTNAME##','##EMAIL_ADDRESS##')
- In questo esempio, le stringhe [ '##USERNAME##', '##FIRSTNAME##', '##LASTNAME##' ] verranno sostituite dai valori username, firstname e lastname del nuovo utente creato in miniOrange.
4. Aggiorna utente
- Queste query aggiornano un utente nel database ogni volta che i dettagli utente rilevanti vengono modificati in miniOrange. Questo è un esempio di provisioning in uscita.
- In questo esempio, tutti i campi per un utente specifico vengono aggiornati nel database quando viene attivato un aggiornamento in miniOrange. Il valore username è immutabile in miniOrange, quindi è stato utilizzato nella clausola WHERE:
UPDATE USERS SET FIRSTNAME='##FIRSTNAME##', LASTNAME='##LASTNAME##',
EMAIL_ADDRESS='##EMAIL_ADDRESS##' WHERE USERNAME='##USERNAME##'

- In questo esempio, vengono aggiornati solo i dettagli degli utenti il cui nome utente è lo stesso sia in miniOrange che nel database.
5. Elimina utenti
- Queste query eliminano un utente dal database ogni volta che un utente viene eliminato in miniOrange. Questo è un esempio di provisioning in uscita.

- In questo esempio, elimineremo dal database quegli utenti il cui valore della colonna nome utente corrisponde al valore del campo nome utente in miniOrange:
DELETE FROM USERS WHERE USERNAME='##USERNAME##'

- In questo esempio, solo gli utenti il cui nome utente corrisponde esattamente sia nel database che in miniOrange vengono eliminati dal database.
Dopo aver inserito i valori richiesti, scorri verso il basso e fai clic su Salva per salvare la configurazione corrente.
C. Configurare il provisioning degli utenti e la mappatura degli attributi
Visualizza i report di provisioning
Come accedere ai report di provisioning?
- Accedere a Report nel riquadro di navigazione a sinistra, cerca vettovagliamentoe selezionare Rapporto di provisioning.

- Filtra i report specificando Identificatore dell'utente finale and Nome dell'applicazione criteri. Inoltre, scegli il desiderato arco di tempo per i report. Una volta fatto, clicca su Cerca.

- In alternativa, puoi cliccare direttamente su Cerca per recuperare tutti i report di provisioning in base al tempo senza applicare filtri specifici.