Gestione dei profili
Con IBM Cloud® App ID, puoi compilare le informazioni sui singoli utenti della tua applicazione in un profilo. Le informazioni nel profilo possono essere apprese sui tuoi utenti dal modo in cui interagiscono con la tua applicazione o aggiunte da te per loro conto. Archiviando le informazioni, puoi accedere a esse per facilitare la creazione di esperienze personalizzate della tua applicazione per i tuoi utenti.
Cerchi le informazioni sui tuoi utenti Cloud Directory? Consulta gestione utenti.
Visualizzazione dei profili utente nella console
Per visualizzare i dati disponibili per gli utenti della tua applicazione, puoi utilizzare l'IU App ID.
-
Passa alla scheda User Profiles > Profiles della tua istanza App ID.
-
Sfoglia la tabella o ricerca utilizzando un indirizzo email per trovare l'utente per cui vuoi visualizzare le informazioni. Il termine di ricerca deve essere esatto.
-
Nel menu di overflow della riga dell'utente, fai clic su View user profile. Si apre una pagina che contiene le informazioni dell'utente. Consulta la seguente tabella per vedere quali informazioni puoi visualizzare.
Dettagli dell'utente come mostrato nella dashboard App ID Dettaglio Descrizione Identificativo IdP L'identificativo IdP viene emesso dal provider che il tuo utente ha scelto di utilizzare per accedere alla tua applicazione. Email L'indirizzo email primario collegato all'utente. Nome Il nome e il cognome del tuo utente come emesso dal provider di identità. Provider di identità Il provider che il tuo utente ha scelto di utilizzare per eseguire l'accesso. ID L'ID assegnato all'utente da App ID. Attributi personalizzati Gli attributi personalizzati sono ulteriori informazioni che vengono aggiunte al profilo o che vengono apprese sull'utente quando interagisce con la tua applicazione. Riepilogo Tutte le informazioni associate a quell'utente mostrate come oggetto JSON.
Visualizzazione dei profili utente con l'API
Puoi utilizzare l'API App ID per visualizzare i dettagli sui tuoi utenti dell'applicazione.
-
Ottieni il tuo ID tenant dalla tua istanza del servizio. Puoi trovare l'ID nelle tue credenziali del servizio o dell'applicazione.
-
Cerca i tuoi utenti App ID con una query di identificazione, ad esempio un indirizzo email, per trovare l'ID utente.
curl -X GET "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/Users?query=<identifyingSearchQuery>" \ -H "accept: application/json" \ -H "authorization: Bearer <token>"Esempio:
curl -X GET https://us-south.appid.cloud.ibm.com/management/v4/e19a2778-3262-4986-8875-8khjafsdkhjsdafkjh/cloud_directory/Users?query=example@domain.com -H "accept: application/json" -H "authorization: Bearer eyJraWQiOiIyMDE3MTEyOSIsImFsZ...." -
Utilizzando l'ID ottenuto nel passo precedente, effettua una richiesta GET all'endpoint
/usersper vederne il profilo utente completo.curl -X GET "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users/<userID>/profile" \ -H "accept: application/json" \ -H "authorization: Bearer <token>"Risposta di esempio:
{ "id": "a0791903-ed4c-41cf-bd0e-a37957dad820", "name": "David Test-user", "email": "dave.test@domain.com", "picture": "https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=11122233344455566&height=50&width=50&ext=1569429199&hash=AaAaAAAAAaAAAaaA", "identities": [ { "provider": "facebook", "id": "11122233344455566", "idpUserInfo": { "id": "11122233344455566", "name": "David Test-user", "picture": { "data": { "height": 50, "is_silhouette": false, "url": "https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=11122233344455566&height=50&width=50&ext=1569429199&hash=AaAaAAAAAaAAAaaA", "width": 50 } }, "first_name": "David", "last_name": "Test-user", "email": "dave.test@domain.com", "idpType": "facebook" } } ], "attributes": { "role": "admin" } }Per vedere l'intero set di dati utente supportato da App ID, consultate lo schema centrale di SCIM.
Impostazione di attributi personalizzati nella console
È possibile aggiungere informazioni personalizzate sui propri utenti al loro profilo, ad esempio un ruolo che detengono o una preferenza di cui dispongono, impostando un attributo personalizzato. Per impostare un attributo, puoi utilizzare l'IU App ID.
Per impostazione predefinita, gli attributi personalizzati sono modificabili e possono essere aggiornati utilizzando un token di accesso App ID da un'applicazione client. Senza le dovute precauzioni, l'utente o l'applicazione possono aggiornare gli attributi personalizzati subito dopo il primo accesso dell'utente, se dispongono di un token di accesso. Questo può potenzialmente portare a delle conseguenze non volute. Ad esempio, un utente potrebbe modificare il suo ruolo da utente ad amministratore e questo potrebbe esporre i privilegi di amministrazione a utenti malintenzionati.
-
Vai alla scheda User profiles > Settings del dashboard App ID.
-
Modifica gli attributi personalizzati in modo che siano impostati su Enabled.
-
Fai clic su View profile nel menu di overflow della riga per l'utente per cui vuoi impostare l'attributo.
-
Nella sezione Custom attributes, fai clic su Edit.
-
Immetti gli attributi che vuoi aggiungere come un oggetto JSON. Ad esempio,
{"role":"admin"}.
Impostazione degli attributi personalizzati con l'API
Come amministratore, è possibile aggiungere informazioni personalizzate sugli utenti al loro profilo, ad esempio un ruolo o una preferenza di cui dispongono, impostando un attributo personalizzato. Per impostare un attributo, puoi utilizzare
l'API App ID per richiamare l'endpoint /users. Per impostare gli attributi personalizzati prima che un utente esegua la registrazione alla tua applicazione per la prima volta, vedi Preregistrazione degli utenti futuri.
Per impostazione predefinita, gli attributi personalizzati sono modificabili e possono essere aggiornati utilizzando un token di accesso App ID da un'applicazione client. Questo significa che, senza prendere delle precauzioni appropriate, l'utente o l'applicazione possono aggiornare gli attributi personalizzati immediatamente dopo il primo accesso utente, se hanno un token di accesso. Questo può potenzialmente portare a delle conseguenze non volute. Ad esempio, un utente potrebbe modificare il suo ruolo da utente ad amministratore e questo potrebbe esporre i privilegi di amministrazione a utenti malintenzionati.
-
Vai alla scheda User profiles > Settings del dashboard App ID.
-
Modifica gli attributi personalizzati in modo che siano impostati su Enabled.
-
Ottieni un token IAM.
-
Nel dashboard IBM Cloud, fai clic su Gestisci > Accesso (IAM).
-
Seleziona Chiavi API IBM Cloud.
-
Fai clic su Crea una chiave API IBM Cloud.
-
Assegna un nome alla tua chiave e descrivila. Fare clic su Crea. Viene visualizzata una schermata con la tua chiave.
-
Fai clic su Copia o Scarica la tua chiave. Quando chiudi la schermata, non puoi più accedere alla chiave.
-
Effettua la seguente richiesta cURL con la chiave API che hai creato.
curl -k -X POST \ --header "Content-Type: application/x-www-form-urlencoded" \ --header "Accept: application/json" \ --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \ --data-urlencode "apikey=<apikey>" \ "https://iam.cloud.ibm.com/identity/token"
-
-
Effettua una richiesta PUT all'endpoint
/users.curl -X PUT "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users/<userID>/profile" \ -H "accept: application/json" \ -H "Content-Type: application/json" \ -H "authorization: Bearer <token>" -d "{ \"attributes\": { \"points\": \"150\" } { \"role\": \"admin\" }}"
Eliminazione di un profilo nella console
Come amministratore, è possibile rimuovere qualcuno come utente dell'applicazione eliminandone il profilo.
-
Passa alla scheda User Profiles > Profiles della tua istanza App ID.
-
Sfoglia la tabella o ricerca utilizzando un indirizzo email per trovare l'utente per cui vuoi visualizzare le informazioni. Il termine di ricerca deve essere esatto.
-
Nel menu di overflow della riga dell'utente, fai clic su Delete. Viene aperta una schermata di conferma.
-
Verifica che stai eliminando l'utente corretto controllandone l'email rispetto a quella visualizzata. Se è l'utente corretto, fai clic su Delete. Questa azione non può essere annullata. L'utente può essere aggiunto nuovamente, ma il suo profilo mostra che è un nuovo utente a partire dalla data in cui viene aggiunto nuovamente.
Eliminazione di un profilo con l'API
Come amministratore, è possibile rimuovere qualcuno come utente dell'applicazione eliminandone il profilo.
-
Ottieni il tuo ID tenant dalla tua istanza del servizio. Puoi trovare l'ID nelle tue credenziali del servizio o dell'applicazione.
-
Cerca i tuoi utenti App ID con una query di identificazione, ad esempio un indirizzo email, per trovare l'ID utente.
curl -X GET "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/Users?query=<identifyingSearchQuery>" \ -H "accept: application/json" \ -H "authorization: Bearer <token>"Esempio:
curl -X GET https://us-south.appid.cloud.ibm.com/management/v4/e19a2778-3262-4986-8875-8khjafsdkhjsdafkjh/cloud_directory/Users?query=example@domain.com -H "accept: application/json" -H "authorization: Bearer eyJraWQiOiIyMDE3MTEyOSIsImFsZ...." -
Utilizzando l'ID ottenuto nel passaggio precedente, effettuare una richiesta
DELETEall'endpoint/usersper eliminare il profilo.curl -X DELETE "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users/<userID>/profile" \ -H "accept: application/json" \ -H "authorization: Bearer <token>"
Migrazione dei profili utente
Occasionalmente, potresti dover aggiungere un'istanza di App ID al tuo account per garantire l'alta disponibilità o il ripristino di emergenza. In alternativa, potrebbe essere necessario rendere obsoleta un'istanza del servizio. Per migrare le informazioni utente, puoi esportare i profili utente da un'istanza di App ID ed importarli in un'altra.
Questa azione può essere eseguita solo tramite API. Per visualizzare la procedura, passa alle istruzioni API.
Esportazione dei profili utente
Prima di poter importare i tuoi profili nella tua nuova istanza, devi esportarli dalla tua istanza originale del servizio.
-
Assicurati di avere il ruolo IAM di Gestore per entrambe le istanze di App ID.
-
Esporta i profili dalla tua istanza originale del servizio.
curl -X GET https://us-south.appid.cloud.ibm.com/management/v4/<tenantID>/users/export \ --header "Accept: application/json" \ --header "Authorization: Bearer <IAMToken>"Variabili del comando di importazione utente Variabile Descrizione tenantIDL'ID tenant del servizio può essere trovato nelle tue credenziali del servizio. Puoi trovare le tue credenziali del servizio o dell'applicazione nel dashboard App ID. iam-tokenIl tuo token IAM. Risposta di esempio:
{ "itemsPerPage": 2, "totalResults": 2, "requestOptions": {}, "users": [ { "id": "7ae804f3-0ed3-45f0-bc6b-1c6af868e6d6", "name": "App ID Google User profile", "email": "your@mail.com", "identities": [ { "provider": "google", "id": "105646725068605084546", "idpUserInfo": { "id": "105646725068605084546", "email": "your@mail.com", "picture": "profilePic.jpg" } } ], "attributes": { "points": 150 }, "roles": ["admin"] { "id": "1439d777-185d-4be1-8f4a-c4e8142b87ea", "name": "App ID Facebook User profile", "email": "mail@mail.com", "identities": [ { "provider": "facebook", "id": "100195207128541", "picture": { "data": { "height": 50, "width": 50, "url": "https://url-to-idp-profile-picture.com" } }, "first_name": "AppID", "last_name": "Development" } ], "attributes": { "points": 250 }, "roles": ["admin"] } }
Importazione dei profili utente
Ora che hai un elenco di profili utente esportati, puoi importarli nella nuova istanza.
-
Assicurati di avere il ruolo IAM di Gestore per entrambe le istanze di App ID.
-
Se ai tuoi utenti sono assegnati dei ruoli, assicurati di creare i ruoli e gli ambiti nella tua nuova istanza di App ID.
I ruoli e gli ambiti devono essere creati esattamente come erano nell'istanza precedente con le stesse grafie.
-
Importa gli utenti alla tua nuova istanza del servizio.
curl -X POST "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users/import" \ -H "accept: application/json" \ -H "Authorization: Bearer <bearerToken>" \ -H "Content-Type: application/json" \ -d "{ \"itemsPerPage\": 2, \"totalResults\": 2, \"requestOptions\": {}, \"users\": [ { \"id\": \"7ae804f3-0ed3-45f0-bc6b-1c6af868e6d6\", \"name\": \"App ID Google User profile\", \"email\": \"your@mail.com\", \"identities\": [ { \"provider\": \"google\", \"id\": \"105646725068605084546\", \"idpUserInfo\": { \"id\": \"{ID}\", \"email\": \"your@mail.com\", \"picture\": \"{profile.jpg}\" } } ], \"attributes\": { \"points\": 150 } { \"role\": admin } }, { \"id\": \"{userinfo}\", \"name\": \"App ID Facebook User profile\", \"email\": \"mail@mail.com\", \"identities\": [ { \"provider\": \"facebook\", \"id\": \"{id}\", \"picture\": { \"data\": { \"height\": 50, \"width\": 50, \"url\": \"https://{url}.com\" } }, \"first_name\": \"AppID\", \"last_name\": \"Development\" } ], \"attributes\": { \"points\": 250 } { \"role\": admin } } ]}"Quando importi gli utenti in un'istanza di App ID, il loro identificativo del provider di identità rimane lo stesso.