クラウド・ネイティブ・アプローチを使用したSaaSアプリケーションの拡張方法の学習
企業がより多くのSaaSを採用する場合、変化するビジネス要件を満たすように延長できることがより重要になります。クラウド・ネイティブの前に、ITチームは、統合ソリューションのセットを選択するか、単純なユースケースを提供するか、またはより複雑なユースケースをサポートするためにインフラストラクチャの大きなスタックを設定していました。Oracle Java Cloud Service - SaaS Extensionを使用する顧客は、通常はOracle ADF Frameworkを使用して構築されるホストSaaS UI拡張機能を使用するか、Oracle Fusion Applications Cloud Serviceまたは別のアプリケーションでコールされる一部のコード(RESTエントリ・ポイント)をホストするサービスを使用します。Oracle Java Cloud Service - SaaS Extensionは、最新のOracle Cloudネイティブのオファリングの機能が不足しているレガシー・クラウド・サービスです。
クラウド・ネイティブは、コンテナ、サーバーなし機能などの機能を紹介しています。これらのオファリングを使用することで、開発チームは自分のユースケースを重点的に満たしながら、インフラストラクチャの複雑さをクラウド・プロバイダにオフロードできます。Oracle Cloudネイティブ・サービスは、開発チームがSaaSアプリケーションを実装およびメンテナンスしやすいように拡張するために必要な機能を提供します。
アーキテクチャ
このアーキテクチャは、クラウド・ネイティブアプローチを使用して構築されたSaaSアプリケーションの拡張の高レベルな設計を示します。Oracle Identity Cloud Serviceによって保護されたREST APIのバックエンド実装としてOracle Functionsを使用できます。
実装は、Oracle Cloud Infrastructure APIゲートウェイを利用することで実現できます。このソリューション・プレイブックはOracle Fusion Applications Cloud Serviceの拡張のユースケースとして提供されますが、ピクチャではSaaSと一緒に、または使用しなくても同じ方法を使用できます。
次のフローが示されています。
- Oracle Visual Builderは、Oracle Identity Cloud Service内でIdentity Cloudアプリケーション認証(関数リソース・クライアント)アプリケーションを介してAPIゲートウェイに接続します。「Authorization: Bearer; < Token1 >」というヘッダーを持つ認証トークンが含まれます。
- APIゲートウェイはOracle Identity Cloud Serviceに接続して、Identity Cloud /admin/v1/SigningCert/jwkコンポーネントに接続し、トークンを検証します。
- APIゲートウェイは、Oracle関数に統合されているIdentity Cloud OAuthアサーション・ライブラリに、元のトークンをステップ1のトークンと同じヘッダーで接続します。
- Oracle関数に統合されているIdentity Cloud OAuthアサーション・ライブラリは、Oracle Cloud Infrastructure Vaultに接続して、次のステップに対する格納済のセキュアな資格証明を検索します。
- 関数はOracle Identity Cloud Serviceに接続して、Identity Cloud App (機能リソース所有者) (Fusion Applicationsリソース・クライアント)アプリケーションから新しいトークンをフェッチします。このトークンは、Oracle Cloud PaaSおよびOracle Fusion Applicationsの両方に存在するユーザーに対して有効です。
- Oracle Fusion Applications Cloud Client関数内のビジネス・ロジック・コンポーネントは、ヘッダー「Authorization: Bearer; < Token2 >」とともに、新しい認証トークン(アサーションからのトークン)を使用してFusion Applications Cloudインスタンスに接続します。
APIゲートウェイは、Oracle Identity Cloud Serviceを使用して直接認証するか、オプションでカスタム認証ファンクションを実行できます(ダイアグラムには表示されません)。
始める前に
Oracle PaaSからOracle Fusion Applications Cloud Serviceへの保護されたREST APIコールを行うには、Oracle Identity Cloud Serviceを使用して統合を構成する必要があります。このような統合を構成する包括的な手順とともに、次のソリューション・プレイブックを参照してください。
Oracle Cloud InfrastructureとともにOracle Functionsを使用するには、環境を設定する必要があります。
- Oracle Functionsのクイック・スタート・ガイドを確認し、開発環境を迅速に設定します。
- 「包括的なクライアント環境」の構成については、Oracle Cloud InfrastructureドキュメントのOracle Functionsの準備に関する項を参照してください。
設計要件について
ビジネスがよりクラウドベースのソフトウェア(サービスまたはSaaSとしてのソフトウェア)を採用する場合、ビジネス要件の変更に合せて拡張する機能がより重要になりました。クラウド・ネイティブの前に、ITチームは、ベンダーに送信されている統合ソリューションのセットを選択して、単純なユースケースを提供したり、より複雑なユースケースをサポートするためにインフラストラクチャの複雑で不要なスタックを設定したりすることで、実現しました。
クラウド・ネイティブは、コンテナやサーバーなし機能などの新機能を紹介しています。これらのオファリングを使用することで、開発チームは自分のユースケースを重点的に満たし、インフラストラクチャの複雑さをクラウド・プロバイダにオフロードできます。Oracle Cloudネイティブ・サービスは、開発チームが実装およびメンテナンスをより簡単に行う方法で、SaaSアプリケーションを拡張する必要がある機能を提供します。
Oracle Functionsは、Oracleからの独立したサービス(FaaS)のオファリングで、開発者はクラウドでコードを実行する機能および使用している処理能力の支払いのみを行うことができるため、サービス24x7.を実行する必要がありません。さらに、コードの実行に必要なインフラストラクチャは、Oracle管理が完全に管理され、実行時環境を維持する必要がないという利点もあります。
新しいOracle Cloud Infrastructure API GatewayサービスをOracle Functionsとともに使用する場合、開発チームは、RESTful APIと簡単に統合できるOracle Fusion Applications Cloud Serviceなどのアプリケーションに対して、サーバーなし機能の能力をロック解除する、サーバーなしAPIを作成できます。
これをOracle Java Cloud ServiceまたはWebLogic Server Cloudインスタンスと比較する際に、ソフトウェアのメンテナンスと管理を担当するユーザー、WebLogicサーバーをホストする関連オペレーティング・システムおよびデータベースの多くの場合、この完全なOracle管理アプローチは非常に魅力的です。
すでにOracle Java Cloud Service - SaaS Extensionを使用している可能性があります。たとえば、通常はOracle ADF Frameworkを使用して作成されるSaaS UI Extensionsのホストにサービスを使用できます。その他の一般的なユースケースは、Oracle Fusion Applications Cloud Serviceまたは別のアプリケーションがコールするコード(RESTエントリ・ポイント)をホストすることです。プラットフォームを移動する場合、OracleではOracle Visual Builderへの移行が推奨されることがあります。
次の設計要件を考えてみます。これは自分の要件に類似しています。顧客には現在Oracle Java Cloud Service - SaaS Extensionにデプロイされたアプリケーションがあり、Oracle ADF Facesフレームワークを使用しています。お客様は、より最近のプラットフォームに移行する必要があり、プラットフォームはOracle管理対象である必要があります。SaaSのカスタマで管理された後、それらの管理対象として使用されます。当然ながら、実装を保護する必要があります。
したがって、これらはOracle Visual Builderを使用してUIを実装することを決定しました。この顧客は、キャッシュ、データの集計、複雑なロジックまたはプロトコル変換(RESTからSOAP)など、Oracle SaaSをコールする前になんらかの複雑なビジネス・ロジックを実行する必要がある場合があります。調査後、大部分のネットワーク・リクエストがOracle SaaSに直接移動できることがわかっていますが、一部のコールは、APIを直接コールするのではなく、中間層を経由してビジネス・ロジックを処理する必要があります。
この顧客について、Oracleは、Oracle Functionsをカスタム・ビジネス・ロジック・コードの中間層として使用するアーキテクチャを表します。
設計要件の概要を次に示します。
- カスタマイズおよびRESTベースのデータ・アクセスを使用してOracle Fusion Applications Cloud Serviceを拡張
- Oracle Managed Cloudプラットフォームの使用
- REST動詞(GET、POST、PUTなど)の実装
- より単純で、低コードのカスタマイズにはOracle Visual Builderを使用します
- インフラストラクチャ・プロビジョニングや管理を必要としない、クラウド・ネイティブ・サーバーなしでコードを実行するアプローチ
- 効率的な低オーバーヘッドのOracle Functionsでは、複雑なビジネス・ロジックを必要とするコールを処理できます。
- ターゲットのSaaSシステムへのアイデンティティ伝播を処理し、SSOでセキュアで認証され、認可されたアクセス制御を行います。
- APIエンドポイントを保護する必要があります
- RESTコールをRESTサーバーに直接発行するようにCross - Origin Resource Sharing (CORS)を実装します。
これらの要件を満たすために、アーキテクチャにはさらに4つのサービスが含まれています。
- Oracle Identity Cloud Service:グローバル・アイデンティティ・ストア。
- Oracle Functions:独自のコードを使用してSaaS apiをカスタマイズします。
- Oracle Cloud Infrastructure API Gateway: REST to Functionsマッピングを処理し、セキュリティを適用するAPIゲートウェイです。
- Oracle Cloud Infrastructure Vault:パスワードおよびクライアント・シークレットの暗号化に使用するキー管理メカニズム。
Oracle Cloud Infrastructure API Gatewayには、Oracle Identity Cloud Serviceと通信するための組込み機能があります。ただし、APIゲートウェイを使用したカスタムOracle Functionsコードの使用を示すために、カスタム認証ファンクション(AuthN)がオプションの認証メカニズムとして提供されています。
必要なサービスおよびロールについて
このソリューションには、次のサービスとロールが必要です。
- Oracle Fusion Applications Cloud Service
- Oracle Visual Builder
- Oracle Cloud Infrastructure
- Oracle Identity Cloud Service
これらは、各サービスに必要なロールです。
サービス名:ロール | 必須項目 |
---|---|
Oracle Fusion Applications Cloud Service:管理者 | Oracle Fusion Applications Cloud ServiceとOracle Identity Cloud Serviceの間のシングル・サインオンを構成してください。 |
Oracle Visual Builder: Visual Builder開発者事前定義ロールで、ServiceDeveloper アプリケーション・レイヤー事前定義ロールにマップします。
|
Webおよびモバイル・アプリケーションを作成、管理、保護および公開します。 |
Oracle Cloud Infrastructure:管理者 | 関数をデプロイして、APIゲートウェイを構成します。 |
Oracle Identity Cloud Service:セキュリティ管理者およびアプリケーション管理者 | Idプロバイダを管理し、アプリケーションを管理します。 |
必要なクラウド・サービスを取得するには、「Oracle Cloud Services for Oracle Solutions」を参照してください。