En savoir plus sur les options d'authentification des applications Oracle Mobile Hub
Oracle Mobile Hub vous permet d'authentifier vos applications mobiles à l'aide de technologies telles qu'OAuth, l'accès avec connexion unique ou l'authentification de base HTTP.
Avant d'authentifier vos applications iOS, vous devez importer les bibliothèques suivantes dans votre projet XCode :
#import "OMCCore/OMCAuthorization.h"
#import "OMCCore/OMCMobileBackend.h"
#import "OMCCore/OMCMobileManager.h"
A propos de l'utilisation du client OAuth et d'HTTP Basic
Oracle Mobile Hub SDK fournit des méthodes de gestion de l'authentification utilisateur.
Utilisez la méthode suivante pour gérer un utilisateur se connectant avec un nom d'utilisateur et un mot de passe :
- (void) authenticate:(NSString *)userName
password:(NSString *)password
completionBlock: (nullable OMCErrorCompletionBlock) completionBlock;
Cette méthode met fin à la connexion à Oracle Mobile Hub et efface le nom d'utilisateur et le mot de passe de la chaîne de clé iOS :
-(void) logout: (nullable OMCErrorCompletionBlock) completionBlock;
A propos de l'utilisation de l'accès avec connexion unique (SSO) avec un jeton tiers
Vous pouvez utiliser un jeton tiers pour authentifier l'application iOS auprès d'Oracle Mobile Hub.
Tout d'abord, l'application doit obtenir un jeton auprès de l'émetteur de jeton tiers. Le mode d'obtention du jeton varie selon l'émetteur.
Après avoir le jeton, utilisez-le pour l'authentification. Le code de cet exemple vérifie que le jeton est déjà stocké dans Oracle Mobile Hub avant de se reconnecter :
-(void) authenticateSSOTokenExchange: (NSString*) token
storeAccessToken:(BOOL) storeToken
completionBlock: (OMCErrorCompletionBlock) completionBlock;
Remarque :
Le délai d'expiration par défaut pour le stockage d'un jeton tiers dans Oracle Mobile Hub est de 6 heures. Vous pouvez ajuster cette durée en modifiant la règleSecurity_TokenExchangeTimeoutSecs
.
Vous pouvez également coder l'application de manière à ce que l'utilisateur reste connecté, même lors de la fermeture et du redémarrage de l'application.
Dans la méthode authenticateSSOTokenExchange
, si storeAccessToken
est défini sur YES
, le jeton est stocké dans un emplacement de stockage sécurisé et l'utilisateur reste connecté jusqu'à l'expiration du jeton.
Vous pouvez utiliser la méthode loadSSOTokenExchange()
dans la séquence de lancement de l'application pour charger le jeton à partir de la chaîne de clé. (Si un jeton ne peut pas être extrait, la méthode renvoie NO
).
Voici quelques codes qui tentent de charger un jeton enregistré et, en cas d'échec, redémarre le processus d'authentification :
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.
...
}
}];
}
Une fois le jeton stocké dans le stockage sécurisé, il reste associé au back-end que l'application utilise à l'origine. Par conséquent, si l'application est mise à jour pour utiliser un back-end mobile différent (ou une version de back-end mobile), vous devez effacer le jeton enregistré (à l'aide de clearSSOTokenExchange
) et procéder à une nouvelle authentification.