附註:
- 此教學課程需要存取 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 標頭式認證。
App 閘道可作為 OCI IAM 與 Oracle Transportation Management 之間的認證代理主機。有兩種部署選項可供使用:Docker 映像檔和虛擬設備映像檔。本教學課程著重於部署和使用 Docker 版本。
導入 SSO 有助於利用 OCI IAM 的安全功能,包括 MFA、調適型安全性、登入原則等等。這有助於強制實行一層額外的存取控制,進而進一步保護您的 Oracle Transportation Management 執行處理。
目標
-
在您的 OCI 網域中建立代表 Oracle Transportation Management 的企業應用程式。
-
在您的 OCI 網域中建立 App 閘道,並將其與企業應用程式關聯。
-
下載設定 Docker 映像檔的必要檔案。
-
建立 OCI Compute 執行處理並更新網路組態以允許輸入。
-
設定 Docker 映像檔以執行 App 閘道。
-
更新 Oracle Transportation Management 伺服器組態的 SSO 組態。
-
驗證登入流程以確保 SSO 認證有效。
必備條件
-
存取 OCI 租用戶。如需詳細資訊,請參閱 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 主控台」導覽功能表,然後按一下識別與安全性。在 Identity 下,按一下 Domain 。選擇要尋找您網域的區間。
-
按一下網域的名稱,然後在整合的應用程式底下,按一下新增應用程式。
-
選取企業應用程式,然後按一下啟動工作流程。
-
輸入應用程式的名稱。應用程式 URL 是應用程式閘道伺服器的主機和連接埠。這也可以是重新導向至 App 閘道的 URL。勾選在我的 App 中顯示。如果您只想將此 App 限制為授權的使用者,請勾選必須授予此 App 的使用者。
-
按一下下一步,然後再次按一下下一步,以略過 OAuth 組態畫面。
-
按一下新增資源以新增 GTM 資源。提供名稱和資源 URL。在我們的案例中,會是
/.*
,因為我們正在保護所有資源。勾選使用正規表示式。 -
按一下新增受管理資源按鈕,然後從資源功能表的上一個步驟 6 選取資源。選取認證方法作為表單或存取權杖。在標頭下,輸入
appuid
作為名稱,輸入User Name
作為值。注意:在我們的範例中,我們選取
Default
作為唯一的資源,而Form or Access token
作為保護所有資源的認證方法。這確保只有認證的使用者才能存取。Oracle Transportation Management 也需要使用使用者名稱作為值的標頭appuid
。我們已將此視為收集詳細資料之初始任務的一部分。 -
按一下完成,然後按一下啟動選項來啟動應用程式。
-
將部分使用者 / 群組指定給資源底下的應用程式。您可以選擇本機和同盟使用者,但請確定這些使用者存在於 Oracle Transportation Management 資料庫中。
工作 2:在 OCI IAM 中註冊 App 閘道
App Gateway 位於您的應用程式前方、攔截要求、驗證使用者,然後允許存取資源。
收集伺服器詳細資訊:
繼續之前,需要下列有關應用程式閘道伺服器的詳細資訊:
-
App 閘道伺服器的主機 /IP 位址。這可以是 OCI Compute 執行處理,也可以是雲端或內部部署中執行的任何其他伺服器。
-
App Gateway 伺服器需要網際網路連線才能存取 OCI IAM 網域 URL。它也需要與上游 Oracle Transportation Management 應用程式連線。
-
執行上游應用程式之 Oracle Transportation Management 來源伺服器 (主機和連接埠) 的詳細資訊。
遵循其步驟:
-
在識別下,選取網域,然後按一下您之前使用的網域。
-
在安全底下,選取應用程式閘道,然後按一下建立應用程式閘道。輸入名稱並按一下新增 App 閘道。
-
按一下新增主機。在主機 ID 中提供名稱,然後在主機和連接埠底下新增 App 閘道伺服器詳細資訊。如果您還沒有詳細資訊,請新增預留位置值,並在完成任務 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 存取 App Gateway Server。憑證和金鑰的檔案名稱和路徑會根據容器中的實際路徑而定。
-
按一下下一步,新增您在「工作 1」中建立的企業應用程式和來源伺服器詳細資訊。
-
按一下新增應用程式,然後從應用程式功能表中選取企業應用程式。在選取主機下,從步驟 3 選擇主機。在資源首碼中,輸入
/
以代理企業應用程式。最後,在來源伺服器中輸入 Oracle Transportation Management 應用程式伺服器主機名稱 /IP。按一下關閉。注意:當您使用
/
作為資源前置碼時,超過/
的每個要求都會轉送至企業應用程式。 -
按一下啟用 App 閘道。請記下從屬端 ID 和從屬端密碼,稍後將需要此資訊。
作業 3:下載必要檔案以設定容器並產生公事包
-
在 OCI 主控台中,前往身分識別、網域、您的網域、設定值,然後按一下下載。
-
從 App Gateway Unified Docker Package for Identity Cloud Service 下載 Docker 影像。
-
接著,下載將用來產生公事包的 AppGateway 公事包工具。
-
解壓縮下載的 zip 檔案。停駐程式影像的格式為
.tar.gz
。 -
您必須將映像檔和公事包資料夾從本機機器複製到您的 App 閘道伺服器。以下範例顯示如何使用本機 bash Shell 中的 scp 命令,將公事包工具資料夾的內容傳送至伺服器中的檔案目錄。
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 映像檔設定 App Gateway Server
-
使用您的私密金鑰登入在 Task 4 中建立的運算執行處理。
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 。
-
若要讓 SSO 存取 Oracle Transportation Management,呼叫程式碼必須傳入下列參數作為 HTTP 要求的一部分 (其中使用者名稱是資料庫中使用者的 GID)。
appuid
標頭會在 HTTP 標頭中傳送,此標頭的值應該與資料庫中的使用者名稱相符。appuid=username
-
登入 Oracle Transportation Management 管理主控台,然後瀏覽至使用者管理員。建立 / 更新使用者,以確定有與 OCI 使用者相符的有效使用者名稱。
-
必須更新
glog.properties
檔案上的 SSO 組態。登入伺服器並瀏覽至/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 層,以確保變更生效。
-
確定允許從 App 閘道伺服器傳入 / 傳出至您的 Oracle Transportation Management 執行處理。使用「任務 4.8」做為參考。
任務 7:透過 SSO 登入並驗證
-
從瀏覽器存取 Servlet 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
G36640-01
Copyright ©2025, Oracle and/or its affiliates.