6 JCS - SaaS ExtensionとOracle SaaSの相互作用の認可戦略
サービスの関連付けの有無、サービスの機能、およびサービス間の統合パターンに応じて、複数のユーザー認可オプションが用意されています。
「JCS - SaaS ExtensionとOracle Sales Cloudの相互作用のユースケースおよびパターン」および「JCS - SaaS ExtensionとCPQ Cloudの相互作用のユースケースおよびパターン」には、JCS - SaaS ExtensionアプリケーションとOracle SaaSサービス間の様々な相互作用のパターンが説明されています。このトピックでは、これらのユースケースおよびパターンを使用する場合に使用可能な、推奨される認可戦略について説明します。
トピック
ロール・ベースの認可戦略
認証以外にも、JCS - SaaS Extensionを使用してOracle SaaSサービスを拡張する場合はロール・ベースの認可戦略について検討する必要があります。
認可の保護については、SAMLメカニズムとOAuthメカニズムの両方がOracle PaaSによってサポートされます。Oracle PaaSとともにOAuthを使用する方法の詳細は、「Oracle Cloud Identity Managementの管理」の「OAuthリソースおよびクライアントの管理」を参照してください。
ほとんどのOracle SaaSサービスでは、機能およびデータへのアクセスは、ロール・ベースのアクセス制御(RBAC)を使用して保護されます。これらの製品では、標準機能を保護するために使用される営業マネージャ(ジョブ・ロール)や従業員(抽象ロール)などの事前定義済ロールが用意されています。また、通常、組織要件に適用されるカスタム・セキュリティ・ロールを構成できます。
同様に、JCS - SaaS Extensionには、Java管理者の事前定義済ロールが用意されています。このロールを持つユーザーは、JCS - SaaS Extensionインスタンスに対して管理アクティビティを実行できます。また、アプリケーション機能へのアクセスを保護するために使用できるカスタム・ロールを定義することもできます。
Java管理者ロールの詳細は、「JCS - SaaS Extensionのサブスクリプションの取得」を参照してください。カスタム・ロールの定義の詳細は、「JCS - SaaS Extensionアプリケーションの認可の構成」を参照してください。
拡張機能を構築する場合、Oracle SaaSサービスとJCS - SaaS Extensionの間で認可が調整されていることを確認する必要があります。たとえば、Oracle Sales Cloudの営業マネージャ用として構築された拡張機能アプリケーションは、このアプリケーションがOracle Sales CloudとJCS - SaaS Extensionのどちらから起動されるかとは関係なく、営業マネージャのみが表示できるようにする必要があります。この例について、より詳しく説明します。
この拡張機能アプリケーションがカスタム・サブタブとしてOracle Sales Cloudに埋め込まれているとします。Oracle Sales Cloudでこの機能を保護する簡単な方法は、営業マネージャのみがこのカスタム・サブタブを表示できるようにする方法です。
「Oracle Sales CloudオブジェクトでのJCS - SaaS Extensionアプリケーションのサブタブとしての埋込み」を参照してください。
注意:
また、アプリケーション・コンポーザの動的レイアウト機能を使用して、サインイン済ユーザーに割り当てられたロールに応じてサブタブの可視性を制御することもできます。このカスタム・サブタブは、営業担当が表示できないようにする必要があります。この認可はOracle Sales Cloudで構築できますが、営業担当が拡張機能アプリケーションをブラウザからスタンドアロンのJCS - SaaS Extensionアプリケーションとして直接起動して表示できないようにすることが重要です。この保護を実現するには、JCS - SaaS Extensionで作成したカスタム営業マネージャ・ロールも使用して拡張機能アプリケーションを保護する必要があります。この場合、JCS - SaaS Extensionで営業マネージャ・ロールを持つユーザーのみがアプリケーションを表示できるようになります。「JCS - SaaS Extensionアプリケーションの認可の構成」を参照してください。
このシナリオではUIのマッシュアップ相互作用での認可について説明しますが、これはWebサービスの相互作用にも当てはまります。JCS - SaaS ExtensionにデプロイされたWebサービスをOracle SaaSサービスから起動する場合、特定のロールに属するユーザーのみが、このWebサービスを起動するリンクまたはボタンをクリックできるようにする方法でRBACを実装できます。同様に、JCS - SaaS Extension内のWebサービスは、Oracle Sales Cloudの営業マネージャ・ロールなどの特定のロールに属するユーザーのみがこのWebサービスにアクセスできるようにする方法で保護できます。
この例では、Oracle Sales Cloudの営業マネージャ・ロールを持つすべてのユーザーにJCS - SaaS Extensionの営業マネージャ・ロールも必要であるため、ユーザーを同期化するとともに同期化済ロールを作成する方が容易です。
ただし、拡張機能アプリケーションは特定のロールにのみ依存する場合があるため、すべてのロールを同期化する必要はありません。前の例では、JCS - SaaS Extensionで営業マネージャと呼ばれるロールを作成することのみが必要でした。このロールを持たない他のユーザーはすべて、自動的にアクセスが防止されました。複数のロールを同期化する必要がある場合でも、Oracle SaaSサービスとJCS - SaaS Extensionのロールを常に1:1でマッピングする必要はありません。前の例を使用して、Oracle Sales Cloudで拡張機能アプリケーションへのアクセス権を持つ営業部長ロールを用意することもできます。ただし、営業部長と営業マネージャが常に同じデータを参照する場合、ロールの等価性を維持するためだけにJCS - SaaS Extensionで営業部長ロールを作成する場合、追加値は必要ありません。JCS - SaaS Extensionインスタンスにデプロイされた別のアプリケーションで営業部長権限を持つユーザーが担うロールが重要でない限り、JCS - SaaS Extensionでは単一のカスタム・ロールで十分である場合があります。
一部のシナリオでは、特定のユーザーがJCS - SaaS Extensionにのみ存在し、特定のロール・ロジックを持つことが必要であると同時に、これらのロールまたはユーザーがOracle SaaSサービスでは必要ない場合があります。
前のシナリオでは、JCS - SaaS Extensionにデプロイされたユーザー・インタフェースまたはWebサービスを起動するOracle SaaSサービスを取り扱っています。JCS - SaaS ExtensionアプリケーションからOracle SaaSサービスのWebサービスまたはユーザー・インタフェースを起動する場合にも、同様のガイドラインが適用されます。たとえば、SAMLを使用してOracle Sales Cloud Webサービスを起動する場合、Oracle Sales Cloudはすでに、サービス・コールとともに渡されたSAMLトークンによってアサートされたユーザーに対してのみ表示されるデータを返すよう設計されています。JCS - SaaS ExtensionアプリケーションからOracle Sales Cloud UIを起動する場合、Oracle Sales Cloud内のユーザーがアクセスすると想定されるUIコンポーネントのみを表示するロールをこのユーザーが持つことを確認する必要があります。たとえば、特定のイベント時に、リード情報を取得する複数の個人を会社が雇用する場合があります。これらの個人には、リードと担当者に対応するOracle Sales Cloud内のユーザー・インタフェースへのアクセスを可能にするOracle Sales Cloud内のカスタム・ロールを付与できます。「ロールに基づくOracle Sales Cloudユーザー・インタフェース・コンポーネントの可視性の制御」を参照してください。
場合によっては、Oracle SaaSアプリケーションのUIに埋め込まれたJCS - SaaS Extensionアプリケーションで同じOracle SaaSサービスのデータのみを使用する必要がある場合、ロールの同期化が必要ない可能性があります。たとえば、CPQ Cloudでは、OAuth 2.0フローを使用してREST APIの認可が保護されます。CPQ Cloudに埋め込まれたJCS - SaaS ExtensionアプリケーションをCPQ Cloudツールを使用して構成することにより、このアプリケーションがCPQ Cloud REST APIにアクセスしてログイン済ユーザーに使用可能なリソースのみをフェッチすることを可能にするOAuthアクセス・トークンをネゴシエーションできます。「OAuthサーバーとして機能するCPQ Cloudの構成」を参照してください。