ノート:
- このチュートリアルでは、Oracle Cloudへのアクセス権が必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了したら、これらの値をクラウド環境に固有の値に置き換えてください。
Oracle Fusion Cloud Transportation Management 6.4.3でのシングル・サインオンの実装
はじめに
アプリケーションをOracle Cloud Infrastructure Identity and Access Management (OCI IAM)ドメインと統合して、様々な方法で認証およびシングル・サインオン(SSO)を有効にできます。多くのアプリケーションはSAMLやOAuthなどの標準プロトコルをサポートしていますが、Oracle Fusion Cloud Transportation Management (Oracle Transportation Management)はSSOのHTTPヘッダー・ベースの認証をサポートしています。
アプリケーション・ゲートウェイは、OCI IAMとOracle Transportation Managementの間の認証プロキシとして機能します。これは、Dockerイメージと仮想アプライアンス・イメージの2つのデプロイメント・オプションで使用できます。このチュートリアルでは、Dockerベースのバージョンのデプロイと使用に重点を置いています。
SSOを実装すると、MFA、適応型セキュリティ、サインオン・ポリシーなど、OCI IAMのセキュリティ機能を活用できます。これにより、追加のアクセス制御レイヤーを適用して、Oracle Transportation Managementインスタンスをさらに保護できます。
目的
-
Oracle Transportation Managementを表すエンタープライズ・アプリケーションをOCIドメインに作成します。
-
OCIドメインにアプリケーション・ゲートウェイを作成し、エンタープライズ・アプリケーションに関連付けます。
-
Dockerイメージを設定するために必要なファイルをダウンロードします。
-
OCIコンピュート・インスタンスを作成し、イングレスを許可するようにネットワーク構成を更新します。
-
Dockerイメージを設定してアプリケーション・ゲートウェイを実行します。
-
Oracle Transportation Managementサーバー構成のSSO構成を更新します。
-
ログイン・フローを検証して、SSO認証が機能することを確認します。
前提条件
-
OCIテナンシへのアクセス。For more information, see Oracle Cloud Infrastructure Free Tier.
-
OCI IAMアイデンティティ・ドメインのアイデンティティ・ドメイン管理者ロール。詳細は、管理者ロールの理解を参照してください。
-
Oracle Transportation Managementインスタンス。
-
Oracle Transportation Managementのアプリケーション・レイヤーへの管理者アクセス。
タスク1: エンタープライズ・アプリケーションの設定
続行する前に、Oracle Transportation Managementについて次の詳細が必要です:
-
リソースおよび保護レベルのリスト。たとえば、
/home
、/jobs
または/*
です。また、パブリック・アクセスまたはユーザー認証が必要な場合もあります。 -
オリジン・サーバーなど、Oracle Transportation Managementアプリケーションが実行されているポートを持つホスト/IP。
-
Oracle Transportation ManagementがOCI IAMを渡すことを想定しているHTTPヘッダー。これは、Oracle Transportation Managementデータベースのユーザーに対してリコンサイルされます。このチュートリアルでは、
appuid
を使用しています。
次の手順に従います。
-
Oracle Cloudコンソール・ナビゲーション・メニューを開き「アイデンティティとセキュリティ」をクリックします。「アイデンティティ」で、「ドメイン」をクリックします。ドメインを検索するコンパートメントを選択します。
-
ドメインの名前をクリックし、「統合アプリケーション」で「アプリケーションの追加」をクリックします。
-
「エンタープライズ・アプリケーション」を選択し、「ワークフローの起動」をクリックします。
-
アプリケーションの名前を入力します。アプリケーションURLは、アプリケーション・ゲートウェイ・サーバーのホストおよびポートです。これは、アプリケーション・ゲートウェイにリダイレクトされるURLでもかまいません。「自分のアプリケーションに表示」にチェックマークを付けます。このアプリを承認済ユーザーのみに制限する場合は、「このアプリをユーザーに付与する必要があります」にチェックを入れます。
-
OAuth構成画面をスキップするには、「次へ」、「次へ」の順に再度クリックします。
-
「リソースの追加」をクリックして、GTMリソースを追加します。名前およびリソースURLを指定します。この場合、すべてのリソースを保護するため、
/.*
になります。「正規表現の使用」にチェックを付けます。 -
「管理対象リソースの追加」ボタンをクリックし、「リソース」メニューで前のステップ6からリソースを選択します。「認証方法」に「フォームまたはアクセス・トークン」を選択します。「ヘッダー」で、「名前」に
appuid
、「値」にUser Name
と入力します。ノート:この例では、
Default
を唯一のリソースとして、Form or Access token
をすべてのリソースを保護するための認証方法として選択しています。これにより、認証されたユーザーのみがアクセスできるようになります。Oracle Transportation Managementには、ユーザー名を値とするヘッダーappuid
も必要です。これは、詳細を収集する最初のタスクの一部として識別されています。 -
「終了」をクリックしてから、「アクティブ化」オプションをクリックしてアプリケーションをアクティブ化します。
-
一部のユーザー/グループを「リソース」でアプリケーションに割り当てます。ローカル・ユーザーとフェデレーテッド・ユーザーの両方を選択できますが、これらのユーザーがOracle Transportation Managementデータベースに存在していることを確認してください。
タスク2: OCI IAMでのアプリケーション・ゲートウェイの登録
アプリケーション・ゲートウェイは、アプリケーションの前に置かれ、リクエストをインターセプトし、ユーザーを認証してから、リソースへのアクセスを許可します。
サーバー詳細の収集:
続行する前に、app-gatewayサーバーについて次の詳細が必要です。
-
アプリケーション・ゲートウェイ・サーバーのホスト/IPアドレス。これは、OCIコンピュート・インスタンス、またはクラウドまたはオンプレミスで実行されているその他のサーバーです。
-
アプリケーション・ゲートウェイ・サーバーは、OCI IAMドメインURLにアクセスするためにインターネット接続が必要です。また、アップストリームOracle Transportation Managementアプリケーションへの接続も必要です。
-
アップストリーム・アプリケーションが実行されているOracle Transportation Managementオリジン・サーバー(ホストおよびポート)の詳細。
次の手順に従います。
-
「アイデンティティ」で、「ドメイン」を選択し、以前使用したドメインをクリックします。
-
「セキュリティ」で、「アプリケーション・ゲートウェイ」を選択し、「アプリケーション・ゲートウェイの作成」をクリックします。名前を入力し、「アプリケーション・ゲートウェイの追加」をクリックします。
-
「ホストの追加」をクリックします。「ホスト識別子」に名前を指定し、「ホスト」および「ポート」にアプリケーション・ゲートウェイ・サーバーの詳細を追加します。詳細がまだない場合は、プレースホルダ値を追加し、タスク4の終了後にこのステップを再確認します。
-
「SSL有効」チェック・ボックスをクリックし、「追加プロパティ」に次を入力して、「ホストの追加」をクリックします。
ssl_certificate /usr/local/nginx/conf/cert.pem; ssl_certificate_key /usr/local/nginx/conf/key.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5;
ノート: SSLはロード・バランサで終了しません。そのため、SSLを介したアプリケーション・ゲートウェイ・サーバー・アクセスを有効にするには、「SSL」チェック・ボックスを選択する必要があります。証明書と鍵のファイル名とパスは、コンテナ内の実際のパスに基づきます。
-
「次へ」をクリックして、タスク1で作成したエンタープライズ・アプリケーションおよびオリジン・サーバーの詳細を追加します。
-
「アプリケーションの追加」をクリックし、「アプリケーション」メニューからエンタープライズ・アプリケーションを選択します。「ホストの選択」で、ステップ3からホストを選択します。「リソース接頭辞」に
/
と入力して、エンタープライズ・アプリケーションをプロキシします。最後に、「オリジン・サーバー」に、Oracle Transportation Managementアプリケーション・サーバーのホスト名/IPを入力します。「閉じる」をクリックします。ノート:
/
をリソース接頭辞として使用すると、/
を超えるすべてのリクエストがエンタープライズ・アプリケーションに転送されます。 -
「アプリケーション・ゲートウェイのアクティブ化」をクリックします。後で必要になるため、「クライアントID」および「クライアント・シークレット」をメモします。
タスク3: コンテナの設定およびウォレットの生成に必要なファイルのダウンロード
-
OCIコンソールで、「アイデンティティ」、「ドメイン」、ドメイン、「設定」に移動して、「ダウンロード」をクリックします。
-
Identity Cloud Service用のアプリケーション・ゲートウェイ統合DockerパッケージからDockerイメージをダウンロードします。
-
次に、ウォレットの生成に使用するAppGateway Walletツールをダウンロードします。
-
ダウンロードしたzipファイルを解凍しますdockerイメージは
.tar.gz
形式になります。 -
イメージ・ファイルおよびウォレット・フォルダをローカル・マシンからアプリケーション・ゲートウェイ・サーバーにコピーする必要があります。次の例は、ローカルのbashシェルからscpコマンドを使用して、ウォレット・ツール・フォルダの内容をサーバー内のfilesディレクトリに送信する方法を示しています。
scp -i /Users/mac/ssh_private.key -r /Users/mac/idcs-appgateway-wallet-tool-23.2.92-2301160723 opc@xxx.xxx.xxx.xxx:files
タスク4: OCIコンピュート・インスタンスの作成とネットワーク・セキュリティ・リストの更新
ノート:独自の環境または別のクラウド・プロバイダでローカル・サーバー/仮想マシンを設定する場合は、次のステップを構成のリファレンスとして使用できます。
-
OCIコンソールで、「コンピュート」に移動し、「インスタンス」をクリックします。右側のコンパートメントを選択します。
-
「インスタンスの作成」をクリックします。「名前」を入力し、可用性ドメインを選択してください。
-
「OSイメージ」で「Oracle Linux 8」を選択し、適切なシェイプを選択します。
E5 Flex/1 OCPU/8GB
メモリーを使用しています。 -
これを配置するVCNおよびパブリック・サブネットを選択します。
-
Secure Shell (SSH)接続を使用してインスタンスに接続するためのSSHキー・ペアを生成するか、すでにある公開キーをアップロードします。
-
「作成」をクリックし、IPv4アドレスをノートにとります。
-
サブネットを開き、それに関連付けられているセキュリティ・リストをクリックします。
-
「イングレス・ルールの追加」をクリックし、次を追加して、TCPおよびSSHを介したHTTPSのイングレスを許可します。
Source Type: CIDR Source CIDR: 0.0.0.0/0 IP Protocol: TCP Source Port Range: All Destination Port Range: 443
Source Type: CIDR Source CIDR: 0.0.0.0/0 IP Protocol: SSH Source Port Range: All Destination Port Range: 22
タスク5: Dockerイメージを使用したアプリケーション・ゲートウェイ・サーバーの構成
-
秘密キーを使用して、タスク4で作成されたコンピュート・インスタンスにSSHを実行します。
ssh -i /Users/mac/ssh_private.key opc@xxx.xxx.xxx.xxx
-
次のコマンドを実行して、Dockerおよびその他のライブラリをインストールし、サービスを起動します。次に、dockerサービスが実行されていることを確認します。
sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo dnf install libnsl* sudo systemctl enable docker sudo systemctl start docker
sudo systemctl status docker
-
次に、ログイン・ユーザー(この場合は
opc
)をsudoersリストに追加します。sudo usermod -a -G docker $USER
-
通信を有効にするためにファイアウォールポートを開きます。ここでは、ポート
443
を使用しています。sudo firewall-cmd --zone=public --permanent --add-port=443/tcp sudo systemctl stop firewalld sudo systemctl start firewalld
-
ディレクトリを作成し、コンテナの作成に必要なファイルの統合を開始します。このチュートリアルでは、
/home/opc/files
を使用しています。mkdir files cd files
-
openSSLを使用して自己署名証明書を生成します。
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server-key.pem -out server-cert.pem
ノート:本番環境では、自己署名証明書の使用はお薦めしません。かわりに、CAによって発行された証明書を使用してください。
-
ドメイン情報を含む
appgateway
環境ファイルを作成します。vi appgateway-env
CG_APP_TENANT=idcs-XXX IDCS_INSTANCE_URL=https://idcs-XXX.identity.oraclecloud.com:443 NGINX_DNS_RESOLVER=<resolver IP>
ノート:
XXX
をOCI IAMドメインの詳細に置き換えます。DNSリゾルバIPについては、ファイル/etc/resolv.conf
にあるネームサーバーの詳細を参照してください。 -
ツールを使用して、ウォレット・ファイル
cwallet.sso
を生成します。これを行うには、次のコマンドを実行します。Client ID
を、前述したアプリケーション・ゲートウェイ・クライアントIDに置き換えます。「戻る」をクリックし、プロンプトが表示されたらクライアント・シークレットを入力します。env LD_LIBRARY_PATH=./lib ./cgwallettool --create -i <Client ID>
-
すべてのファイルの準備ができたので、各ファイルの権限を更新します。これにより、所有者は読取り、書込みおよび実行が可能となり、グループおよび他のユーザーは読取りおよび実行のみが可能になります。
chmod -R 755 <filename>
-
イメージをローカル・リポジトリにロードして検証します。
sudo docker load -i appgateway-aarch64-25.1.03-2501230623.tar.gz docker images
-
ファイルに基づいてコンテナを作成し、検証します。次のコマンドの実行後、コンテナのステータスはUPになります。
sudo docker run -p 443:443 -d --name appgateway --env-file /home/opc/files/appgateway-env --env HOST_MACHINE=`hostname -f` --volume /home/opc/files/cwallet.sso:/usr/local/nginx/conf/cwallet.sso --volume /home/opc/files/server-key.pem:/usr/local/nginx/conf/key.pem --volume /home/opc/files/server-cert.pem:/usr/local/nginx/conf/cert.pem local.local/idcs-appgateway-docker_linux_arm64_v8:25.1.03-2501230623
docker ps
タスク6: Oracle Transportation ManagementでのSSO構成の更新
ノート:このチュートリアルは、Oracle Transportation Management 6.4.3に固有です。様々なパラメータの設定の詳細は、Oracle Transportation Managementのセキュリティ・ガイド(セキュリティ・ガイド)を参照してください。その他のバージョンについては、Transportation and Global Trade Management On-Premise Documentation Web Libraryを参照してください。
-
Oracle Transportation ManagementへのSSOアクセスの場合、起動するコードは、HTTPリクエストの一部として次のパラメータを渡す必要があります(ユーザー名はデータベース内のユーザーのGIDです)。
appuid
ヘッダーはHTTPヘッダーに渡され、このヘッダーの値はデータベースのユーザー名と一致する必要があります。appuid=username
-
Oracle Transportation Management管理コンソールにログインし、「ユーザー・マネージャ」に移動します。ユーザーを作成/更新して、OCIユーザーと一致する有効なユーザー名があることを確認します。
-
SSO構成は、
glog.properties
ファイルで更新する必要があります。サーバーにログインし、/app/appgtmdevl/Oracle/gtm643/glog/config
に移動します。次のパラメータを更新します。glog.security.sso=true glog.security.sso.app0idName=appuid glog.security.sso.appUidLoCation=3 glog.security.sso.logoutButton=true glog.security.sso.logoutUrl-https://idcs-XXX.identity.oraclecloud.com/sso/vl/user/logout
-
次に、OHS構成を更新する必要があります。
httpd.conf
ファイルを検索するパスの次の例を参照してください。cd /app/OTMappserver/Oracle/Middleware/Oracle_Home/user_projects/domains/otmweb/config/fmwconfig/components/OHS/OTMappserver
cd /app/OTMappserver/Oracle/Middleware/Oracle_Home/user_projects/domains/otmweb/config/fmwconfig/components/OHS/instances/OTMappserver
-
ファイルのバックアップを作成し、構成で次のパラメータを設定します。
SimulateHttps On AddCertHeader HTTPS
次に例を示します:
Listen 1234 NameVirtualHost *:1234 <VirtualHost *:1234> ServerName XXX.XXX DocumentRoot /app/XXX/Oracle/gtm643/web/htdocs DirectoryIndex index.htm <IfModule ossl_module> SSLEngine off </IfModule> <Directory "/app/XXX/Oracle/gtm643/web/htdocs"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> Header set Cache-Control maxage=21600 ExpiresActive On ExpiresDefault "access plus 6 hours" SimulateHttps On AddCertHeader HTTPS </VirtualHost>
-
アプリケーション層およびWeb層を再起動して、変更が反映されるようにします。
-
アプリケーション・ゲートウェイ・サーバーからOracle Transportation Managementインスタンスへのネットワーク・イングレス/エグレスが許可されていることを確認します。参照にはタスク4.8を使用します。
タスク7: SSOを介したログインおよび検証
-
ブラウザからサーブレットURLにアクセスします。URLの例:
https://appgatewayserver.domain:443/GC3/glog.webserver.util.FrameGC3Servlet
。 -
OCI IAMログインへのリダイレクトがあることに注意してください。ユーザーの資格証明を入力し、ログインします。
-
認証に成功すると、Oracle Transportation Managementにログインします。
関連リンク
確認
- 作成者 - Tonmendu Bose (シニア・クラウド・エンジニア)
その他の学習リソース
docs.oracle.com/learnで他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Implement Single Sign-On in Oracle Fusion Cloud Transportation Management 6.4.3
G36636-01
Copyright ©2025, Oracle and/or its affiliates.