Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
Questo argomento spiega come creare ruoli personalizzati e assegnarli agli utenti tramite l' API di gestione. Mostriamo anche come testare le assegnazioni dei ruoli tramite l'API. (Per una panoramica dei ruoli personalizzati, vedi Creare ruoli personalizzati nell'interfaccia utente.)
Informazioni sull'impostazione delle autorizzazioni
Le autorizzazioni dei ruoli vengono 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 sulle entità dello sviluppatore di app nella tua organizzazione Edge, devi impostare le autorizzazioni sulla risorsa /developers, perché il percorso dell'API di gestione per developers è https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers.
(Non devi includere la parte dell'organizzazione del percorso quando definisci le autorizzazioni, perché
le autorizzazioni sono limitate a un'organizzazione specifica, come illustrano le chiamate all'API di gestione in questo argomento.)
Puoi anche impostare le autorizzazioni su 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, impostale
su
/apiproducts/free-api-product - Per una mappa chiave-valore in un ambiente specifico, devi impostare l'autorizzazione su un elemento simile a
/environments/test/keyvaluemaps/fooMap, o/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 all'API di gestione in base alle loro autorizzazioni. Ad esempio, se un ruolo consente l'accesso in sola lettura a tutti i proxy API, un utente con questo ruolo può utilizzare l'API Elenca proxy API, ma non l'API Crea un proxy API.
- Determina cosa possono vedere e fare gli utenti con un ruolo personalizzato nell'interfaccia utente di gestione. Ad esempio, l'accesso in sola lettura ai proxy API disabilita l'accesso ai pulsanti +Proxy API ed Elimina nella pagina Proxy API.
Per visualizzare le risorse e i percorsi su cui puoi impostare le autorizzazioni, consulta il riferimento dell'API di gestione agli URL delle diverse risorse.
Per informazioni di riferimento complete sulla gestione dei ruoli, consulta l'API Ruoli utente.
Sintassi e precedenza
Puoi utilizzare il carattere jolly asterisco (*) per indicare "tutto ciò che segue" in un'impostazione di autorizzazione. Tuttavia, se imposti le autorizzazioni solo su una risorsa principale (ad esempio su /developers) senza impostare autorizzazioni più specifiche (ad esempio /developers/*), l'autorizzazione si applica a tutto ciò che segue /developers.
PUT funge anche da POST nelle autorizzazioni.
Puoi combinare autorizzazioni generali con autorizzazioni più granulari sulle risorse. Le impostazioni più granulari hanno la precedenza in caso di sovrapposizione delle autorizzazioni. Ad esempio, supponiamo che le seguenti autorizzazioni siano impostate su un ruolo "developeradmin":
- PUT su /developers
- GET su /developers/*
Ciò significa che l'amministratore dello sviluppatore può:
- Creare uno sviluppatore, ma non aggiornare sviluppatori specifici o entità secondarie (a causa di l'autorizzazione GET più specifica su questo percorso).
- Ottenere qualsiasi sviluppatore o entità secondaria, ma non un elenco di tutti gli sviluppatori.
Per un elenco completo delle autorizzazioni che puoi impostare con l'API, consulta il riferimento alle autorizzazioni.
Creare un nuovo ruolo personalizzato denominato "development"
Crea un ruolo "development" 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" } ] }'
Aggiungere autorizzazioni al ruolo di sviluppo
Le autorizzazioni che possono essere impostate su un intero gruppo di artefatti Edge (ad esempio tutti i /apps, /apis, /apiproducts e così via) e su singoli artefatti (ad esempio un'app, un proxy API o un prodotto API specifico) sono GET, PUT e DELETE.
GET consente agli utenti di visualizzare qualsiasi API, inclusi i file di configurazione dei proxy API, le policy associate , i file JavaScript, XSLT e così via. L'autorizzazione PUT sulle API consente agli sviluppatori di creare, modificare, importare, esportare, eseguire il deployment e annullare il deployment dei proxy API.
L'attributo path specifica l'artefatto su cui imposti 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" ]}'
Creare un ruolo: testing
Crea un ruolo "testing" per consentire agli ingegneri della qualità di visualizzare i proxy API e i relativi contenuti (incluse, ad esempio, le policy).
$ 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" } ] }'
Aggiungere autorizzazioni al ruolo di test
GET consente agli utenti di visualizzare qualsiasi API, inclusi i file di configurazione, nonché le policy associate, i file JavaScript, XSLT e così via. Aggiungendo questa autorizzazione al ruolo "testing", 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, l'insieme minimo di autorizzazioni che devono essere impostate per consentire all'utente di accedere all'interfaccia utente di 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 del server di gestione Edge.
Aggiungere un utente al ruolo di test
Per eseguire il provisioning di un utente con un ruolo 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"} ] }'
Visualizzare le API come utente
Assumi l'identità dell'utente ed effettua 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
Creare un'API come utente con il ruolo di test
Assumi l'identità dell'utente ed effettua una richiesta ai servizi API per creare un proxy API. La richiesta verrà rifiutata dai servizi API, poiché il ruolo "testing" 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"}'
Aggiungere un utente al ruolo di sviluppo
Ora esegui il provisioning dell'utente con il ruolo "development".
$ 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"} ] }'
Creare un'API come utente con il ruolo di sviluppo
Assumi l'identità dell'utente e ripeti la richiesta alla piattaforma API per creare un proxy API. La richiesta andrà a buon fine, poiché il ruolo "development" 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"}'
Ottenere i ruoli utente per un utente
In qualità di amministratore dell'organizzazione, puoi controllare l'elenco dei ruoli utente per un utente (in tutte le organizzazioni) in qualsiasi momento:
$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles