Información sobre las opciones de autenticación para sus aplicaciones de Oracle Mobile Hub

Oracle Mobile Hub permite autenticar las aplicaciones móviles mediante tecnologías como OAuth, conexión única o autenticación HTTP básica.

Antes de autenticar las aplicaciones iOS, debe importar las siguientes bibliotecas en el proyecto de XCode:

#import "OMCCore/OMCAuthorization.h"
#import "OMCCore/OMCMobileBackend.h"
#import "OMCCore/OMCMobileManager.h"

Acerca del Uso de OAuth Consumer y HTTP Basic

Oracle Mobile Hub SDK proporciona métodos para manejar la autenticación de usuario.

Utilice el siguiente método para manejar un usuario que se conecte con un nombre de usuario y una contraseña:

- (void) authenticate:(NSString *)userName
             password:(NSString *)password
      completionBlock: (nullable OMCErrorCompletionBlock) completionBlock;

Este método termina la conexión a Oracle Mobile Hub y borra el nombre de usuario y la contraseña de la cadena de claves de iOS:

-(void) logout: (nullable OMCErrorCompletionBlock) completionBlock;

Acerca del Uso de Single Sign-On con un Token de Terceros

Puede utilizar un token de terceros para autenticar la aplicación iOS con Oracle Mobile Hub.

En primer lugar, la aplicación debe obtener un token del emisor de tokens de terceros. La manera en que puede obtener el token varía según el emisor.

Una vez que tenga el token, utilícelo para la autenticación. El código de este ejemplo comprueba seeif si el token ya está almacenado en Oracle Mobile Hub antes de volver a conectarse:

-(void) authenticateSSOTokenExchange: (NSString*) token
            storeAccessToken:(BOOL) storeToken
            completionBlock: (OMCErrorCompletionBlock) completionBlock;

Nota:

El tiempo de caducidad por defecto para almacenar un token de terceros en Oracle Mobile Hub es de 6 horas. Puede ajustar este tiempo si cambia la política Security_TokenExchangeTimeoutSecs.

También puede codificar la aplicación para mantener el usuario conectado, incluso al cerrar y reiniciar la aplicación.

En el método authenticateSSOTokenExchange, si storeAccessToken se define en YES, el token se almacena en un almacén seguro y el usuario permanece conectado hasta que el token caduca.

Puede utilizar el método loadSSOTokenExchange() en la secuencia de inicio de la aplicación para cargar el token desde la cadena de claves. (Si no se puede recuperar un token, el método devuelve NO).

A continuación, se muestra un código que intenta cargar un token guardado y, si falla, reinicia el proceso de autenticación:

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.
	        ...
	    }
	}];
}

Cuando tiene el token almacenado en el almacén seguro, permanece asociado al backend que utiliza originalmente la aplicación. Por lo tanto, si la aplicación se actualiza para utilizar un backend móvil diferente (o una versión de backend móvil), debe borrar el token guardado (con clearSSOTokenExchange) y volver a autenticarse.