41 Oracle Sales Cloud RESTful WebサービスにアクセスするためのRESTセキュリティ・メカニズムの選択

Oracle Sales Cloudでは、すべてのRESTリソースを対象とした安全な情報交換を実現するために認証とロール・ベースの認可の両方を含むデュアル・レイヤーのセキュリティ・メカニズムが採用されています。クライアントは、SAML、JWT (JSON Webトークン)またはBasic認証を使用して、認証資格証明を送信できます。

セキュリティ・ポリシーのサポートについて

Oracle Sales Cloud Webサービスは、Oracle Web Services Manager (OWSM)を使用して保護されます。クライアント・アプリケーションからセキュアなWebサービスを起動する場合、グローバルなサーバー側のセキュリティ・ポリシーに準拠するクライアント側のセキュリティ・ポリシーの1つを使用する必要があります。

oracle/multi_token_over_ssl_rest_service_policy

このポリシーは、クライアントが認証資格証明を送信するために使用できるメカニズムのリストをサポートしています。

メカニズム クライアント側のポリシー
SSLを介したBasic認証 oracle/http_basic_auth_over_ssl_client_policy
SSL – OWSMを介したHTTPヘッダー内のSAML 2.0ベアラー・トークンは、HTTPヘッダー内のSAML 2.0ベアラー・アサーションを抽出します oracle/http_saml20_token_bearer_over_ssl_client_policy
SSL – OWSMを介したHTTPヘッダー内のJWTトークンは、HTTPヘッダー内のJWTトークンからユーザー名を抽出します oracle/http_jwt_token_over_ssl_client_policy

Oracle Sales CloudでのJWTの使用について

JWTユーザー・トークンは、UIのマッシュアップのユースケースでエンド・ユーザーのコンテキストを使用してJCS - SaaS Extension Webサービスを起動するためにOracle Sales Cloudアプリケーション・コンポーザでUIマッシュアップ、外部リンク、カスタム・オブジェクトおよびカスタム・フィールドを使用可能にする上で効果的なツールです。

JSON Webトークン(JWT)は、ユーザーID、有効時間および暗号化された認証コードなどの情報を渡すためのテクノロジです。JWTには、HTTPを使用して認証されたユーザー・アイデンティティを共有するためのOracle Sales CloudおよびJCS - SaaS Extension用のメソッドが用意されています。基本的には、ユーザーが1つのシステムで認証した後、他のシステムは、ユーザーのアイデンティティを検証するURLエンコード・コマンドを使用してJWT情報をリクエストして受信できます。

JWTのラウンドトリップ・パターン

JWTユーザー・トークンは、Oracle Sales CloudJCS - SaaS Extensionアプリケーションの間で次のパターンで交換されます。

  1. JWTトークンが、認証されたユーザーのセッションを使用してOracle Sales Cloud内で構築されます。

  2. このトークンは、URLの一部としてJCS - SaaS Extensionアプリケーションに渡されます。

  3. JCS - SaaS Extensionアプリケーションは、URLからトークンを引き出し、メモリーに格納します。

  4. このアプリケーションは、Oracle Sales CloudにWebサービスをコールバックするときに、トークン内の資格証明をHTTPヘッダーの一部として使用します。ユーザー・アイデンティティはトークンに含まれているため、このアイデンティティはOracle Sales Cloud Webサービス・コールにまで適用されます。

認証および認可

Webサービス・コールが成功した後でのみページ・コンテンツが表示されるため、JCS - SaaS Extensionの認証はこの場合、関係ありません。マッシュアップ対象のUIは常に保護解除する必要があります(つまり、認証を行わない必要があります)。誰かが有効なJWTトークンなしにJCS - SaaS Extension URLを使用してこのUIに直接アクセスすると、後続のWebサービス・コールにより、Oracle Sales Cloudデータへのアクセスが許可されないよう、このアプリケーションが自動的に保護されます。

例: JWTを使用して起動されたRESTful Webサービス

Webサービスを使用してJWTを認証メソッドとして使用するには、Webサービス・リクエスト・ペイロードとともにJWTをHTTPヘッダーに渡します。

たとえば、JWTを使用してOpportunities リソースにアクセスするには、HTTP(S)認可ヘッダーを追加する必要があります。

Authorization / Bearer + <service_payload> + JWT token

次に、Opportunitiesリソースに対するRESTコールを作成します。

https://<crm_server:PortNumber>/salesApi/resources/latest/opportunities

cURLツールを使用すると、コールは次のようになります。

curl -k -H "Authorization: Bearer <TOKEN_STRING>" https://<crm_server:PortNumber>/salesApi/resources/latest/opportunities

<<TOKEN_STRING>は、完全なJWT文字列です。

注意:

cURLツールを使用したRESTfulサービスのテストの詳細は、「Oracle Sales Cloud RESTful Webサービス・リクエストのテスト」を参照してください。

注意:

Oracle Sales CloudでのJWTの生成の詳細は、「Groovyを使用した動的URLでのJWTの実装」を参照してください。このリンクがSOAP Webサービスのコンテキストにあるとしても、JWTを取得するプロセスはRESTfulサービスの場合と同じです。