Connessioni IAM del controllo dell'accesso basato sui ruoli

Questo argomento fornisce istruzioni per la gestione IT su come preparare un'applicazione integrata nel dominio che abilita il controllo dell'accesso basato sui ruoli utilizzando le richieste personalizzate JSON Web Token (JWT). Ciò consentirà agli utenti del dominio di eseguire il login al database utilizzando le proprie credenziali di dominio anziché la password dello schema.

Questo capitolo consente agli utenti del dominio di eseguire l'autenticazione al database con le proprie credenziali di dominio anziché utilizzare la password specifica dello schema.

Per creare un'applicazione integrata di dominio che consenta il controllo dell'accesso basato su ruoli con richieste personalizzate JWT, è necessario effettuare le operazioni riportate di seguito.
Nota

In questo capitolo verrà utilizzato il dominio Default, ma è possibile selezionare qualsiasi dominio delle preferenze.

Crea attributi personalizzati per gli utenti

Gli attributi entità sono proprietà dell'entità. Le informazioni sull'entità utente vengono memorizzate sotto forma di attributi quali nome, cognome, login utente e password. È possibile creare attributi personalizzati utilizzando OCI. Iniziamo definendo un attributo utente personalizzato, che servirà a memorizzare i ruoli assegnati a ciascun utente all'interno del dominio.
  1. Passare a IdentitàDominiPredefinito. Fare clic sulla scheda Gestione schema e selezionare Attributi utente.
  2. Fare clic su Aggiungi attributo in Attributi utente.



  3. Nella finestra di dialogo Aggiungi attributi specificare i campi riportati di seguito.
    • Nome visualizzato: ORDS RBAC
    • Nome:rbac_ords
    • Descrizione:Controllo dell'accesso basato sui ruoli per ORDS
    • Tipo di dati: Array di stringhe

    È possibile lasciare il resto dei campi allo stato predefinito.



    Fare clic su Aggiungi. L'attributo personalizzato è stato aggiunto.

  4. Cercare l'attributo appena aggiunto digitando Personalizzato nel campo di ricerca. Verrà visualizzato l'attributo ORDS RBAC nell'elenco.



    Fare clic su Modifica attributo.

  5. Copiare e annotare il valore di FQN (nome completamente qualificato).



    In questo esempio, FQN è urn:ietf:params:scim:schemas:idcs:extension:custom:User:rbac_ords.

Assegna ruolo personalizzato

Dopo aver creato un attributo utente personalizzato, è possibile continuare ad assegnare ruoli personalizzati all'interno di tale campo attributo.
  1. Passare a IdentitàDominiPredefinito. Fare clic sulla scheda Gestione utenti e selezionare il nome utente dall'elenco di utenti visualizzato.



    Fare clic su Modifica utente. Scorrere fino al campo Altre informazioni e immettere SQL Developer, SODA Developer in ORDS RBAC.

    Per ulteriori informazioni sui ruoli ORDS, vedere questo capitolo in Informazioni sui ruoli utente di Oracle REST Data Services.



    Dopo aver aggiunto i ruoli, fare clic su Salva modifiche.

Creare un'applicazione integrata di dominio

Svilupperemo un'applicazione integrata all'interno del dominio che emetterà un token JWT al momento dell'accesso.

  1. Passare a IdentitàDominiPredefinito. Fare clic sulla scheda Applicazioni integrate e selezionare Aggiungi applicazione.
  2. Fare clic su Applicazione riservata e selezionare Avvia workflow.
  3. Nella finestra di dialogo Aggiungi applicazione riservata specificare i campi riportati di seguito.
    • Nome: immettere il nome dell'applicazione riservata. Ad esempio, Spreadsheet-Addin RBAC.
    • Descrizione: immettere la descrizione. Ad esempio, Applicazione integrata per il controllo dell'accesso basato sul ruolo del componente aggiuntivo del foglio di calcolo.



    Fare clic su Sottometti.

    Verrà visualizzata la pagina dell'applicazione Spreadsheet-Addin RBAC appena aggiunta.

  4. Fare clic su Modifica configurazione OAuth nella scheda OAuth, configurazione della pagina RBAC - Aggiunta foglio di calcolo.



  5. In Configurazione server risorse, selezionare Configurare questa applicazione come server risorse ora.
  6. In Configura API dell'applicazione che devono essere protette da OAuth, selezionare 3600 come scadenza del token di accesso (secondi).
  7. Nel campo Audience principale immettere ssaddin/.
  8. Fare clic su Aggiungi ambiti e aggiungere l'ambito rbac.



  9. In Configurazione client specificare i campi riportati di seguito.
    • Selezionare Configurare questa applicazione come client ora.
    • Selezionare Implicito in Tipi di sovvenzione consentiti.
    • Immettere il valore seguente nel campo URL di reindirizzamento: https://static.oracle.com/cdn/spreadsheet/red-4/redirector.html
    • Immettere il valore seguente nel campo URL post-logout: https://static.oracle.com/cdn/spreadsheet/red-4/redirector.html



    Fare clic su Sottometti.
    Nota

    Assicurarsi di attivare l'applicazione.

Definisci richiesta di risarcimento personalizzata

Per includere i ruoli utente all'interno del JWT, è necessario mappare l'attributo personalizzato stabilito nella prima sezione nel JWT utilizzando un risarcimento personalizzato.

Per raggiungere questo obiettivo, è necessario creare un'applicazione integrata temporanea aggiuntiva e allegare il reclamo personalizzato tramite tale applicazione.

Crea applicazione integrata del dominio di Identity

Verrà creata un'applicazione integrata temporanea aggiuntiva:
  1. Passare a IdentitàDominiPredefinito.
  2. Fare clic sulla scheda Applicazioni integrate e selezionare Aggiungi applicazione.
  3. Fare clic su Applicazione riservata e selezionare Avvia workflow.
    • Immettere il nome dell'applicazione: Applicazione integrata del dominio di identità
    • Descrizione: si tratta di un'applicazione integrata di dominio.

    Fare clic su Sottometti.

  4. Nella pagina Applicazione integrata del dominio di identità, selezionare la scheda Configurazione OAuth.
  5. Fare clic su Modifica configurazione OAuth nella configurazione del server risorse. Nella finestra di dialogo Modifica configurazione OAuth specificare i campi riportati di seguito.

Crea nuova richiesta per il token JWT

Per recuperare un nuovo token di accesso per l'applicazione amministratore del dominio di Identity, sono necessari CLIENT ID, CLIENT SECRET e DOMAIN URL.

Abbiamo CLIENT ID e CLIENT SECRET dall'applicazione integrata di dominio creata nel passo precedente.

Il file DOMAIN URL è disponibile nella pagina del dominio sotto Informazioni sul dominio.



Eseguire il comando seguente e sostituire i valori (CLIENT ID), (CLIENT SECRET) e (DOMAIN URL) con i valori.

export ACCESS_TOKEN=$(curl -s -i -u"(CLIENT ID):(CLIENT SECRET)" -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" --request POST (DOMAIN URL)/oauth2/v1/token -d
      "grant_type=client_credentials&scope=urn:opc:idm:__myscopes__" | tail -n +1 | grep -o
      '"access_token":"[^"]*' | cut -d'"' -f4)
In questo esempio verranno utilizzati i seguenti valori:
  • Client ID: 123a1234e1234567aa12345a1abcdefg1
  • Client Secret: idcscs-12a1a123-a123-1234-1234-e1a05aabc123
  • Domain URL: https://idcs-a123ab1ab12a4bb99a9aa9ab99aabbb9.identity.oraclecloud.com:443
Eseguire il codice seguente nella shell Bash, sostituendo i valori segnaposto di conseguenza.:
export ACCESS_TOKEN=$(curl -s -i -u"123a1234e1234567aa12345a1abcdefg1: idcscs-12a1a123-a123-1234-1234-e1a05aabc123" -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" --request POST https://idcs-a123ab1ab12a4bb99a9aa9ab99aabbb9.identity.oraclecloud.com:443/oauth2/v1/token -d "grant_type=client_credentials&scope=urn:opc:idm:__myscopes__" |
          tail -n +1 | grep -o '"access_token":"[^"]*' | cut -d'"'
        -f4)
 
Per verificare che il token sia stato recuperato correttamente, eseguire il comando seguente ed esaminare il token visualizzato.
echo $ACCESS_TOKEN

L'immagine seguente mostra come vengono visualizzati i comandi sopra riportati nella shell Bash.



Visualizza l'output costituito da più righe (oltre 10) contenenti caratteri alfanumerici.

Eseguire il comando seguente con (ROLE CLAIM NAME) come ssaddin.role e (MODIFIED FQN) come urn:ietf:params:scim:schemas:idcs:extension:custom:User.rbac_ords:
Nota

Utilizzare FQN dal passaggio 1 e sostituire il finale ":" con un ".".

Ad esempio, FQN dal passo 1 è:

urn:ietf:params:scim:schemas:idcs:extension:custom:User:rbac_ords

Quindi il MODIFIED FQN dovrebbe essere:

urn:ietf:params:scim:schemas:idcs:extension:custom:User.rbac_ords
curl -i -X POST (DOMAIN URL)/admin/v1/CustomClaims -H"Cache-Control: no-cache" -H"Accept:application/json" -H"Content-Type:application/json" -H"Authorization: Bearer $ACCESS_TOKEN" -d '{
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim"
    ],
    "name": "(ROLE CLAIM NAME)",
    "value": "$user.(MODIFIED FQN).*",     
    "expression": true,
    "mode": "always",
    "tokenType": "AT",
    "allScopes": false,
    "scopes": [
    "ssaddin/rbac"
  ]
}'
Nota

Sostituire Domain URL con il relativo valore effettivo nel codice sopra riportato.

Verrà visualizzato quanto segue come output:HTTP/1.1 201 Created.

Abilitare il login IAM RBAC per lo schema Autonomous Database

Le seguenti istruzioni consentono a ORDS di convalidare i token JWT bearer e di concedere l'accesso alle risorse protette.
  1. Nella scheda Navigator del foglio di lavoro SQL, selezionare ORDS_METADATA dall'elenco a discesa Schema.
  2. Selezionare Packages dall'elenco a discesa Tipo di oggetto.
  3. Digitare ORDS_SECURITY nel campo Cerca. La funzione di ricerca recupera tutte le voci che iniziano con ORDS_SECURITY.
  4. Espandere il pacchetto ORDS_SECURITY.



  5. Fare clic con il pulsante destro del mouse su CREATE_JWT_PROFILE e fare clic su RUN. Viene visualizzata una finestra di dialogo RUN CODE.
    Nella finestra di dialogo Run Code (Codice esecuzione…), specificare i seguenti valori di campo:
    • P_ISSUER: https://identity.oraclecloud.com/. Questo campo deve essere un valore non nullo e deve essere compilato con una virgola singola.
    • P_AUDIENCE-ssaddin/. Questo campo deve essere un valore non nullo.
    • P_JWK_URL: consente di aggiungere l'URL DOMINIO con /admin/v1/SigningCert/jwk. Deve essere un valore non nullo che inizi con https:// e identifichi la chiave di verifica pubblica fornita dal server di autorizzazione in formato JWK (JSON Web Key).

      È possibile visualizzare l'URL dominio nella scheda Informazioni dominio presente nel menu Domini del menu di navigazione Identità e sicurezza della console OCI.

    • P_DESCRIPTION: immettere la descrizione del profilo. Ad esempio, "RBAC JWT Demo confluence".
    • P_ALLOWED_AGE-"0"
    • P_ALLOWED_SKEW-"0"
    • P_ROLE_CLAIM_NAME- "ssaddin.role"

    Fare clic su Inserisci codice nel foglio di lavoro.



    Eseguire la procedura.



    Verrà visualizzata la "procedura PL/SQL completata correttamente" nel pannello di output.

Creare un file di connessione

  1. Fare clic su Aggiungi nell'intestazione del riquadro Connessioni per aggiungere una connessione. Viene visualizzata la finestra di dialogo Aggiungi nuova connessione.

  2. Specificare i campi riportati di seguito nella finestra di dialogo Aggiungi nuova connessione.
    • Nome connessione: immettere il nome della connessione.
    • URL di Autonomous Database: immettere l'URL dell'Autonomous Database a cui si desidera connettersi. Copiare l'intero URL dall'interfaccia utente Web di Autonomous Database. Ad esempio, immettere o copiare il collegamento seguente "https://<nomehost>-<nomebase>.adb.<regione>.oraclecloudapps.com/" per connettersi al database.
    • Nome schema: immettere lo stesso schema utilizzato per Abilitare il login IAM per lo schema di Autonomous Database.
    • Selezionare il tipo di connessione: OCI IAM
    • URL dominio: immettere l'URL dominio nella scheda Informazioni dominio.
    • Selezionare il tipo IAM RBAC.
    • Ambito IAM: ssaddin/rbac



Una volta creata la connessione, è possibile condividerla con altri utenti di questo dominio.