Oracle Mobile Hub 애플리케이션의 인증 옵션에 대해 알아보기

Oracle Mobile Hub 에서는 OAuth, Single Sign-On 또는 HTTP 기본 인증과 같은 기술을 사용하여 모바일 응용 프로그램을 인증할 수 있습니다.

IOS 애플리케이션을 인증하기 전에 XCode 프로젝트에서 다음 라이브러리를 임포트해야 합니다.

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

OAuth 소비자 및 HTTP 기본 사용 정보

Oracle Mobile Hub SDK는 사용자 인증 처리 방법을 제공합니다.

다음 방법을 사용하여 사용자 이름과 암호를 사용하여 사용자 로그인을 처리합니다.

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

이 방법은 Oracle Mobile Hub 에 대한 접속을 종료하고 iOS 키 체인에서 사용자 이름 및 비밀번호를 지웁니다.

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

타사 토큰에서 Single Sign-On 사용 정보

타사 토큰을 사용하여 Oracle Mobile Hub 에서 iOS 애플리케이션을 인증할 수 있습니다.

먼저, 애플리케이션에서 타사 토큰 발행자로부터 토큰을 가져와야 합니다. 토큰을 얻을 수 있는 방법은 발행자마다 다릅니다.

토큰이 있으면 이를 사용하여 인증합니다. 이 예의 코드는 다시 로그인하기 전에 토큰이 Oracle Mobile Hub 에 이미 저장되어 있는지 확인합니다.

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

주:

Oracle Mobile Hub 에 타사 토큰을 저장하는 기본 만료 시간은 6시간입니다. Security_TokenExchangeTimeoutSecs 정책을 변경하여 이 시간을 조정할 수 있습니다.

애플리케이션을 닫고 재시작하는 경우에도 사용자가 로그인한 상태로 유지하도록 애플리케이션을 코딩할 수 있습니다.

authenticateSSOTokenExchange 방식에서 storeAccessTokenYES로 설정된 경우 토큰은 보안 저장소에 저장되며 토큰이 만료될 때까지 사용자가 로그인한 상태로 유지됩니다.

앱 실행 순서에서 loadSSOTokenExchange() 메소드를 사용하여 키 체인에서 토큰을 로드할 수 있습니다. 토큰을 검색할 수 없는 경우 메소드는 NO을 반환합니다.

저장된 토큰을 로드하려고 시도하는 몇 가지 코드가 실패하는 경우 인증 프로세스를 다시 시작합니다.

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

토큰을 보안 저장소에 저장하면 해당 토큰은 애플리케이션이 원래 사용한 백엔드와 계속 연관됩니다. 따라서 응용 프로그램이 다른 모바일 백엔드(또는 모바일 백엔드 버전) 를 사용하도록 업데이트된 경우 clearSSOTokenExchange를 사용하여 저장된 토큰을 지우고 재인증해야 합니다.