ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントに例の値を使用します。演習を完了するときは、これらの値をクラウド環境に固有の値に置き換えます。
Oracle IntegrationでのVisual Builder Cloud Serviceアプリケーションのカスタム・アプリケーションURLおよびOCI Web Application Firewallの構成
イントロダクション
デフォルトでは、PaaS Visual Builder Cloud Serviceアプリケーション(VBCS)/Oracle IntegrationインスタンスはOracleドメインを含むURLを生成します。ただし、顧客は、ブランディングの目的でパーソナライズされたドメインを使用してデプロイされたアプリケーションにアクセスしたり、基盤となるインフラストラクチャを直接暴露しないように保護したりできます。このカスタマイズを設定するために、VBCSには、VBCS/Oracle IntegrationインスタンスにデプロイされたアプリケーションのカスタムURLまたはバニティ・ドメインを構成するオプションがあります。
バニティ・ドメインを使用する利点:
- ブランディング
- ユーザー・エクスペリエンスの向上(使いやすく記憶に残る)
- マーケティングとプロモーション
- ドメイン所有権
- セキュリティおよびプライバシ
- 簡単なアプリケーションの移行(基礎となるインフラストラクチャまたはクラウド・プロバイダを将来変更する必要がある場合、バニティ・ドメインを使用すると、ユーザー向けURLに影響を与えずにアプリケーションの移行が容易になります)。
VBCS/Oracle IntegrationインスタンスのデフォルトのURLは、通常、次の形式で構造化されます。
https://<instance-display-name>-<tenancy-name>-<region-code>.integration.ocp.oraclecloud.com
目的
このチュートリアルでは、Oracle Integrationインスタンスで有効化されたVBCSインスタンスにデプロイされたアプリケーションにカスタムURLを設定するステップバイステップのプロセスを示します。
デモンストレーションのために、インスタンスに2つのアプリケーションがデプロイされているとします。
アプリケーション名 | カスタムURL |
---|---|
VBCS APP1 | myapp1.mydomain.com |
VBCS APP2 | myapp2.mydomain.com |
前提条件
- OCI Python SDKを構成します。
構成
構成を単純かつ明確にするために、構成を2つの主要なタスクに分割します。最初のタスクはOracle Integrationレイヤーで必要な構成の詳細を示し、2番目のタスクはVBCSレイヤーで必要な構成の詳細を示します。
-
Oracle Integrationインスタンスのカスタム・エンドポイントを構成します。
-
VBCSアプリケーションのカスタムURLを構成します。
タスク1: Oracle Integrationインスタンスのカスタム・エンドポイントの構成
VBCSアプリケーションのカスタムURLを構成するには、Oracle Integrationインスタンスをカスタム・エンドポイントで構成する必要があります。
Oracle Integrationインスタンスは、単一のプライマリ・カスタム・エンドポイントおよび複数の代替カスタム・エンドポイントで構成できます。プライマリ・エンドポイントはOracle Cloud Infrastructure (OCI)コンソールで構成できますが、代替カスタム・エンドポイントは現在、PythonやJavaなどのOCI SDKでのみサポートされています。VBCSの各APPにカスタムURLを構成する場合は、代替のカスタム・エンドポイントが必要です。
このチュートリアルでは、Python SDKを使用して、Oracle Integrationで代替カスタム・エンドポイントを構成します。
タスク1.1: CA署名証明書の取得
目的のカスタムURLのCA署名証明書を取得します。
myapp1.mydomain.com
myapp2.mydomain.com
タスク1.2: 証明書チェーンをシークレットとしてOCI Vaultに格納する
Oracle Integrationは、証明書チェーンの入力としてOCI Vaultシークレットを受け入れます。シークレット構文の詳細は、インスタンスのカスタム・エンドポイントの構成を参照してください。
高度なステップには、ボールトの作成、キーの作成、シークレットの作成などがあります。
ボールト・シークレットのOracle Cloud Identifier (OCID)をコピーします。
{
"key": "-----BEGIN PRIVATE KEY-----\n<key string>..-----END PRIVATE KEY-----\n",
"cert": "-----BEGIN CERTIFICATE-----\n<cert string>-----END CERTIFICATE-----\n",
"intermediates": [
"-----BEGIN CERTIFICATE-----\n<cert string>-----END CERTIFICATE-----\n",
"-----BEGIN CERTIFICATE-----\n<cert string>-----END CERTIFICATE-----\n"
],
"passphrase": "<private key password if encrypted key is provided>"
}
タスク1.3: 代替カスタム・エンドポイントの作成
次に、Python SDKを使用して代替カスタム・エンドポイントを作成します。
ノート:
- Oracle Integrationインスタンスの代替エンドポイント制限はデフォルトで0に設定されており、OCIコンソールから「サービス制限の引上げ」リクエストを記録して制限を増やします。
- Oracle Integrationインスタンスは、最大5つの代替カスタム・エンドポイントのみをサポートします。
-
Pythonスクリプトを作成します。
import oci config = oci.config.from_file(file_location="<location to the OCI config file>") # Initialize service client with default config file integration_client = oci.integration.IntegrationInstanceClient(config) # Send the request to service, some parameters are not required, see API # doc for more info update_integration_instance_response = integration_client.update_integration_instance( integration_instance_id="<OIC Instance OCID>", update_integration_instance_details=oci.integration.models.UpdateIntegrationInstanceDetails( alternate_custom_endpoints=[ oci.integration.models.UpdateCustomEndpointDetails( hostname="myapp1.mydomain.com", certificate_secret_id="<OCID of the Secret>"), oci.integration.models.UpdateCustomEndpointDetails( hostname="myapp2.mydomain.com", certificate_secret_id="<OCID of the Secret>")]), ) # Get the data from response print(update_integration_instance_response.headers)
{OICインスタンスOCID} - OICインスタンスOCIDに置き換えます。
{OCID of the Secret} - 前のステップでコピーしたVaultシークレットOCIDに置き換えます。
-
Pythonスクリプトを実行します。
python <scriptname.py>
-
OCIコンソールで
workrequest
ジョブのステータスを確認します。約15分かかります。
ノート:代替カスタム・エンドポイントは、OCI CLIを使用して構成することもできます。統合インスタンスの更新を参照してください。
タスク1.4: カスタム・エンドポイント別名の詳細の取得
作成された各カスタム・エンドポイントには、一意の別名が関連付けられます。この情報はAPIで確認でき、コンソールでは表示されません。
次のスクリプトを実行して詳細を取得します。
import oci
config = oci.config.from_file(file_location="<config file>")
integration_client = oci.integration.IntegrationInstanceClient(config)
# Send the request to service, some parameters are not required, see API
# doc for more info
get_integration_instance_response = integration_client.get_integration_instance(
integration_instance_id="<OIC Instance OCID>")
print(get_integration_instance_response.data)
{OICインスタンスOCID} - OICインスタンスOCIDに置き換えます。
次に、出力例を示します。
タスク1.5: DNSレコードの作成
VBCS/Oracle Integrationインスタンスにアクセスするには、それぞれのカスタムURLに関連付けられた代替カスタム・エンドポイント別名に解決されるCNAME DNS
レコードを作成します。
CNAMEレコード
カスタム・ホスト名 | 別名ターゲット |
---|---|
myapp1.mydomain.com | <alias1-xxxyyyy.integration.ocp.oraclecloud.com> |
myapp2.mydomain.com | <alias2-xxxyyyy.integration.ocp.oraclecloud.com> |
VBCSビルダー・ページには、構成された代替カスタム・エンドポイントURLを使用してアクセスできるようになりました。
https://myapp1.mydomain.com/ic/builder
(app1のVBCSビルダー・ページ)。
https://myapp1.mydomain.com/ic/home
(Oracle Integrationページ)。
https://myapp2.mydomain.com/ic/builder
(app2のVBCSビルダー・ページ)。
https://myapp2.mydomain.com/ic/home
(Oracle Integrationページ)。
タスク2: VBCS APPSのカスタムURLの構成
VBCS APPSのカスタムURLの構成には、「アプリケーション設定」オプションのVBCSアプリケーションのカスタムURLの更新が含まれます。
-
ビルダー・ページにログインし、APP1
https://myapp1.mydomain.com/ic/builder
のカスタム・ホストを使用してください。 -
アプリのハンバーガーメニューをクリックします。
-
「New Version」を選択します。
-
アプリケーションが開発モードになったら、「設定」をクリックします。
-
バニティURLフィールドをカスタムURLで更新します。
-
次に、アプリケーションをステージングします。
-
最後に、アプリケーションを公開します。
ノート: VBCSアプリケーションのカスタムURLは、公開されたアプリケーションに対してのみ機能し、開発モードではカスタムURLにアクセスできません。
-
前述のステップをAPP2に対して繰り返します。
次に、カスタムURLを使用してアプリケーションにアクセスします。
APP1イメージ:
https://myapp1.mydomain.com
APP2イメージ:
https://myapp2.mydomain.com
タスク3: WAFの構成
Web Application Firewallは、SQLインジェクション、クロスサイト・スクリプティング(XSS)、リモート・コード実行などの幅広いオンライン脅威からWebアプリケーションを保護します。そのため、OCI WAF(エッジまたはリージョン)を使用してVBCSアプリケーションを保護することを強くお薦めします。
詳細は、Oracle IntegrationでのOCI Web Application FirewallによるVisual Builder Cloud Serviceアプリケーションの保護を参照してください。
まとめ
バニティ・ドメインまたはカスタムURLは、お客様がVBCSインスタンスでホストされているアプリケーションを強化する貴重な機会となります。パーソナライズされたドメインを選択することで、顧客はブランド・アイデンティティを強化し、プロフェッショナルなオンライン・イメージを促進し、ユーザーにとってより記憶に残るエクスペリエンスを作成できます。バニティ・ドメイン/カスタムURLを利用することで、お客様はアプリケーションの基盤となるインフラストラクチャを保護し、実際のホスト名への直接公開から保護できます。
さらに、アプリケーションの前にWeb Application Firewall(WAF)を実装することで、セキュリティ対策をさらに一歩進めることができます。WAFはプロアクティブな防御メカニズムとして機能し、受信したWebトラフィックを分析およびフィルタリングすることで、悪意のある攻撃のリスクを軽減し、エンドユーザーにとってより安全なブラウジング体験を確保します。
要約すると、バニティ・ドメイン/カスタムURLとWAFの実装を組み合せると、VBCSインスタンスでホストされるアプリケーションのブランディングとセキュリティの両方の側面が強化され、企業がデジタル環境で成功するための包括的で堅牢なソリューションが提供されます。
関連リンク
謝辞
- 著者: Anil Guttala (Oracle Cloud Infrastructure、シニア・クラウド・エンジニア)
その他の学習リソース
docs.oracle.com/learnの他のラボをご覧いただくか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Configure Custom App URL and OCI Web Application Firewall for Visual Builder Cloud Service Apps on Oracle Integration
F87547-03
October 2023
Copyright © 2023, Oracle and/or its affiliates.