ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Access Management開発者ガイド
11g リリース2 (11.1.2.2.0) for All Platforms
B69537-08
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

12 Mobile and Socialサーバーの機能の拡張

この章では、Mobile and Social Javaインタフェースを拡張して、モバイル・サービス用の新しい認証サービス・プロバイダを追加する方法について説明します。この章の内容は次のとおりです。

12.1 モバイル・サービス用の新しい認証サービス・プロバイダの作成

この項の項目は次のとおりです。

12.1.1 カスタム認証サービス・プロバイダの開発

カスタム認証サービス・プロバイダを作成するには、次の2つのカスタム・クラスを記述する必要があります。

  • TokenService: 最初にこのインタフェースを実装します。これは、モバイル以外のアプリケーションと連動する基本的なカスタム・トークン・プロバイダです。

  • MobileCompositeTokenServiceProvider: このクラスを拡張してモバイル・アプリケーションをサポートします。ここでは、モバイルSSOをサポートするために作成したカスタム・トークン・プロバイダを再利用しています。モバイル・アプリケーションをサポートする必要がない場合は、このクラスを拡張する必要はありません。

12.1.1.1 TokenServiceインタフェースの実装

実装するAPIの詳細は、TokenService Javaドキュメントを参照してください。LifecycleServiceProviderおよびUserAuthenticatorインタフェースを実装する必要もあることに注意してください。

カスタム・トークン・プロバイダでは、この認証サービス・プロバイダを再利用してモバイル・クライアントをサポートするために、createTokens()メソッドを実装する必要があります。

Tokenオブジェクトを戻す場合(成功時)またはRESTUnauthorizedExceptionをスローする場合(失敗時)、PluginContextオブジェクトを作成する必要があります。このオブジェクトは、戻されるTokenオブジェクトか、スローされるRESTUnauthorizedExceptionに含まれる必要があります。

  • 各サービス・ドメインには、セキュリティ・ハンドラ・プラグインがあります。セキュリティ・ハンドラ・プラグインはユーザー動作パターンを追跡し、必要に応じて、認証チャレンジ(ナレッジベース認証チャレンジなど)を発行できます。OAAMSecurityHandlerPluginは、Mobile and Socialに含まれています。ナレッジベース認証(KBA)チャレンジには、Oracle Adaptive Access Managerの統合が必要です。

  • 通常、認証サービス・プロバイダ・トークン操作の後で、セキュリティ・ハンドラ・プラグインが起動します。このPluginContextのデータは、セキュリティ・プラグインとの通信に使用されます。TokenオブジェクトまたはRESTUnauthorizedExceptionオブジェクトにPluginContextオブジェクトが含まれない場合、構成されたセキュリティ・プラグインは起動されません。

  • PluginContextオブジェクトは、PluginDataFactory APIを介して作成されます。PluginContext APIは、セキュリティ・イベントのタイプ、ユーザーID、クライアント・アプリケーションID、それらの対応するID認証ステータスとタイプなどのセキュリティ・データを収集します。詳細は、Javadocを参照してください。

12.1.1.2 MobileCompositeTokenServiceProviderの拡張

このクラスを拡張して、カスタム・トークン・サービス・プロバイダを再使用し、モバイル・デバイスをサポートします。

getComponentTokenServiceProviderClass() APIを実装します。次のサンプル・コードを参照してください。

protected Class getComponentTokenServiceProviderClass() {
  return CustomTokenProvider.class; 
  // CustomTokenProvider is the class name you implemented. Change the name to 
  // the name that you used when implementing the TokenService.
}

詳細は、このクラスのJavaドキュメントを参照してください。

12.1.2 カスタム認証サービス・プロバイダの構築

カスタム認証サービス・プロバイダは次のように構築します。

12.1.2.1 カスタム認証サービス・プロバイダを構築するには

  1. oic_rest.jarファイル、oic_common.jarファイルおよびカスタム・コードに必要な追加のJARファイルを収集します。

    次に例を示します。

    com/example/tokenprovider/MyTokenProvider.java implementing TokenService
    com/example/tokenprovider/MobileMyTokenProvider.java extending MobileCompositeTokenServiceProvider
    
  2. カスタム・トークン・プロバイダを構築します。

    次に例を示します。

    javac -cp ./oic_rest.jar:./oic_common.jar com/example/tokenprovider/MyTokenProvider.java
    
    javac -cp ./oic_rest.jar:./oic_common.jar:. com/example/tokenprovider/MobileMyTokenProvider.java
    
  3. JARファイルを構築します。

    次に例を示します。

    jar cvf mytokenpro.jar com/example/tokenprovider/*.class
    

12.1.3 カスタム認証サービス・プロバイダのデプロイ

カスタム認証サービス・プロバイダは次のようにデプロイします。

12.1.3.1 カスタム認証サービス・プロバイダをデプロイするには

  1. mytokenpro.jarをデプロイメントのfmwconfig/oic/pluginsディレクトリにコピーします。

    ここでJARファイルは、Mobile and Socialによって動的に選択されます。カスタム・サービス・プロバイダに追加のJARファイルが必要な場合、これらのファイルは、コンテナのCLASSPATHで使用できるようにする必要があります。

  2. 管理コンソールからカスタム・トークン・プロバイダを構成するには、「システム構成」→Mobile and Social→「サービス・プロバイダ」→「認証サービス・プロバイダ」を選択します。

    たとえば、MyTokenProviderのような、新しいサービス・プロバイダを作成します。

  3. モバイルSSOアプリケーション用のカスタム・トークン・プロバイダを構成します。

    MobileCompositeTokenServiceProviderを実装している場合は、管理コンソールから「システム構成」→Mobile and Social→「モバイル・サービス」→「認証サービス・プロバイダ」を選択します。

    たとえば、MobileMyTokenProviderのような、新しいサービス・プロバイダを作成します。

  4. 手順2および3で定義しているように、カスタム・トークン・プロバイダを使用する認証サービス・インスタンスを構成します。

    管理コンソールから、「システム構成」→Mobile and Social→「モバイル・サービス」→「サービス・ドメイン」→サービス・ドメインの選択→「認証サービス」を選択します。

    たとえば、MyTokenServiceのような、新しいインスタンスを作成します。

  5. 手順2および3で定義しているように、カスタム・モバイル・トークン・プロバイダを使用している認証サービス・インスタンスを定義します。

    管理コンソールから、「システム構成」→Mobile and Social→「モバイル・サービス」→「サービス・ドメイン」→サービス・ドメインの選択→「認証サービス」を選択します。

    たとえば、MobileMyAuthnServiceのような、新しいインスタンスを作成します。

これでカスタム認証サービス・プロバイダがデプロイメントで使用できるようになりました。

12.2 インターネット・アイデンティティ・サービス用の新しいアイデンティティ・サービス・プロバイダの作成

Mobile and Socialでは、Google、LinkedIn、TwitterおよびYahooのアイデンティティ・プロバイダをサポートしています。その他のOpenIDおよびOAuthサービス・プロバイダを追加するには、IdentityProvider Javaインタフェースを実装し、システム管理コンソールを使用してMobile and Socialデプロイメントにプロバイダを追加します。

この項の項目は次のとおりです。

12.2.1 カスタム・アイデンティティ・サービス・プロバイダの開発

このインタフェースには、次の3つのメソッドがあります。

  • authenticateUser(): このメソッドは、アイデンティティ・プロバイダを使用してユーザーを認証するプロセスを開始します。認証後、アイデンティティ・プロバイダは、認証リクエストで送信された戻りURLを使用して、Mobile and Socialサーバーにアイデンティティ・プロファイル情報を戻します。

    次の2つの戻りURLオプションがあります。

    • https://host.example.com:port/oic_rp/popup: アイデンティティ・プロバイダ・ログイン・ページがポップアップ・ウィンドウで開かれる場合はこのオプションを使用します。

    • https://host.example.com:port/oic_rp /return: アイデンティティ・プロバイダ・ログイン・ページがアプリケーションのログイン・ページと同じブラウザ・ウィンドウで開かれる場合は、このオプションを使用します。

  • getAccessToken(): アイデンティティ・プロバイダがOAuthプロトコルを使用する場合、Mobile and Socialサーバーはこのメソッドを使用して、アクセス・トークンを取得する必要があります。Mobile and Socialサーバーはアクセス・トークンを使用して、ユーザー・トークンを取得します。

  • getUserProfile(): このメソッドは、アイデンティティ・プロバイダからユーザー・プロファイルを取得します。

12.2.2 カスタム・アイデンティティ・サービス・プロバイダの構築

カスタム・アイデンティティ・サービス・プロバイダは次のように構築します。

12.2.2.1 カスタム・アイデンティティ・サービス・プロバイダを構築するには

  1. oic_rp.jarファイル、oic_common.jarファイルおよびj2ee.jarファイルを収集します。

  2. クラスを構築します。

    たとえば、アイデンティティ・プロバイダ名がXYZである場合:

    javac -cp ./j2ee.jar:./oic_rp.jar:./oic_common.jar com/xyz/custom/idp/XYZImpl.java
    

    カスタム・コードによって必要に応じて、JARファイルを追加します。

  3. JARファイルを構築します。

    次に例を示します。

    jar cvf xyz-idp.jar com/xyz/custom/idp/XYZImpl.class
    

12.2.3 カスタム・アイデンティティ・サービス・プロバイダのデプロイ

カスタム認証サービス・プロバイダは次のようにデプロイします。次の手順は、XYZProviderを例として使用します。

12.2.3.1 カスタム・アイデンティティ・サービス・プロバイダをデプロイするには

  1. xyz-idp.jarをデプロイメントのfmwconfig/oic/pluginsディレクトリにコピーします。

    ここでJARファイルは、Mobile and Socialによって動的に選択されます。カスタム・サービス・プロバイダに追加のJARファイルが必要な場合、これらのファイルは、コンテナのCLASSPATHで使用できるようにする必要があります。

  2. 管理コンソールからカスタム・アイデンティティ・プロバイダを構成するには、「システム構成」→Mobile and Social→「インターネット・アイデンティティ・サービス」を選択します。

    「インターネット・アイデンティティ・プロバイダ」セクションで、「作成」をクリックし、たとえばXYZProviderのような、新しいインターネット・アイデンティティ・プロバイダを追加します。

    • 「プロトコル属性」の下で必要な属性を定義します。これらの属性は、カスタム実装で使用されます。

    • 「返されたユーザー属性」セクションでユーザー属性を定義します。これらの属性は、getUserProfile()メソッド・ロジックの一部としてカスタム実装で使用されます。

    または、管理コンソールを使用するかわりに、次のXMLをoic_rp.xmlに追加します。

        <InternetIdentityProvider description="XYZ OAuth Provider" name="XYZProvider">
            <icon>XYZ.gif</icon>
            <protocolType>OAuth</protocolType>
            <userAttribute>
                <name>id</name>
                <value>id</value>
            </userAttribute>
            <userAttribute>
                <name>first_name</name>
                <value>first_name</value>
            </userAttribute>
            <userAttribute>
                <name>last_name</name>
                <value>last_name</value>
            </userAttribute>
            <userAttribute>
                <name>email</name>
                <value>email</value>
            </userAttribute>
            <userAttribute>
                <name>location</name>
                <value>location</value>
            </userAttribute>
            <userAttribute>
                <name>birthday</name>
                <value>birthday</value>
            </userAttribute>
            <userAttribute>
                <name>gender</name>
                <value>gender</value>
            </userAttribute>
            <userAttribute>
                <name>language</name>
                <value>language</value>
            </userAttribute>
            <userAttribute>
                <name>country</name>
                <value>country</value>
            </userAttribute>
            <userAttribute>
                <name>profile_image_url</name>
                <value>profile_image_url</value>
            </userAttribute>
            <providerImplClass>com.xyz.custom.idp.XYZImpl</providerImplClass>
        </InternetIdentityProvider>
    
  3. カスタム・アイデンティティ・プロバイダを使用するアプリケーション・プロファイルを作成または編集します。

    詳細は、『Oracle Fusion Middleware Oracle Access Management管理者ガイド』のアプリケーション・プロファイルの編集または作成に関する項を参照してください。

  4. 「アプリケーション・ユーザー属性とインターネット・アイデンティティ・プロバイダ・ユーザー属性のマッピング」セクションで、XYZProviderを選択し、ユーザー属性マッピングを定義します。