Javaアプリケーションのテスト

解決策のこのセクションでは、次の操作を行います。

  • サンプルJava WebアプリケーションをOracle Identity Cloud Serviceと統合して認証用に登録します

  • Oracle Identity Cloud ServiceのSDK for the Javaプログラミング言語を使用するようにアプリケーションを設定します

  • アプリケーションの準備、実行およびテスト

Javaアプリケーションの登録

Oracle Identity Cloud Serviceとの通信を確立するために、サンプルJava WebアプリケーションにはクライアントIDおよびシークレットが必要です。また、アプリケーションに付与するAPI権限を構成する必要もあります。

  1. Oracle Identity Cloud Serviceコンソールで、ナビゲーション・ドロワーを開き、「アプリケーション」をクリックします。
  2. アプリケーション・ページで、「追加」をクリックします。
  3. 「アプリケーションの追加」ダイアログ・ボックスで、「機密アプリケーション」をクリックします。
  4. 「詳細」ペインの「名前」および「説明」フィールドにSDK Web Applicationと入力し、「次」をクリックします。
  5. 「クライアント」ペインで、「このアプリケーションをクライアントとして今すぐ構成」を選択し、このペインのフィールドを次のように移入します。
    フィールド Value
    許可される権限付与タイプ 「クライアント資格証明」および「認可コード」を選択します。
    HTTPS以外のURLを許可 このチェック・ボックスを選択します。アプリケーションは非HTTPSモードで動作します。
    リダイレクトURL http://localhost:8080/callback
    ログアウト後のリダイレクトURL http://localhost:8080
  6. 「クライアント」ペインでスクロール・ダウンし、「Identity Cloud Service管理APIへのクライアント・アクセス権を付与します。」を選択し、下のフィールドにAuthenticator ClientおよびMeと入力して、「次へ」をクリックします。
  7. 次のペインで、最後のペインが表示されるまで「次へ」をクリックします。次に、「終了」をクリックします。
  8. 「アプリケーション追加済」ダイアログ・ボックスで、「クライアントID」および「クライアント・シークレット」の値を書き留めておきます(Java WebアプリケーションでOracle Identity Cloud Serviceと統合するためにこれらの値が必要であるため)。「閉じる」をクリックします。
  9. このアプリケーションをOracle Identity Cloud Serviceと統合するため、「アクティブ化」をクリックします。
  10. 「アプリケーションをアクティブ化しますか?」ダイアログ・ボックスで、「アプリケーションのアクティブ化」をクリックします。
  11. Oracle Identity Cloud Serviceコンソールで、コンソールの右上にあるユーザー名をクリックし、「サインアウト」をクリックします。

Javaアプリケーションの設定

Javaプログラミング言語にOracle Identity Cloud ServiceのSDKを使用するように、サンプルJavaアプリケーションのコードを更新します。

  1. c:\temp\java\pom.xmlファイルを開きます。
  2. コードの次の行を見つけます。
    <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/idcs-assert.jar</systemPath>
  3. idcs-assert.jarファイルを「Java SDKのダウンロード」セクションで書き留めたファイルの名前に置き換えます。
  4. 変更をpom.xmlファイルに保存し、ファイルを閉じます。
  5. c:\temp\java\src\main\java\sampleapp\util\ConnectionOptions.javaファイルを編集し、getOptionsメソッドを次の内容で更新してから、ファイルを保存します。
     public Map<String,Object> getOptions(){
            //Adding Oracle Identity Cloud Service connection parameters to the HashMap instance.
            this.options.put(IDCSTokenAssertionConfiguration.IDCS_HOST, "identity.oraclecloud.com");
            this.options.put(IDCSTokenAssertionConfiguration.IDCS_PORT, "443");
            this.options.put(IDCSTokenAssertionConfiguration.IDCS_CLIENT_ID, "123456789abcdefghij");
            this.options.put(IDCSTokenAssertionConfiguration.IDCS_CLIENT_SECRET, "abcde-12345-zyxvu-98765-qwerty");
            this.options.put(IDCSTokenAssertionConfiguration.IDCS_CLIENT_TENANT, "idcs-abcd1234");
            this.options.put(Constants.AUDIENCE_SERVICE_URL, "https://idcs-abcd1234.identity.oraclecloud.com:443");
            this.options.put(Constants.TOKEN_ISSUER, "https://identity.oraclecloud.com/");
            this.options.put(Constants.TOKEN_CLAIM_SCOPE, "urn:opc:idm:t.user.me openid");
            this.options.put("SSLEnabled", "true");
            this.options.put("redirectURL", "http://localhost:8080/callback");
            this.options.put("logoutSufix", "/oauth2/v1/userlogout");
            this.options.put(Constants.LOG_LEVEL, "DEBUG");
            this.options.put(Constants.CONSOLE_LOG, "True");
    	return this.options;
    }
    IDCS_HOSTIDCS_PORTおよびIDCS_CLIENT_TENANTパラメータの値は、このソリューションの「メソッドおよび関数の学習」トピックから取得できます。IDCS_CLIENT_IDおよびIDCS_CLIENT_SECRETパラメータ値には、Java Webアプリケーションの登録時にOracle Identity Cloud Serviceによって生成されたクライアントIDおよびクライアント・シークレットを使用します。

Javaアプリケーションの実行

サンプルJava Webアプリケーションを準備、実行およびテストします。

  1. NetBeansを起動します。
  2. 「ファイル」をクリックし、「プロジェクトを開く」をクリックします。
  3. C:\temp\javaフォルダを選択し、「プロジェクトを開く」をクリックします。
  4. プロジェクトの名前を右クリックし、「ビルド」をクリックします。
  5. プロジェクトの名前を右クリックし、「実行」をクリックします。
    アプリケーションは、NetBeansのデフォルト・ポート(8080)を使用します。NetBeansアプリケーションが、この同じポートを使用するように構成されていることを確認します。
  6. 新しいブラウザ・ウィンドウが開き、http://localhost:8080 URLが表示されたら、「ログイン」をクリックします。
  7. 「ログイン」ページで、赤い「Oracle」アイコンをクリックします。
  8. 「サインイン」ページで、Oracle Identity Cloud Service資格証明を使用してサインインします。
    Oracle Identity Cloud Serviceにサインインすると、Java Webアプリケーションの「ホーム」ページが表示されます。ログインしているユーザーの名前がページの右上に表示されます。
  9. 左側のメニューで、「マイ・プロファイル」をクリックします。
  10. プロファイルに関連付けられた情報がページの中央に表示されることを確認します。