Informazioni sulle opzioni di autenticazione per le applicazioni Oracle Mobile Hub
Oracle Mobile Hub consente di autenticare le applicazioni Mobile utilizzando tecnologie quali OAuth, Single Sign-On o autenticazione Basic HTTP.
Prima di autenticare le applicazioni iOS, è necessario importare le seguenti librerie nel progetto XCode:
#import "OMCCore/OMCAuthorization.h"
#import "OMCCore/OMCMobileBackend.h"
#import "OMCCore/OMCMobileManager.h"
Informazioni sull'uso del consumer OAuth e di base HTTP
Oracle Mobile Hub SDK fornisce metodi per la gestione dell'autenticazione utente.
Usare il metodo seguente per gestire il login di un utente con un nome utente e una password:
- (void) authenticate:(NSString *)userName
password:(NSString *)password
completionBlock: (nullable OMCErrorCompletionBlock) completionBlock;
Questo metodo termina la connessione a Oracle Mobile Hub e cancella il nome utente e la password dalla catena di chiavi iOS:
-(void) logout: (nullable OMCErrorCompletionBlock) completionBlock;
Informazioni sull'uso di Single Sign-On con token di terze parti
È possibile utilizzare un token di terze parti per autenticare l'applicazione iOS con Oracle Mobile Hub.
In primo luogo, l'applicazione deve ottenere un token dall'emittente del token di terze parti. Il modo in cui è possibile ottenere il token varia in base all'emittente.
Una volta ottenuto il token, utilizzarlo per eseguire l'autenticazione. Il codice in questo esempio verifica se il token è già memorizzato in Oracle Mobile Hub prima di eseguire di nuovo il login:
-(void) authenticateSSOTokenExchange: (NSString*) token
storeAccessToken:(BOOL) storeToken
completionBlock: (OMCErrorCompletionBlock) completionBlock;
Nota:
Il periodo di scadenza predefinito per la memorizzazione di un token di terze parti in Oracle Mobile Hub è di 6 ore. È possibile regolare questa ora modificando il criterioSecurity_TokenExchangeTimeoutSecs
.
È inoltre possibile codificare l'applicazione per mantenere l'utente collegato, anche quando si chiude e riavvia l'applicazione.
Nel metodo authenticateSSOTokenExchange
, se storeAccessToken
è impostato su YES
, il token viene memorizzato in un'area di memorizzazione sicura e l'utente rimane collegato fino alla scadenza del token.
È possibile utilizzare il metodo loadSSOTokenExchange()
nella sequenza di avvio dell'applicazione per caricare il token dal portachiavi. Se non è possibile recuperare un token, il metodo restituisce NO
.
Ecco alcuni codici che tentano di caricare un token salvato e, in caso di errore, riavvia il processo di autenticazione:
OMCAuthorization* auth;
if ( [auth loadSSOTokenExchange] ){
NSLog(@"## Token already found, login skipped.");
...
}
else{
[auth authenticateSSOTokenExchange:thirdPartyToken
storeAccessToken:YES
completionBlock:^(NSError * _Nullable error) {
if( error ){
//Show error popup
}
else{
// Login success.
...
}
}];
}
Il token memorizzato nell'area di memorizzazione sicura rimane associato al backend utilizzato dall'applicazione. Pertanto, se l'applicazione viene aggiornata in modo da utilizzare un backend mobile diverso (o una versione di backend mobile), è necessario cancellare il token salvato (utilizzando clearSSOTokenExchange
) e ripetere l'autenticazione.