22 JCS - SaaS Extensionアプリケーションの認証の構成

Oracle Cloud Application ServicesにアクセスできるJCS - SaaS Extensionアプリケーションを保護することが重要です。テナント制限付き認証を使用すると、セキュリティを効果的に施行できます。

テナント制限付き認証オプションについて

アイデンティティ・プロバイダとして機能するよう設定されている1つ以上のFusion Applicationインスタンスが含まれるOracle Cloudアイデンティティ・ドメイン内のユーザーを認証するために、2つのサインイン・オプションが用意されています。ユーザーが認証を要求された場合、ユーザーは個別またはFusion Applicationsのサインイン・オプションを使用してOracle Cloudにサインインできます。どちらのオプションも、ユーザーによる認証の対象であるアイデンティティ・ドメインに影響します。

テナント制限付きページを開発すると、ユーザーがこのページに初めてアクセスしようとしたときに、アイデンティティ・ドメインを指定するよう要求されます。


sso-id.pngの説明が続きます
図sso-id.pngの説明

ユーザーが将来のサインインのためにアイデンティティ・ドメインの選択内容を保存するボックスを選択すると、このプロンプトは再表示されなくなります。

注意:

アイデンティティ・ドメインに関するプロンプトが再表示されるよう強制するには、ブラウザでOracle CloudのWebサイトによって設定されるCookieを削除します。

アイデンティティ・ドメインを入力し、「実行」をクリックした後、サインイン・ページが表示されます。


sso-company.pngの説明が続きます
図sso-company.pngの説明

ユーザーは、2つのサインイン・オプションのいずれかを選択できます。

  • サインイン: Oracle CloudのユーザーIDを使用してユーザーを認証します。

  • 会社を使用したサインイン: Oracle PaaSのアイデンティティ管理を使用してユーザーを認証します。

会社を使用したサインインを選択すると、Oracle Platform as a Serviceアイデンティティ管理レルムに対する認証がアイデンティティ・ドメイン全体にわたって共有されます。つまり、ユーザーは、アイデンティティ・ドメイン内で動作するOracle PaaSインスタンス(JCS - SaaS Extensionを含む)に対して設定された資格証明を使用してログインします。

サインイン・メカニズムを使用してログインする場合、認証は、同じアイデンティティ・ドメイン内のアイデンティティ・プロバイダにリダイレクトされ、これはJCS - SaaS Extensionとは異なります。たとえば、Oracle Sales Cloudがアイデンティティ・プロバイダとして設定された状態でJCS - SaaS ExtensionOracle Sales Cloudに関連付けられている場合、ユーザーはOracle Sales Cloudのログイン・ページにリダイレクトされます。ユーザーは、Oracle Sales Cloudにログインした後、JCS - SaaS Extensionアプリケーションにリダイレクトし戻されます。ユーザーがOracle Sales Cloudにすでにログインしている場合、再度このユーザーが認証を要求されることはありません。

上記の認証メカニズムは両方とも、アプリケーションのセキュリティ構成が同じです。「テナント制限付きページの使用」に説明されているとおり、開発者として、CLIENT–CERT (<auth-method>CLIENT-CERT</auth-method>)を使用してアプリケーションを保護します。

テナント制限付きページの使用

テナントのアイデンティティ・ドメイン内のユーザーのみがアクセスできるページは、テナント制限付きと呼ばれます。Oracle JDeveloperまたはOracle Enterprise Pack for Eclipse (OEPE)を使用して、Oracle ADFアプリケーションの認証を構成できます。

注意:

Oracle JDeveloper IDEを使用してOracle Cloudで開発するには、Oracle JDeveloper Studio Editionバージョン11.1.1.7.1を使用する必要があります。これより新しいバージョンを含む他のOracle JDeveloperのバージョンの場合、Oracle Cloudの統合機能をサポートしていません。Oracle JDeveloper Studio Edition 11.1.1.7.1をOracle Technology Network (http://www.oracle.com/technetwork/developer-tools/jdev/downloads/jdeveloer111171-2183166.html)からダウンロードしてください。

Oracle JDeveloperを使用してテナント制限付きモードでアプリケーションを保護する手順:

  1. 「アプリケーション・ナビゲータ」で、Oracle ADFアプリケーションが選択されていることを確認します。
  2. 「プロジェクト」ペインで、ViewControllerプロジェクトを開き、「Webコンテンツ」フォルダを展開し、「WEB-INF」フォルダを展開し、web.xmlアーティファクトを開きます。
  3. web.xmlデプロイメント・ディスクリプタに<login-config>セキュリティ要素を追加します。使用できる認証モードは3つあります。
    • CLIENT-CERT: Oracleがお薦めする認証モードです。これを使用すると、アプリケーションに対してテナント固有のシングル・サインオン(SSO)認証モードが使用可能になります。このモードで保護されたページにアクセスするユーザーは、現在のブラウザ・セッションでまだOracle Cloudにサインインしていない場合、サインインするよう求められます。このログインは、ユーザーが同じテナント内でアクセスする他の任意のアプリケーションでも有効なままです。
    • BASIC: 認証のHTTP BASICモードが使用可能になります。
    • FORM: 認証のHTTP FORM モードが使用可能になります。
    次に、Webアプリケーションで<login-config>セキュリティ要素を使用した例を示します。
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> … <login-config> <auth-method>CLIENT-CERT</auth-method> <realm-name>default</realm-name> </login-config> … </web-app>
  4. <security-constraint>要素を追加し、アプリケーションのどの部分を保護するかを指定します。この要素がない場合、アプリケーションは、FORMまたはBASICモードを使用する場合はインターネット・パブリック、CLIENT-CERTモードを使用する場合はOracleパブリックになります。Oracleでは、次の例に示すように、<security-constraint>要素を追加することを強くお薦めします。
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> ...<security-constraint> <display-name>name</display-name> <web-resource-collection> <web-resource-name>name</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> </security-constraint> … <login-config> <auth-method>CLIENT-CERT</auth-method> <realm-name>default</realm-name> </login-config> … </web-app>