Oracle Mobile Hubアプリケーションの認証オプションについて

Oracle Mobile Hubでは、OAuth、シングル・サインオン、HTTP Basic認証などのテクノロジを使用して、モバイル・アプリケーションを認証できます。

IOSアプリケーションを認証する前に、XCodeプロジェクトに次のライブラリをインポートする必要があります。

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

OAuth ConsumerおよびHTTP Basicの使用について

Oracle Mobile Hub SDKには、ユーザー認証を処理するメソッドが用意されています。

次の方法を使用して、ユーザー名とパスワードを使用してログインするユーザーを処理します。

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

このメソッドは、Oracle Mobile Hubへの接続を終了し、iOSキーチェーンからユーザー名とパスワードを消去します。

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

サード・パーティのトークンでのシングル・サインオンの使用について

サード・パーティのトークンを使用して、iOSアプリケーションをOracle Mobile Hubで認証できます。

最初に、アプリケーションは、サードパーティのトークン発行者からトークンを取得する必要があります。トークンの取得方法は、発行者によって異なります。

トークンを取得したら、それを使用して認証します。この例のコードは、トークンがすでに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を使用)をクリアして再認証する必要があります。