Personalizzazione della tua applicazione
Con IBM Cloud® App ID, puoi personalizzare l'intera esperienza di registrazione della tua applicazione utilizzando le tue schermate personalizzate. È possibile sostituire il widget di accesso fornito con il proprio, aggiungere altri campi, convalidare la forza della password e verificare gli indirizzi e-mail con una lista di blocco!
Descrizione del riutilizzo delle schermate
Quando riutilizzi le tue IU esistenti, puoi creare un flusso di accesso coerente per la tua applicazione. Utilizzando le stesse immagini, gli stessi colori e personalizzazioni, è più probabile che i tuoi utenti riconoscano il tuo marchio, anche quando non interagiscono direttamente con la tua applicazione.
Vuoi utilizzare una lingua diversa dall'inglese? È possibile scegliere un'altra lingua utilizzando le API di gestione delle lingue per visualizzare i propri contenuti tradotti.
Quali informazioni devo ottenere con la mia schermata di accesso o di registrazione?
Quando effettui la richiesta di inoltro del tuo modulo di accesso, quest'ultimo deve contenere sia il parametro di nome utente che quello di password nel tuo corpo della richiesta. La tua pagina di iscrizione o di segnalamento deve chiedere a tali informazioni dai tuoi utenti.
Posso utilizzare alcune schermate personalizzate e altre predefinite?
Sì. È possibile creare un flusso ibrido che utilizza alcune schermate proprie e alcune predefinite. Puoi tuttavia utilizzare solo una singola opzione per ogni flusso. Ad esempio, puoi utilizzare una tua schermata di accesso e utilizzare anche la schermata di registrazione predefinita. Se però scegli di utilizzare la schermata di registrazione predefinita, devi continuare a usarla per tutto il flusso di registrazione, compresa la verifica della registrazione.
In che modo i flussi sono tecnicamente diversi?
Il servizio utilizza i flussi di concessione OAuth 2.0 per associare il processo di autorizzazione. Quando si configurano fornitori di identità sociali, come Facebook, il flusso Authorization Grant viene utilizzato per chiamare il widget Login. Quando si utilizzano le proprie schermate, il flusso Resource Owner Password Credentials viene utilizzato per fornire i token di accesso e di identità da utilizzare per chiamare le proprie schermate.
Personalizzazione della tua applicazione con l'SDK Android
Con Cloud Directory abilitato, puoi richiamare le schermate personalizzate con l'SDK Android. Puoi scegliere la combinazione di schermate con cui desideri che i tuoi utenti possono interagire.
Accedi
-
Configurare le impostazioni di Cloud Directory nella console.
-
Aggiungi il seguente codice alla tua applicazione. Il flusso di accesso viene attivato quando un utente fa clic su Accedi sulla tua schermata personalizzata. I token di accesso, identità e aggiornamento si ottengono fornendo il nome utente e la password dell'utente.
AppID.getInstance().signinWithResourceOwnerPassword(getApplicationContext(), username, password, new TokenResponseListener() { @Override public void onAuthorizationFailure (AuthorizationException exception) { //Exception occurred } @Override public void onAuthorizationSuccess (AccessToken accessToken, IdentityToken identityToken, RefreshToken refreshToken) { //User authenticated } });
Personalizzazione della tua applicazione con l'SDK iOS Swift
Con Cloud Directory abilitato, è possibile richiamare le proprie schermate personalizzate con l'SDK iOS Swift.
Accedi
-
Configurare le impostazioni di Cloud Directory nella console.
-
Inserisci il seguente codice nella tua applicazione. Quando un utente prova ad eseguire l'accesso, viene richiamata la tua schermata personalizzata e il processo di autorizzazione e di autenticazione inizia con la tua pagina di accesso personalizzata.
class delegate : TokenResponseDelegate { public func onAuthorizationSuccess(accessToken: AccessToken?, identityToken: IdentityToken?, response:Response?) { //User authenticated } public func onAuthorizationFailure(error: AuthorizationError) { //Exception occurred } } AppID.sharedInstance.signinWithResourceOwnerPassword(username: username, password: password, delegate: delegate())
Personalizzazione della tua applicazione con l'SDK Node.js
Con Cloud Directory abilitato, puoi richiamare le schermate personalizzate con l'SDK Node.js.
Accedi
Utilizzando WebAppStrategy, gli utenti possono accedere alle vostre applicazioni web con il proprio nome utente e una password. Dopo che un utente ha effettuato con successo l'accesso alla vostra applicazione, il suo token di
accesso viene conservato in una sessione di HTTP mentre viene mantenuto in vita. Dopo che la sessione HTTP è stata chiusa o è scaduta, viene distrutto anche il token di accesso.
-
Configurare le impostazioni di Cloud Directory nella console.
-
Inserisci il seguente codice nella tua applicazione. Quando un utente prova ad eseguire l'accesso, viene richiamata la tua schermata personalizzata e il processo di autorizzazione e di autenticazione inizia.
app.post("/form/submit", bodyParser.urlencoded({extended: false}), passport.authenticate(WebAppStrategy.STRATEGY_NAME, { successRedirect: LANDING_PAGE_URL, failureRedirect: ROP_LOGIN_PAGE_URL, failureFlash : true // allow flash messages }));Parametri di accesso Parametro Descrizione successRedirectL'URL a cui vuoi reindirizzare l'utente dopo un'autenticazione riuscita. failureRedirectL'URL a cui vuoi reindirizzare l'utente se l'autenticazione ha esito negativo. Gli utenti vengono reindirizzati al sito URL specificato quando si verificano i seguenti errori di autenticazione:
- L'utente inserisce un nome utente o una password errati.
- È stato raggiunto il limite del piano per l'istanza App ID.
failureFlashSe impostato su true, viene restituito un messaggio di errore dal servizio Cloud Directory. Per impostazione predefinita, il valore è impostato sufalse.Per vederlo in azione, date un'occhiata all'esempio dell'applicazione web.
Personalizzazione della tua applicazione con l'API
Puoi visualizzare le tue proprie schermate personalizzate e sfruttare le funzionalità di autenticazione e autorizzazione di App ID. Con Cloud Directory come tuo provider di identità, i tuoi utenti potranno interagire con la tua applicazione con meno aiuto da parte tua. Sono in grado di accedere, registrarsi, reimpostare la loro password e altro ancora senza richiedere assistenza.
Per rendere possibile questa esperienza, App ID espone delle API REST. È possibile utilizzare le API REST per creare un server di backend che serva le applicazioni web o per interagire con un'applicazione mobile con le proprie schermate personalizzate.
L'API di gestione è protetta con i token generati da IBM Cloud Identity e Access Management, il che significa che i proprietari degli account possono quali sono i livelli di accesso a disposizione dei vari membri del proprio team per ciascuna istanza del servizio. Per ulteriori informazioni su come funzionano insieme IAM e App ID, vedi Gestione dell'accesso al servizio.
Dopo che hai configurato le tue impostazioni, puoi richiamare i seguenti endpoint per visualizzare ogni schermata.
Registrati
Puoi utilizzare l'endpoint /sign_up per consentire agli utenti di registrarsi alla tua applicazione. Fornisci i seguenti dati nel corpo della richiesta:
- Il tuo ID tenant.
- I dati degli utenti di Cloud Directory con i seguenti attributi obbligatori. Per maggiori dettagli, vedere Rappresentazione completa dell'utente SCIM.
- Un attributo
password. - Un array
emailscon almeno un indirizzo email e un attributoprimaryimpostato sutrue.
- Un attributo
A seconda della tua configurazione email, un utente potrebbe ricevere una richiesta di verifica, un'email di benvenuto quando si registra alla tua applicazione o entrambe. Entrambi i tipi di email vengono attivati quando un utente si registra alla tua applicazione. L'email di verifica contiene un link su cui può fare clic l'utente per confermare la sua identità; viene visualizzata una schermata che ringrazia della verifica o che conferma che la verifica è stata completata.
Per presentare la tua pagina di post-verifica:
- Passare al provider di identità Cloud Directory nella dashboard App ID.
- Fai clic sulla scheda Email verification.
- In custom verification page URL immetti l'URL per la tua pagina di destinazione.
Quando viene fornito questo valore, App ID richiama l'URL insieme a una query context. Quando richiami l'endpoint /sign_up/confirmation_result e passi il parametro context ricevuto, il risultato indica
se il tuo utente ha verificato il suo account. Se lo ha fatto, puoi visualizzare la tua pagina personalizzata.
Password dimenticata
Puoi utilizzare l'endpoint /forgot_password per consentire agli utenti di recuperare la propria password se la dimenticano.
Fornisci i seguenti dati nel corpo della richiesta:
- Il tuo ID tenant.
- L'email dell'utente Cloud Directory.
Quando l'endpoint viene richiamato, all'utente viene inviata un'email di reimpostazione della password. L'email contiene un pulsante Reset. Dopo aver premuto il pulsante, App ID visualizza una schermata in cui può reimpostare la sua password.
Puoi presentare la tua propria pagina di post-reimpostazione della password:
- Configurare le impostazioni di Cloud Directory nella console. Allow users to manage their account from your app deve essere impostato su On.
- Nella scheda Reset Password del dashboard del servizio, assicurati che Forgot password email sia impostato su On.
- Immetti l'URL per la tua pagina di destinazione in URL for your custom reset password page
Quando viene fornito questo valore, App ID richiama l'URL insieme a una query context. Il parametro context è utilizzato per ricevere il risultato quando viene richiamato /forgot_password/confirmation_result.
Se il risultato ha esito positivo, puoi visualizzare la tua pagina personalizzata.
Aggiungi una stringa casuale alla pagina di reimpostazione della password personalizzata e passala al tuo backend quando la richiesta viene inviata. Chiedi al tuo gestore di convalidare la stringa e chiama l'endpoint /change_password solo se è valida. In questo modo, puoi ridurre la vulnerabilità del tuo endpoint di reimpostazione della password di backend.
Modifica password
È possibile utilizzare l'endpoint /change_password in due modi: quando un utente sottopone una richiesta di reimpostazione o quando un utente viene firmato all'interno della propria app e desidera aggiornare la propria password.
Prima di chiamare l'API /change_password per consentire a un utente di reimpostare la propria password, è altamente consigliato verificare se context ha un risultato di successo utilizzando l'endpoint /forgot_password/confirmation_result.
Questa operazione aggiunge un livello di sicurezza superiore al proprio processo di reimpostazione della password di back-end e garantisce che un utente possa modificare la propria password solo se il context è ancora valido.
Per aggiornare una password dell'utente dopo una richiesta di reimpostazione, fornire i seguenti dati nel corpo di richiesta:
- Il tuo ID tenant.
- La nuova password dell'utente.
- L'UUID utente Cloud Directory.
- Facoltativo: l'indirizzo IP da cui è stata eseguita la reimpostazione della password. Se scegli di passare l'indirizzo IP, è disponibile il segnaposto
%{passwordChangeInfo.ipAddress}per il template di email di modifica della password.
A seconda della tua configurazione, quando una password viene modificata App ID invia un'email all'utente per informarlo che è stata effettuata una modifica.
Per consentire agli utenti di modificare la propria password mentre sono sottoscritti nella propria app, fornire i seguenti dati nel corpo di richiesta:
- Il tuo ID tenant.
- La nuova password dell'utente.
- L'UUID utente Cloud Directory.
La tua pagina di modifica della password deve richiedere all'utente di immettere la password corrente e la nuova password.
Il tuo backend convalida la password corrente dell'utente con l'API ROP e, se valida, richiama l'endpoint con la nuova password. A seconda della tua configurazione, quando una password viene modificata App ID potrebbe inviare un'email all'utente facendogli sapere che c'è stata una modifica.
Invia di nuovo
È possibile utilizzare /resend/<templateName> per inviare nuovamente un'e-mail quando un utente non la riceve per qualche motivo.
Fornisci i seguenti dati nel corpo della richiesta:
- L'ID tenant.
- Il nome del template.
- L'UUID utente Cloud Directory.
Dettagli della modifica
Quando un utente accede alla tua applicazione, può aggiornare alcune delle sue informazioni. È possibile utilizzare il sito /Users/<userID> per ottenere e aggiornare le loro informazioni.
Quando i dati dell'utente vengono aggiornati, l'endpoint riceve i dati aggiornati dell'utente nel corpo della richiesta in formato SCIM. Assicurati di modificare solo i dettagli pertinenti.
L'indirizzo email non può essere modificato.