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
メソッドでは、storeAccessToken
をYES
に設定すると、トークンがセキュアなストアに格納され、ユーザーはトークンが期限切れになるまでログインしたままとなります。
アプリケーション起動シーケンスで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
を使用)をクリアして再認証する必要があります。