Preregistrazione degli utenti futuri

Con IBM Cloud® App ID, puoi iniziare a creare un profilo per gli utenti che sai che avranno bisogno dell'accesso alla tua applicazione prima del loro accesso iniziale.

Per ulteriori informazioni sulle considerazioni relative alla sicurezza che potrebbero applicarsi quando lavori con gli attributi personalizzati, vedi Memorizzazione e accesso ai profili utente.

Descrizione della preregistrazione

Ci possono essere volte in cui, mentre stai sviluppando un'applicazione, già sai chi saranno i suoi utenti. Questi utenti sono noti come "utenti futuri". Potresti sapere in anticipo che specifici utenti hanno bisogno di specifici livelli di autorizzazione oppure hanno una specifica preferenza alimentare prima ancora che inizino a interagire con la tua applicazione. Ad esempio, lavori per una società di sviluppo e ingaggi una nuova persona perché si occupi di coordinare un team. Potresti voler assegnare a tale utente l'accesso di admin alla tua applicazione prima che inizi in modo che, quando esegue l'accesso la prima volta, possa iniziare a lavorare immediatamente senza alcuna ulteriore interazione da parte tua. Diciamo che tale persona è vegetariana. Annotandolo come un attributo personalizzato nel suo profilo, la preferenza può essere estratta per tutti i pranzi del team senza che tale persona debba ricordartelo.

Per impostazione predefinita, la capacità degli utenti di modificare i loro attributi personalizzati tramite l'applicazione è impostata come disattivata (off). Puoi concedere agli utenti tale capacità ma, prima di farlo, assicurati di comprendere i problemi di sicurezza che possono sorgere.

Per assegnare attributi personalizzati per gli utenti futuri, puoi utilizzare la GUI o l'endpoint di preregistrazione.

Come vengono identificati gli utenti?

Puoi identificare i tuoi utenti utilizzando uno dei seguenti:

  • L'indirizzo email con cui l'utente accede alla tua applicazione.
  • Se disponibile, l'ID univoco dell'utente, denominato GUID, nel provider di identità. Sebbene questo identificativo esista sempre ed è garantito che è univoco, non sempre è prontamente disponibile o facile da comprendere. Ad esempio, Cloud Directory utilizza un GUID a 16 byte casuale.

Quali informazioni forniscono i provider di identità?

Consulta la seguente tabella per vedere quale tipo di informazioni sull'identità puoi utilizzare.

Tipi di informazioni sull'identità che possono essere utilizzate con ciascun fornitore
Provider di identità GUID Email Sub
Cloud Directory Icona segno di spunta Icona segno di spunta
Facebook Icona segno di spunta Icona segno di spunta
Google Icona segno di spunta Icona segno di spunta
SAML Icona segno di spunta
Personalizzato Icona segno di spunta

Come viene gestito Cloud Directory?

Per garantire l'integrità di un futuro utente, Cloud Directory impone dei requisiti di preregistrazione.

  • Devi utilizzare una email, non un nome utente, per aggiungere l'utente. Se non hai ancora degli utenti, passa alla modalità email e password per aggiungere utenti futuri. Se hai degli utenti, devi attendere che eseguano l'accesso per assegnare degli attributi personalizzati.
  • L'utente deve confermare la sua identità attraverso la verifica. Quando aggiungi un utente futuro con specifici attributi, questi attributi sono destinati a tale persona. Qualsiasi utente che esegue l'accesso utilizzando una email registrata per un utente futuro deve verificare il suo indirizzo email prima che gli sia concesso l'accesso alla tua applicazione. Per completare i requisiti di verifica, puoi inviare una email per fare in modo che l'utente esegua la verifica oppure verificare manuale il suo indirizzo per suo conto. Per consentire l'autoverifica, imposta Email verification su On nella scheda Cloud Directory del dashboard del servizio. Questo invia una email all'utente per richiedere una verifica al suo accesso iniziale. Per verificare gli utenti manualmente, devi essere un amministratore. Effettuare una richiesta alle API di gestione di Cloud Directory per impostare il campo status nel payload a CONFIRMED.

Se un utente futuro viene aggiunto da te ed esegue l'accesso alla tua applicazione senza verificare la sua email, i suoi attributi personalizzati vengono eliminati e il profilo viene creato da zero.

C'è qualcosa di speciale che devo fare quando uso un provider di identità personalizzato?

Quando aggiungi delle informazioni sull'utente alla tua applicazione in anticipo, puoi utilizzare un qualsiasi identificativo univoco fornito dal flusso di autenticazione. L'identificatore deve corrispondere esattamente all'indirizzo sub del token web JSON firmato inviato durante la richiesta di autorizzazione. Se l'identificativo non corrisponde, il profilo che vuoi aggiungere non viene collegato correttamente.

Aggiunta di un utente futuro

Ora che hai ottenuto delle informazioni sul processo e preso in considerazione le tue implicazioni sulla sicurezza, prova ad aggiungere un utente.

Gli attributi predefiniti di un utente sono vuoti fino alla sua prima autenticazione. Anche se sono vuoti, l'utente è ancora completamente autenticato. Puoi utilizzare il suo ID profilo come faresti con qualcuno che ha già eseguito l'accesso. Ad esempio, puoi modificare, ricercare o eliminare il profilo.

Prima di iniziare

Prima di iniziare, devi disporre delle seguenti informazioni:

Con la GUI

Puoi aggiungere un utente futuro e i suoi attributi personalizzati utilizzando la GUI.

La capacità di aggiungere utenti futuri è disabilitata per la configurazione nome utente e password di Cloud Directory.

  1. Vai alla scheda User Profiles del dashboard App ID.

  2. Fai clic su Future users. Se già hai degli utenti futuri, vedi una tabella con un elenco degli utenti che già hai aggiunto. Per aggiungere un altro utente, fai clic su Build a profile. Se non hai ancora degli utenti, fai clic su Get Started. Viene aperta una schermata.

  3. Immetti l'email del tuo utente.

  4. Seleziona il provider di identità con cui esegue l'accesso all'elenco a discesa Identity Provider.

  5. Aggiungi degli attributi personalizzati immettendo le informazioni in un oggetto JSON, come mostrato nel seguente esempio.

    {
       "food": "Pizza",
       "preference": "Vegetarian",
       "points": "37"
    }
    
  6. Fare clic su Salva. La tabella viene visualizzata e all'utente viene assegnato un identificativo.

Con l'API

Puoi aggiungere un utente futuro e i suoi attributi personalizzati utilizzando l'API.

  1. Esegui l'accesso a IBM Cloud.

    ibmcloud login
    
  2. Trova il tuo token IAM immettendo il seguente comando.

    ibmcloud iam oauth-tokens
    
  3. Effettua una richiesta POST all'endpoint /users che contiene una descrizione dell'utente e degli attributi che vuoi impostare come un oggetto JSON.

    Intestazione:

    POST <managementUrl>/management/v4/<tenantID>/users
          Host: <managementServerURL>
          Authorization: 'Bearer <IAMToken>'
          Content-Type: application/json
    

    Corpo:

    {
          "idp": "<identityProvider>",
          "idp-identity": "<userUniqueIdentifier>",
          "profile": {
             "attributes": {
                "mealPreference":"vegeterian"
             }
          }
    }
    
    I componenti della richiesta POST
    Componenti Descrizione
    idp Il provider di identità con cui l'utente esegue l'autenticazione. Le opzioni includono: saml, cloud_directory, facebook, google, appid_custom.
    idp-identity L'identificativo univoco fornito dal provider di identità.
    profile Il profilo dell'utente che contiene l'associazione JSON degli attributi personalizzati.

    Richiesta di esempio:

    $ curl --request POST \
          --url 'https://<managementURI>/users \
          --header 'Authorization: Bearer <IAMToken>' \
          --header 'Content-Type: application/json' \
          --data '{"idp": "saml", "idp-identity": "user@ibm.com", "profile": { "attributes": { "role": "admin",
          "frequent_flyer_points": 1000 }}}'
    
  4. Verifica che la registrazione sia stata eseguita con esito positivo.

    • Controlla il profilo utente che è stato creato.

      curl --request GET https://us-south.appid.cloud.ibm.com/management/v4/<tenantID>/users/<userProfileId>/profile \
      --header 'Authorization: Bearer <IAMToken>' \
      --header 'Content-Type: application/json' \
      
    • Controlla l'ID utente nella risposta.

      {
         "id": "5ce78e09-1356-4ef8-a45d-808b633101db",
         "identities": [],
         "attributes": {
            "role": "manager"
         }
      }
      

Passi successivi

Ora che hai associato un utente futuro a specifici attributi, prova ad accedere agli attributi o ad aggiornarli!