Creazione di ruoli con l'API

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Questo argomento illustra come creare ruoli personalizzati e assegnare ruoli agli utenti tramite l'API di gestione. Mostriamo anche come testare le assegnazioni dei ruoli tramite l'API. Per una panoramica dei ruoli personalizzati, consulta Creazione di ruoli personalizzati nell'interfaccia utente.

Informazioni sull'impostazione delle autorizzazioni

Le autorizzazioni del ruolo sono impostate sugli URI dell'API di gestione (non sugli URI dell'interfaccia utente di gestione). Ad esempio, se vuoi impostare le autorizzazioni PUT, GET e/o DELETE per le entità sviluppatore di app nella tua organizzazione Edge, devi impostare le autorizzazioni per la risorsa /developers, perché il percorso dell'API di gestione per gli sviluppatori è https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers. Non è necessario includere la parte relativa all'organizzazione nel percorso quando definisci le autorizzazioni, perché l'ambito delle autorizzazioni è un'organizzazione specifica, come mostrano le chiamate API di gestione in questo argomento.

Puoi anche impostare autorizzazioni per entità specifiche. Ad esempio:

  • Se vuoi impostare le autorizzazioni per un singolo sviluppatore, impostale su /developers/steve@example.com
  • Per un prodotto API specifico, ad esempio free-api-product, impostalo su /apiproducts/free-api-product
  • Per una mappa chiave-valore in un ambiente specifico, devi impostare l'autorizzazione su un elemento come /environments/test/keyvaluemaps/fooMap oppure /environments/test/keyvaluemaps/* per tutte le mappe chiave-valore nell'ambiente di test.

Le autorizzazioni che imposti utilizzando l'API:

  • Consenti agli utenti con un ruolo personalizzato di effettuare chiamate API di gestione in base alle loro autorizzazioni. Ad esempio, se un ruolo consente l'accesso di sola lettura a tutti i proxy API, un utente con quel ruolo potrebbe utilizzare l'API List API Proxy, ma non l'API Crea un proxy API.
  • Stabilisci cosa possono vedere e fare gli utenti in un ruolo personalizzato nell'interfaccia utente di gestione. Ad esempio, l'accesso di sola lettura ai proxy API disabilita l'accesso ai pulsanti + Proxy API ed Elimina nella pagina Proxy API.

Per vedere le risorse e i percorsi su cui puoi impostare le autorizzazioni, consulta il riferimento sull'API di gestione in corrispondenza dei diversi URL delle risorse.

Consulta l'API User roles per informazioni di riferimento complete sulla gestione dei ruoli.

Sintassi e precedenza

Puoi utilizzare il carattere jolly asterisco (*) per indicare "tutto dopo" in un'impostazione di autorizzazione. Tuttavia, se imposti le autorizzazioni solo su una risorsa padre (ad esempio su /developers) senza impostare autorizzazioni più specifiche (ad esempio /developers/*), l'autorizzazione si applica a tutto, da /developers in poi.

PUT funge anche da POST nelle autorizzazioni.

Puoi combinare autorizzazioni generali e più granulari per le risorse. In caso di sovrapposizione delle autorizzazioni, le impostazioni più granulari hanno la precedenza. Ad esempio, supponiamo che le seguenti autorizzazioni siano impostate su un ruolo "developeradmin":

  • PUT su /developers
  • VAI su /developers/*

Ciò significa che l'amministratore sviluppatore può:

  • Crea uno sviluppatore, ma non aggiornare sviluppatori specifici o entità secondarie (per via dell'autorizzazione GET più specifica su quel percorso).
  • Cerca uno sviluppatore o un'entità secondaria, ma non un elenco di tutti gli sviluppatori.

Consulta la Guida di riferimento alle autorizzazioni per un elenco completo delle autorizzazioni che puoi impostare con l'API.

Crea un nuovo ruolo personalizzato denominato "sviluppo"

Crea un ruolo di "sviluppo" per consentire agli sviluppatori di visualizzare, creare e aggiornare i proxy API.

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles -H "Content-type:application/json" -X POST -d'{ "role" : [ { "name" : "development" } ] }'

Aggiungi autorizzazioni al ruolo di sviluppo

Le autorizzazioni che possono essere impostate su un intero gruppo di artefatti di Edge (ad esempio tutti /apps, /apis, /apiproducts e così via) e sui singoli artefatti (ad esempio un'app specifica, un proxy API o un prodotto API) sono GET, PUT ed DELETE.

GET consente agli utenti di visualizzare qualsiasi API, inclusi i file di configurazione del proxy API, i criteri associati, JavaScript, i file YAML e così via. L'autorizzazione PUT sulle API consente agli sviluppatori di creare, modificare, importare, esportare, eseguire il deployment dei proxy API e annullarne il deployment.

L'attributo path specifica l'elemento per il quale hai impostato le autorizzazioni. Ad esempio, /applications, /apps, /apiproducts, /developers o /reports.

curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles/development/permissions -H "Content-type:application/json" -X POST -d'{"path" : "/applications","permissions" : [ "put", "get" ]}'

Crea un ruolo: test

Crea un ruolo di "test" per consentire ai tecnici della qualità di visualizzare i proxy API e i relativi contenuti (inclusi, ad esempio, i criteri).

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles -H "Content-type:application/json" -X POST -d'{ "role" : [ { "name" : "testing" } ] }'

Aggiungi autorizzazioni al ruolo di test

GET consente agli utenti di visualizzare tutte le API, inclusi i file di configurazione, nonché tutti i criteri associati, i file JavaScript, YAML e così via. Se aggiungi questa autorizzazione al ruolo "test", consentiamo agli ingegneri della qualità di visualizzare i contenuti delle API che stanno testando. Tuttavia, gli utenti con questo ruolo non potranno creare, modificare, importare, esportare, eseguire il deployment e annullare il deployment dei proxy API.

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles/testing/permissions -H "Content-type:application/json" -X POST -d'{"path" : "/applications","permissions" : [ "get" ]}'

Per un'installazione on-premise di Edge, il set minimo di autorizzazioni da impostare per consentire all'utente di accedere alla UI Edge è:

{"path" : "/","permissions" : [ "get" ]}
{"path" : "/*","permissions" : [ ]}
{"path" : "/environments","permissions" : [ "get" ]}
{"path" : "/userroles","permissions" : [ "get" ]}

Utilizza il seguente comando cURL per impostare queste autorizzazioni:

curl -H "Content-Type:application/json" -u email:password \
-X POST \
http://<ms-IP>:8080/v1/organizations/{org_name}/userroles/testing/resourcepermissions  \
-d '{
 "resourcePermission" : [ 
   {
    "path" : "/",
    "permissions" : [ "get" ]
   }, 
{
    "path" : "/*",
    "permissions" : []
   },
{
    "path" : "/environments",
    "permissions" : [ "get" ]
   },
   {
    "path" : "/userroles",
    "permissions" : [ "get"]
   }
  ]
}'

dove <ms-IP> è l'indirizzo IP o il nome DNS di Edge Management Server.

Aggiungi utente al ruolo di test

Per eseguire il provisioning di un ruolo utente con un determinato utente:

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/users/justauser@apigee.com/userroles -H "Content-type:application/json" -X POST -d'{"role" : [ {"name" : "testing"} ] }'

Visualizza le API come utente

Impersona l'utente e invia una richiesta ai servizi API per visualizzare i proxy API. L'utente dovrebbe essere in grado di visualizzare le API e i relativi contenuti.
$ curl -u justauser@apigee.com:secret https://api.enterprise.apigee.com/v1/o/{org_name}/apis
$ curl -u justauser@apigee.com:secret https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/policies

Crea API come utente nel ruolo di test

Impersona l'utente e invia una richiesta ai servizi API per creare un proxy API. La richiesta verrà rifiutata dai servizi API, in quanto il ruolo "test" non consente all'utente di creare API.

$ curl -u justauser@apigee.com:secret -H "Content-Type: application/json" https://api.enterprise.apigee.com/v1/o/{org_name}/apis -X POST -d'{"name" : "rbacTestApi"}'

Aggiungi utente al ruolo di sviluppo

Ora esegui il provisioning del ruolo "sviluppo" per l'utente.

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/users/justauser@apigee.com/userroles -H "Content-type:application/json" -X POST -d'{"role" : [ {"name" : "development"} ] }'

Crea API come utente nel ruolo di sviluppo

Impersona l'utente e ripeti la richiesta alla piattaforma API per creare un proxy API. La richiesta avrà esito positivo, poiché il ruolo "sviluppo" consente all'utente di creare API.

$ curl -u justauser@apigee.com:secret -H "Content-Type: application/json" https://api.enterprise.apigee.com/v1/o/{org_name}/apis -X POST -d'{"name" : "rbacTestApi"}'

Recupero dei ruoli utente per un utente

In qualità di amministratore dell'organizzazione, puoi controllare in qualsiasi momento l'elenco dei ruoli utente di un utente (in tutte le organizzazioni):

$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles