Protezione dei servizi Web RESTful

Definire i ruoli, i privilegi e i client OAuth per garantire che l'autenticazione e l'autorizzazione siano necessarie per accedere ai servizi Web RESTful.

Per proteggere un servizio Web RESTful, è necessario:

  • Crea un ruolo

  • Creare un privilegio selezionando il ruolo e i moduli o le risorse da proteggere

Per abilitare l'accesso a un servizio RESTful protetto mediante il flusso di lavoro OAUTH2, creare un client OAuth utilizzando il ruolo e il privilegio creati per proteggere il servizio RESTful.

Le sezioni riportate di seguito forniscono informazioni su come creare ruoli, privilegi e client OAuth.

Gestione dei ruoli

È possibile creare, modificare ed eliminare i ruoli per i servizi RESTful nella pagina Ruoli.

Per andare alla pagina Ruoli, nella pagina Panoramica REST fare clic su Ruoli in Oggetti oppure selezionare Sicurezza dal menu nell'intestazione, quindi selezionare Ruoli.

Le azioni disponibili nel menu di scelta rapida sono le seguenti:

Creazione di un ruolo

Creare un ruolo con un nome specifico. Dopo aver creato il ruolo, è possibile associarlo a un privilegio.

  1. Nella pagina Ruoli fare clic su Crea ruolo.
  2. Nel campo Nome ruolo, immettere il nome del ruolo da creare.

    Mostra codice: selezionare questa opzione per visualizzare l'equivalente codice PL/SQL del dispositivo di scorrimento Crea ruolo. È possibile copiare ed eseguire questo codice PL/SQL nel foglio di lavoro per eseguire la stessa azione che si verifica quando si fa clic su Crea nel dispositivo di scorrimento Crea ruolo.

  3. Fare clic su Crea.

    Il nuovo ruolo assegnato viene visualizzato nella pagina Ruoli.

Modifica di un ruolo

In questa sezione viene descritto come modificare un ruolo.

  1. Nella pagina Ruoli, per il ruolo specifico, fare clic su Azioni menu di scelta rapida e selezionare Modifica.
  2. Immettere le modifiche necessarie e fare clic su Salva.

    Per una descrizione dei campi, vedere Creazione di un ruolo.

Eliminazione di un ruolo

In questa sezione viene descritto come eliminare un ruolo.

  1. Nella pagina Ruoli, per il ruolo specifico, fare clic su Azioni menu di scelta rapida e selezionare Elimina.

    Viene richiesto di confermare.

  2. Fare clic su per eliminarla.

Visualizzazione dei privilegi assegnati

In questa sezione viene descritto come visualizzare i privilegi associati a un ruolo.

Nella pagina Ruoli, per il ruolo specifico, fare clic su Azioni menu di scelta rapida e selezionare Dettagli. Vengono visualizzati i privilegi assegnati al ruolo.

Gestione dei privilegi

È possibile creare, modificare ed eliminare i privilegi per i servizi RESTful nella pagina Privilegi.

Un privilegio definisce il set di ruoli, di cui almeno uno deve essere in possesso un utente autenticato per accedere a un servizio RESTful protetto da un privilegio.

Per andare alla pagina Privilegi, nella pagina Panoramica REST fare clic su Privilegi in Oggetti oppure, dal menu nell'intestazione, selezionare Sicurezza, quindi selezionare Privilegi.

Nella figura seguente sono riportati gli attributi dei privilegi visualizzati per impostazione predefinita nella vista Scheda.

Le azioni disponibili nel menu di scelta rapida sono le seguenti:

Creazione di un privilegio

In questa sezione viene descritto come creare un privilegio.

  1. Nella pagina Privilegi, fare clic su Crea privilegio.
  2. Immettere i campi seguenti. I campi contrassegnati con un asterisco (*) sono obbligatori:
    • Etichetta: immettere il nome del privilegio in modo che sia di facile comprensione.
    • Nome: immettere un nome univoco per il privilegio.
    • Descrizione: immettere una breve descrizione dello scopo del privilegio.
    • Commenti: immettere i commenti.
    • Ruoli: immettere uno o più ruoli assegnati al privilegio.
    • Moduli protetti: selezionare i moduli da proteggere.
    • Risorse protette: al posto dei moduli protetti, utilizzare la scheda Risorse di protezione per applicare la sicurezza in base a un pattern URI.

    Mostra codice: selezionare questa opzione per visualizzare l'equivalente codice PL/SQL del dispositivo di scorrimento Crea privilegio. È possibile copiare ed eseguire questo codice PL/SQL nel foglio di lavoro per eseguire la stessa azione che si verifica quando si fa clic su Crea nel dispositivo di scorrimento Crea privilegio.

  3. Fare clic su Crea.

    Il nuovo privilegio viene visualizzato nella pagina Privilegi.

Modifica di un privilegio

In questa sezione viene descritto come modificare un privilegio.

  1. Nella pagina Privilegi, per il privilegio specifico, fare clic su Azioni menu di scelta rapida e selezionare Modifica.
  2. Apportare le modifiche necessarie e fare clic su Salva.

    Per una descrizione dei campi, vedere Creazione di un privilegio.

Eliminazione di un privilegio

In questa sezione viene descritto come eliminare un privilegio.

  1. Nella pagina Privilegi, per il privilegio specifico, fare clic su Azioni menu di scelta rapida e selezionare Elimina.
  2. Vi viene richiesto di confermare. Fare clic su Sì.

Gestione dei client OAuth

Utilizzando l'autenticazione basata su OAuth 2.0, è possibile assicurarsi che l'accesso ai servizi Web RESTful venga eseguito solo da utenti o client specifici.

OAuth 2.0 è un protocollo Internet standard che definisce i flussi per fornire accesso condizionale e limitato a un'API RESTful. Per ulteriori informazioni, vedere Autenticazione basata su OAuth .

È possibile creare, modificare ed eliminare i client OAuth nella pagina Client OAuth.

Per passare alla pagina Client OAuth, nella pagina Panoramica REST fare clic su Clienti in Oggetti oppure, dal menu nell'intestazione, selezionare Sicurezza, quindi selezionare Cliente OAuth.

Nella figura seguente sono riportati gli attributi client OAuth visualizzati per impostazione predefinita nella vista Scheda.

Per creare un client OAuth, vedere Creazione di un client OAuth.

Le azioni disponibili nel menu di scelta rapida sono le seguenti:

Creazione di un client OAuth

Crea il client OAuth e concede i ruoli e i privilegi necessari.

  1. Nella pagina Client OAuth, selezionare Crea client OAuth.
  2. Immettere i campi seguenti. I campi contrassegnati con un asterisco (*) sono obbligatori:

    Scheda Definizione client

    • Tipo di concessione: selezionare il tipo di concessione di autorizzazione. Le opzioni sono Client_Cred, Auth Code o Implicit.

      Per ulteriori informazioni su questi tipi di sovvenzione, vedere OAuth Flows in Oracle REST Data Services Developer's Guide.

    • Nome: il nome del client.
    • Descrizione: descrizione dello scopo del client.
    • URI reindirizzamento: immettere l'URI controllato dal client a cui verrà inviato il reindirizzamento contenente un token di accesso OAuth o un errore.
    • URI supporto: immettere l'URI in cui gli utenti finali possono contattare il client per il supporto. Esempio: http:// www.myclientdomain.com/support/
    • E-mail di supporto: immettere il messaggio di posta elettronica in cui gli utenti finali possono contattare il client per il supporto.
    • Logo: caricare il logo in formato file JPG, BMP o SVG. Assicurarsi che la dimensione del logo sia inferiore a 100 KB.
    • Ruoli: selezionare i ruoli da concedere.
    • Origini consentite: aggiungere la lista dei prefissi di URL.
    • Privilegi: selezionare i privilegi a cui il client desidera accedere.

    Mostra codice: selezionare questa opzione per visualizzare l'equivalente codice PL/SQL del pannello Crea client OAuth. È possibile copiare ed eseguire questo codice PL/SQL nel foglio di lavoro per eseguire la stessa azione che si verifica quando si fa clic su Crea nel pannello Crea client OAuth.

  3. Fare clic su Crea.

    Il client OAuth registrato viene visualizzato nella pagina Client OAuth.

    Viene visualizzata un'anteprima del segreto client. I segreti sono applicabili solo per i tipi di privilegio Credenziali client e Codice OAuth. Copiare il valore segreto poiché questa è l'unica istanza visualizzata. Se si dimentica il segreto client, è possibile utilizzare l'azione Ruota segreto per modificarlo. Vedere Gestione dei segreti.

    Il valore ID client rappresenta la credenziale segreta per il client OAuth. Fare clic su Mostra/Nascondi icona mostra/nascondi per visualizzare i valori.

    Eseguire il test dell'endpoint del servizio REST protetto utilizzando un client REST o lo strumento della riga di comando cURL.

Modifica di un client OAuth

In questa sezione viene descritto come modificare un client OAuth.

  1. Nella pagina Client OAuth, per il client specifico, fare clic su Azioni menu di scelta rapida e selezionare Modifica.
  2. Modificare i campi obbligatori e fare clic su Salva.

    Per una descrizione dei campi, vedere Creazione di un client OAuth.

Eliminazione di un client OAuth

In questa sezione viene descritto come eliminare un client OAuth.

  1. Nella pagina Client OAuth, per il client specifico, fare clic su Azioni menu di scelta rapida e selezionare Elimina.
  2. Vi viene richiesto di confermare. Fare clic su Sì.

Esportazione di un client OAuth

In questa sezione viene descritto come esportare un client OAuth.

  1. Nella pagina Client OAuth, per il client specifico, fare clic su Azioni menu di scelta rapida e selezionare Esporta.
  2. Nel pannello Client OAuth, fare clic sull'icona Copia o su Scarica per copiare o scaricare le informazioni sul client OAuth.

Gestione dei segreti

Dopo aver generato un segreto client per un client OAuth, è possibile ruotare o revocare il segreto, se necessario. Le opzioni Ruota e Revoca sono disponibili nel menu di scelta rapida del client OAuth specifico.

Nota

Con l'obsolescenza dei package PL/SQL OAUTH e OAUTH_ADMIN (vedere Riferimento package PL/SQL ORDS_SECURITY), il processo di creazione dei segreti client OAUTH cambia per i tipi di privilegio Credenziali client e Codice autorizzazione.

Per i client OAuth creati con un segreto non cifrato, l'etichetta Legacy viene visualizzata sulla scheda.

Ruota segreto client

Rimuove il segreto esistente e ne crea uno nuovo. Ciò è utile quando non è possibile ricordare il valore del segreto client esistente.

  • Se esiste un segreto client per il client OAuth, fare clic su Ruota per rimuovere quello esistente e generare un nuovo segreto client.

  • Se un segreto client viene revocato e non è stato assegnato alcun valore segreto, fare clic su Registra per generare un segreto client per il client OAuth.

Revoca un segreto client

Rimuove il segreto client esistente.

Selezionare Revoca sessioni per rimuovere tutte le sessioni client esistenti.

Esempi

In questa sezione vengono forniti alcuni esempi sulla creazione di un client OAuth con tipi di privilegio diversi.

Creazione di un client OAuth mediante il tipo di concessione delle credenziali client

In questa sezione viene descritto come creare un client OAuth utilizzando il tipo di privilegio Credenziale client.

Creare un client OAuth per il modulo creato "esempio" in Esempio: inserimento di un record mediante un handler POST. L'endpoint per il servizio RESTful è http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/.

Prerequisiti

Creare un ruolo denominato Amministratore HR. Vedere Creazione di un ruolo

Creare un privilegio denominato Example.HR. Vedere Creazione di un privilegio

  1. Nella pagina Client OAuth, fare clic su Crea client OAuth.
  2. Immettere i campi riportati di seguito.
    • Nel campo Tipo di privilegio, selezionare CLIENT_CRED.
    • Immettere nome, descrizione, URI di reindirizzamento, URI di supporto ed e-mail di supporto per il client OAuth.

    • Nella scheda Ruoli aggiungere il ruolo creato (amministratore HR).

    • Nella scheda Privilegi aggiungere il privilegio creato (Esempio.HR).

    • Fare clic su Crea.

    La nuova scheda client OAuth viene visualizzata nella pagina Client OAuth.

  3. Utilizzando cURL, eseguire il test dell'endpoint del servizio senza credenziali OAuth.
    curl --location --request POST --header "Content-Type: application/json" 
    --data '{"DEPTNO": 55, "DEPTNAME": "Sales", "DEPTLOC": "Australia" }' 
    'http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/'

    Viene visualizzato un errore.

  4. Eseguire il test dell'endpoint con le credenziali OAuth:
    1. Per ottenere un token di accesso, selezionare Recupera token bearer dal menu di scelta rapida nella scheda client OAuth.

      Viene visualizzata la finestra di dialogo Token OAuth. Utilizzare Copia negli Appunti icona Copia negli Appunti per copiare il token.

    2. In cURL, utilizzare il token di accesso al portatore nella seguente istruzione per richiedere la risorsa:

      curl -H "Content-Type: application/json" -H "Authorization: Bearer AMccwlnt99gm9kxDs_w1DA" --location --request POST --data 
      '{"DEPTNO": 55, "DEPTNAME": "Sales", "DEPTLOC": "Australia"}' 'http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/'

    Viene visualizzato il seguente output:

    {"deptno":55,"dname":"Sales","loc":"Australia","links":[{"rel":"collection",
    "href":"http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/"}]}
  5. Nella pagina SQL è possibile verificare il nuovo record inserito nella tabella DEPT utilizzando l'istruzione seguente:
    SELECT * FROM DEPT;

Creazione di un client OAuth utilizzando il tipo di autorizzazione Codice autorizzazione

In questa sezione viene descritto come creare un client OAuth utilizzando il tipo di privilegio Codice autenticazione.

  1. Nella pagina Client OAuth, fare clic su Crea client OAuth.
  2. Immettere i campi riportati di seguito.
    • Nel campo Tipo di privilegio selezionare Codice di autorizzazione.
    • Immettere Nome, Descrizione, URI reindirizzamento, URI supporto e E-mail di supporto per il client OAuth.

    • Nella scheda Ruoli aggiungere i ruoli pertinenti.

    • Aggiungere i privilegi pertinenti nella scheda Privilegi.

    • Fare clic su Crea.

    La nuova scheda client OAuth viene visualizzata nella pagina Client OAuth.

  3. Nella scheda Client OAuth, fare clic sull'icona Azioni e selezionare Dettagli autorizzazione.
    Viene visualizzato l'URI Valore univoco e Autorizzazione.
  4. Nel campo URI autorizzazione, fare clic sull'icona Apri in nuova scheda. Viene visualizzata una nuova finestra con un messaggio di errore Non autorizzato insieme a un collegamento di accesso.
  5. Fare clic su Connetti e immettere di nuovo le credenziali di login.
  6. Vi viene richiesto di approvare la richiesta di accesso all'URI protetto. Fare clic su Approva.
    Notifica richiesta approvazione