將 WebLogic Server 上的 Java 應用程式移轉至 Azure 時,啟用使用者授權和驗證
本指南可協助您使用 Microsoft Entra ID,在 WebLogic Server 上啟用 Java 應用程式的企業級使用者驗證和授權。
Java EE 開發人員預期 標準平臺安全性機制 如預期般運作,即使將工作負載移至 Azure 也一樣。 Oracle WebLogic Server (WLS) Azure 應用程式 可讓您將來自 Microsoft Entra Domain Services 的使用者填入內建的安全性領域。 當您在 Azure 應用程式上使用 Java EE 中的標準 <security-role>
元素時,使用者資訊會透過輕量型目錄存取通訊協定 (LDAP) 從 Microsoft Entra Domain Services 流出。
本指南分為兩個部分。 如果您已經Microsoft已公開安全 LDAP 的 Entra Domain Services,您可以跳至 [ 設定 WLS ] 區段。
在本指南中,您將瞭解如何:
- 建立及設定Microsoft Entra Domain Services 受控網域。
- 為 Microsoft Entra Domain Services 受控網域設定安全的輕量型目錄存取通訊協定 (LDAP)。
- 讓 WebLogic Server 能夠存取 LDAP 作為其預設安全性領域。
本指南無法協助您重新設定現有的Microsoft Entra ID Domain Services 部署。 不過,應該可以遵循本指南,並查看您可以略過的步驟。
必要條件
- Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請建立免費帳戶。
- 能夠部署 Microsoft Entra Domain Services。 如需詳細資訊,請參閱 建立及設定 Microsoft Entra Domain Services 受控網域。
- 能夠在 Azure 虛擬機器 上執行 Oracle WebLogic Server 的解決方案中所列的其中一個 WLS Azure 應用程式?
- 已安裝 Windows 子系統 Linux 版 、GNU/Linux 或macOS的 Windows 本機電腦。
- Azure CLI 2.54.0 版或更高版本。
請考慮移轉內容
下列清單說明移轉內部部署 WLS 安裝和Microsoft Entra 標識碼的一些考慮事項:
- 如果您已經有 Microsoft Entra ID 租使用者,但未透過 LDAP 公開網域服務,本指南會示範如何公開 LDAP 功能,並將其與 WLS 整合。
- 如果您的案例涉及 內部部署的 Active Directory 樹系,請考慮使用 Microsoft Entra ID 實作混合式身分識別解決方案。 如需詳細資訊,請參閱 混合式身分識別檔。
- 如果您已經有 內部部署的 Active Directory Domain Services (AD DS) 部署,請探索比較自我管理 Active Directory 網域服務、Microsoft Entra ID 和 Managed Microsoft Entra Domain Services 中的移轉路徑。
- 如果您要針對雲端進行優化,本指南會示範如何從頭開始,Microsoft Entra ID Domain Services LDAP 和 WLS。
- 如需將 WebLogic Server 移轉至 Azure 虛擬機器 的完整調查,請參閱將 WebLogic Server 應用程式移轉至 Azure 虛擬機器。
- 如需 Active Directory 和 Microsoft Entra ID 的詳細資訊,請參閱 比較 Active Directory 與 Microsoft Entra ID。
設定 Microsoft Entra Domain Services 受控網域
本節將逐步引導您完成所有步驟,以支援與 WLS 整合Microsoft Entra Domain Services 受控網域。 Microsoft Entra ID 不直接支援輕量型目錄存取協定 (LDAP) 或安全 LDAP。 相反地,支援會透過您Microsoft Entra ID 租使用者內的 Microsoft Entra Domain Services 受控網域實例來啟用。
注意
本指南使用 Microsoft Entra Domain Services 的「僅限雲端」用戶帳戶功能。 支援其他用戶帳戶類型,但本指南並未說明。
建立及設定Microsoft Entra Domain Services 受控網域
本文使用個別的教學課程來支援 Microsoft Entra Domain Services 受控網域。
完成建立及設定Microsoft Entra Domain Services 受控網域的教學課程,但不包括啟用網域服務的用戶帳戶一節。 本教學課程的內容中,該區段需要特殊處理,如下一節所述。 請務必完整且正確地完成 DNS 動作。
記下您在完成步驟「輸入受控網域的 DNS 功能變數名稱」時所指定的值。您稍後會在本文中使用它。
建立使用者並重設密碼
下列步驟說明如何建立使用者並變更其密碼,這需要使用者才能透過LDAP成功傳播。 如果您有現有的Microsoft Entra Domain Services 受控網域,可能不需要這些步驟。
- 在 Azure 入口網站 內,確定對應至 Microsoft Entra ID 租使用者的訂用帳戶是目前的作用中目錄。 若要瞭解如何選取正確的目錄,請參閱 將 Azure 訂用帳戶關聯或新增至您的 Microsoft Entra 租使用者。 如果選取了不正確的目錄,您就無法建立使用者,或是在錯誤的目錄中建立使用者。
- 在 Azure 入口網站 頂端的搜尋方塊中,輸入 [使用者]。
- 選取 [新增使用者]。
- 確定已選取 [ 建立使用者 ]。
- 填入 [用戶名稱]、[名稱]、[名字] 和 [姓氏] 的值。 將其餘欄位保留為預設值。
- 選取 建立。
- 選取數據表中新建立的使用者。
- 選取 [重設密碼]。
- 在出現的面板中,選取 [ 重設密碼]。
- 記下暫時密碼。
- 在 「incognito」 或私人瀏覽器視窗中,流覽 Azure 入口網站 並使用使用者的認證和密碼登入。
- 在系統提示時變更密碼。 記下新密碼。 您稍後會使用它。
- 註銷並關閉 [incognito] 視窗。
針對您想要啟用的每個使用者,重複 [選取 新使用者] 到 [註銷關閉] 中的步驟。
設定 Microsoft Entra Domain Services 受控網域的安全 LDAP
本節將逐步引導您完成個別的教學課程,以擷取值以用於設定 WLS。
首先,在個別瀏覽器視窗中開啟 為 Microsoft Entra Domain Services 受控網域 設定安全 LDAP 教學課程,以便您在執行本教學課程時查看下列變化。
當您連線到匯出用戶端計算機的憑證一節時,請記下您儲存結尾為 .cer的憑證檔案的位置。 您可以使用憑證作為 WLS 組態的輸入。
當您連線到 [鎖定透過因特網進行安全 LDAP 存取] 區段時,請指定 [任何] 作為來源。 您稍後會使用本指南中的特定IP位址來收緊安全性規則。
在對受控網域測試查詢中的步驟之前,請使用下列步驟來讓測試成功:
在 Azure 入口網站 中,流覽 Microsoft Entra Domain Services 實例的概觀頁面。
在 [ 設定] 區域中,選取 [ 屬性]。
在頁面右側窗格中,向下捲動直到您看到 [系統管理] 群組為止。 在此標題下,應該是 AAD DC 系統管理員的連結。 選取該連結。
在 [管理] 區段中,選取 [成員]。
選取 [新增成員]。
在 [ 搜尋 文字] 字段中,輸入一些字元來找出您在上一個步驟中建立的其中一個使用者。
選取使用者,然後啟動 [ 選取] 按鈕。
此使用者是您在執行測試查詢至受控網域一節中的步驟時必須使用的使用者。
注意
下列清單提供查詢LDAP資料的一些秘訣,您需要這麼做才能收集WLS設定所需的一些值:
- 本教學課程會建議您使用 Windows 程式 LDP.exe。 此程式僅適用於 Windows。 針對非 Windows 使用者,也可以使用 Apache Directory Studio 進行相同的用途。
- 使用 LDP.exe 登入 LDAP 時,用戶名稱就在 @之前的部分。 例如,如果使用者是
alice@contoso.onmicrosoft.com
,則LDP.exe系結動作的使用者名稱為alice
。 此外,請保留 LDP.exe 執行並登入,以供後續步驟使用。
在設定外部存取的 DNS 區域一節中,記下安全 LDAP 外部 IP 位址的值。 您稍後會使用它。
如果安全 LDAP 外部 IP 位址的值並不明顯,請使用下列步驟來取得 IP 位址:
在 Azure 入口網站 中,尋找包含 Microsoft Entra Domain Services 資源的資源群組。
在資源清單中,選取 Microsoft Entra Domain Services 資源的公用 IP 位址 資源,如下列螢幕快照所示。 公用IP位址可能以
aadds
開頭。
在本指南中指示要執行清除資源的步驟之前,請勿執行這些步驟。
考慮到這些變化,請完成為 Microsoft Entra Domain Services 受控網域設定安全 LDAP。 您現在可以收集提供給 WLS 組態所需的值。
注意
等候安全 LDAP 組態完成處理,再繼續進行下一節。
停用弱式 TLS v1
根據預設,Microsoft Entra Domain Services 會啟用 TLS v1 的使用,這被視為弱式,且在 WebLogic Server 14 和更新版本中不受支援。
本節說明如何停用 TLS v1 加密。
首先,取得啟用 LDAP 之 Microsoft Entra Domain Service 受控網域的資源標識符。 下列命令會取得名為 的資源群組中名為 aaddscontoso.com
aadds-rg
的 Azure Domain Service 實例識別碼:
AADDS_ID=$(az resource show \
--resource-group aadds-rg \
--resource-type "Microsoft.AAD/DomainServices" \
--name aaddscontoso.com \
--query "id" \
--output tsv)
若要停用 TLS v1,請使用下列命令:
az resource update \
--ids $AADDS_ID \
--set properties.domainSecuritySettings.tlsV1=Disabled
的輸出會顯示 "tlsV1": "Disabled"
為 domainSecuritySettings
,如下列範例所示:
"domainSecuritySettings": {
"ntlmV1": "Enabled",
"syncKerberosPasswords": "Enabled",
"syncNtlmPasswords": "Enabled",
"syncOnPremPasswords": "Enabled",
"tlsV1": "Disabled"
}
如需詳細資訊,請參閱 強化 Microsoft Entra Domain Services 受控網域。
注意
如果您將鎖定新增至資源或資源群組,在嘗試更新受控網域時遇到錯誤訊息,例如: Message: The scope '/subscriptions/xxxxx/resourceGroups/aadds-rg/providers/Microsoft.AAD/domainServices/aaddscontoso.com' cannot perform write operation because the following scope(s) are locked: '/subscriptions/xxxxx/resourceGroups/aadds-rg'. Please remove the lock and try again.
記下 Microsoft Entra Domain Service 受控網域的下列資訊。 您會在稍後的章節中使用這項資訊。
屬性 | 說明 |
---|---|
伺服器主機 | 此值是您完成 建立及設定Microsoft Entra ID Domain Services 受控網域時所儲存的公用 DNS 名稱。 |
安全 LDAP 外部 IP 位址 | 此值是您在設定外部存取 DNS 區域一節中所儲存的安全 LDAP 外部 IP 位址值。 |
主體 | 若要取得此值,請返回 LDP.exe ,並使用下列步驟來取得主體的值,以便只在雲端上使用:
|
使用者基底 DN 和群組基底 DN | 針對本教學課程的目的,這兩個屬性的值都相同:的 OU=AADDC Users 主體。 |
主體的密碼 | 此值是新增至 AAD DC Administrators 群組之用戶的密碼。 |
Microsoft Entra Domain Service LDAPS 連線的公鑰 | 此值是您完成匯出用戶端計算機憑證一節時,系統要求您儲存的.cer檔案。 |
設定 WLS
本節可協助您從稍早部署的 Microsoft Entra Domain Service 受控網域收集參數值。
當您部署 Azure 虛擬機器 上執行 Oracle WebLogic Server 的解決方案中所列的任何 Azure 應用程式 時,您可以遵循步驟,將 Microsoft Entra Domain Service 受控網域與 WLS 整合。
Azure 應用程式部署完成之後,請使用下列步驟來尋找 URL 以存取 WebLogic 管理控制台:
- 開啟 Azure 入口網站,然後移至您布建的資源群組。
- 在瀏覽窗格的 [設定] 區段中,選取 [部署]。 您會看到此資源群組的已排序部署清單,而且會先列出最新的部署。
- 捲動至此清單中的最舊項目。 這個項目對應至您在上一節中啟動的部署。 選取最舊的部署,其名稱開頭類似
oracle.
。 - 選取 [輸出]。 這個選項會顯示部署的輸出清單。
- adminConsole 值是 WLS 管理控制台的完整公用因特網可見連結。 選取域值旁的複製圖示,將連結複製到剪貼簿,並將其儲存在檔案中。
注意
本教學課程示範如何使用 TLS v1.2 連線到 Microsoft Entra Domain Service 受控網域 LDAP 伺服器。 若要確保相容性,您必須針對 JDK 8 上的部署啟用 TLS v1.2。
若要驗證您的 JDK 版本,請使用下列步驟:
如果您的 Java 版本是 8,請使用下列步驟啟用 TLS v1.2:
整合 Microsoft Entra Domain Service 受控網域與 WLS
執行 WebLogic 系統管理伺服器,並使用 LDAP 部署及保護的 Microsoft Entra Domain Service 受控網域,現在可以啟動設定。
上傳和匯入公用CA
WLS 會使用安全 LDAP(LDAPS)與受控網域通訊,這是透過安全套接字層 (SSL) 或傳輸層安全性 (TLS) 的 LDAP。 若要建立此連線,您必須將公用證書頒發機構單位 (CA) 憑證 (.cer 檔案) 上傳並匯入 WLS 信任金鑰存放區。
使用下列步驟,將憑證上傳並匯入執行管理伺服器的虛擬機:
遵循快速入門:在 Azure 虛擬機器 上部署 WebLogic Server 一節中的指示,啟用存取
adminVM
。開啟Bash終端機,然後使用下列命令上傳憑證。 將
ADMIN_PUBLIC_IP
值取代為實際值,您可以在 Azure 入口網站 中找到此值。 您必須輸入用來連接電腦的密碼。export CER_FILE_NAME=azure-ad-ds-client.cer export ADMIN_PUBLIC_IP="<admin-public-ip>" export ADMIN_VM_USER="weblogic" cd <path-to-cert> scp ${CER_FILE_NAME} "$ADMIN_VM_USER@$ADMIN_PUBLIC_IP":/home/${ADMIN_VM_USER}/${CER_FILE_NAME}
上傳憑證之後,您必須將憑證移至 WLS 網域資料夾 /u01/domains ,並使用下列命令變更
oracle:oracle
其擁有權:export RESOURCE_GROUP_NAME=contoso-rg export ADMIN_VM_NAME=adminVM export CA_PATH=/u01/domains/${CER_FILE_NAME} az vm run-command invoke \ --resource-group $RESOURCE_GROUP_NAME \ --name ${ADMIN_VM_NAME} \ --command-id RunShellScript \ --scripts "mv /home/${ADMIN_VM_USER}/${CER_FILE_NAME} /u01/domains; chown oracle:oracle ${CA_PATH}"
將憑證匯入金鑰存放區。 Azure 應用程式會在 中
<jvm-path-to-security>/cacerts
布建具有預設信任存放區的 WLS。 特定路徑可能會因 JDK 版本而異。 您可以使用下列步驟匯入 Microsoft Entra Domain Service 受控網域公用 CA:查詢您用來設定網域環境變數的腳本。
export DOMIAN_FILE_PATH=$(az vm run-command invoke \ --resource-group $RESOURCE_GROUP_NAME \ --name ${ADMIN_VM_NAME} \ --command-id RunShellScript \ --scripts "find /u01/domains -name setDomainEnv.sh" \ --query value[*].message \ --output tsv \ | sed -n '/\[stdout\]/!b; n; p') echo $DOMIAN_FILE_PATH
使用下列命令匯入 CA。 請注意您在上一節中籤入的 Java 版本。
az vm run-command invoke \ --resource-group $RESOURCE_GROUP_NAME \ --name ${ADMIN_VM_NAME} \ --command-id RunShellScript \ --scripts ". ${DOMIAN_FILE_PATH};export JVM_CER_PATH=\${JAVA_HOME}/lib/security/cacerts;\${JAVA_HOME}/bin/keytool -noprompt -import -alias aadtrust -file ${CA_PATH} -keystore \${JVM_CER_PATH} -storepass changeit"
您應該會看到類似下列範例的結果:
{ "value": [ { "code": "ProvisioningState/succeeded", "displayStatus": "Provisioning succeeded", "level": "Info", "message": "Enable succeeded: \n[stdout]\n\n[stderr]\nCertificate was added to keystore\n", "time": null } ] }
注意
如果您自定義信任存放區,則必須將 Entra Domain Service 受控網域公用 CA 匯入信任密鑰存放區。 不需要將憑證匯入 WLS 受控伺服器。 如需詳細資訊,請參閱 設定 WebLogic 以使用 LDAP。
設定 WLS 主機名驗證
由於 為Microsoft Entra Domain Services 受控網域 設定安全 LDAP 會使用憑證中主機名的通配符 *.aaddscontoso.com
,因此您必須使用適當的主機名驗證來設定 WLS 管理伺服器。 使用下列步驟來停用驗證。 針對WLS 14和更新版本,您可以改為選取 [通配符主機名驗證 ]。
- 將 adminConsole 的值貼到您的瀏覽器,並登入 WLS 管理控制台。
- 在 [ 變更中心] 中,選取 [ 鎖定和編輯]。
- 選取 [環境>伺服器>管理員>SSL>進階]。
- 在 [ 主機名驗證] 旁,選取 [ 無]。
- 選取 [ 儲存 並 啟動變更 ] 以儲存組態。
解決安全 LDAP 存取的流量
透過因特網啟用安全 LDAP 存取後,您可以更新 DNS 區域,讓用戶端電腦可以找到此受控網域。 [安全 LDAP 外部 IP 位址] 值會列在受控網域的 [屬性] 索引卷標上。 如需詳細資訊,請參閱 設定外部存取的 DNS 區域。
如果您沒有已註冊的 DNS 區域,您可以在主機檔案中adminVM
新增專案,以將 (這裡) 的ldaps.aaddscontoso.com
流量ldaps.<managed-domain-dns-name>
解析至外部 IP 位址。 在執行下列命令之前,請先使用 您的 變更值:
export LDAPS_DNS=ldaps.aaddscontoso.com
export LDAPS_EXTERNAL_IP=<entra-domain-services-manged-domain-external-ip>
az vm run-command invoke \
--resource-group $RESOURCE_GROUP_NAME \
--name ${ADMIN_VM_NAME} \
--command-id RunShellScript \
--scripts "echo \"${LDAPS_EXTERNAL_IP} ${LDAPS_DNS}\" >> /etc/hosts"
執行下列命令以重新啟動系統管理伺服器以載入組態:
az vm run-command invoke \
--resource-group $RESOURCE_GROUP_NAME \
--name ${ADMIN_VM_NAME} \
--command-id RunShellScript \
--scripts "systemctl stop wls_admin"
az vm run-command invoke \
--resource-group $RESOURCE_GROUP_NAME \
--name ${ADMIN_VM_NAME} \
--command-id RunShellScript \
--scripts "systemctl start wls_admin"
建立及設定LDAP驗證提供者
透過已解析憑證匯入且安全的LDAP存取流量,您可以使用下列步驟,從WLS控制台設定LDAP提供者:
將 adminConsole 值貼到瀏覽器網址列中,然後在 WLS 管理主控台登入。
在 [變更中心] 底下,選取 [鎖定和編輯]。
在 [定義域結構] 底下,選取 [安全性領域>][新>提供者>],並使用下列值來建立新的驗證提供者。
- 針對 [ 名稱],填入
AzureEntraIDLDAPProvider
。 - 針對 [ 類型],選取
ActiveDirectoryAuthenticator
。
- 針對 [ 名稱],填入
選取確定來儲存變更。
在提供者清單中,選取 [AzureEntraIDLDAPProvider]。
針對 [設定>通用>控制旗標],選取 [足夠]。
按一下 [儲存],即可儲存變更。
針對 [設定>提供者特定],輸入您先前取得Microsoft Entra Domain Services 受控網域連線資訊。 取得值的步驟列在設定 Microsoft Entra Domain Services 受控網域的安全 LDAP 數據表中。
填入下列必要欄位,保留其他欄位的預設值:
項目 值 範例值 主機 受控網域LDAP伺服器 DNS、 ldaps.<managed-domain-dns-name>
ldaps.aaddscontoso.com
通訊埠 636
636
主體 僅限雲端用戶的主體 CN=WLSTest,OU=AADDC Users,DC=aaddscontoso,DC=com
認證 僅限雲端用戶的認證 - SSLEnabled Selected - 使用者基底 DN 您的使用者基底辨別名稱 (DN) OU=AADDC Users,DC=aaddscontoso,DC=com
用戶從名稱篩選 (&(sAMAccountName=%u)(objectclass=user))
(&(sAMAccountName=%u)(objectclass=user))
用戶名稱屬性 sAMAccountName
sAMAccountName
User 物件類別 user
user
群組基底 DN 您的群組基底 DN。 OU=AADDC Users,DC=aaddscontoso,DC=com
群組成員資格搜尋 limit
limit
最大群組成員資格搜尋層級 1
1
使用令牌群組進行群組成員資格查閱 Selected - 線上集區大小 5
5
連接逾時 120
120
線上重試限制 5
5
結果時間限制 300
300
保持啟用 Selected - 已啟用快取 Selected - 快取大小 4000
4000
快取 TTL 300
300
選取 [ 儲存 ] 以儲存提供者。
選取 [組態] 旁的 [效能]。
選取 [ 啟用群組成員資格查閱階層快取]。
選取 [ 啟用 SID 以群組查閱快取]。
選取儲存 以儲存設定。
選取 [ 啟用變更 ] 以叫用變更。
注意
請注意LDAP伺服器的主機名。 其格式應該是 ldaps.<managed-domain-dns-name>
。 在這裡範例中,值為 ldaps.aaddscontoso.com
。
如果您遇到類似 [Security:090834]No LDAP connection could be established. ldap://dscontoso.com:636 Cannot contact LDAP server
的錯誤,請嘗試重新啟動 adminVM
以解決問題。
您必須重新啟動 WLS 管理伺服器,變更才會生效。 執行下列命令以重新啟動系統管理伺服器:
az vm run-command invoke \
--resource-group $RESOURCE_GROUP_NAME \
--name ${ADMIN_VM_NAME} \
--command-id RunShellScript \
--scripts "systemctl stop wls_admin"
az vm run-command invoke \
--resource-group $RESOURCE_GROUP_NAME \
--name ${ADMIN_VM_NAME} \
--command-id RunShellScript \
--scripts "systemctl start wls_admin"
注意
如果您要向叢集中的應用程式驗證具有來自 Microsoft Entra 識別碼的使用者,您必須重新啟動受管理伺服器以啟用提供者。 您可以重新啟動裝載伺服器的虛擬機來執行此動作。
驗證
重新啟動管理伺服器之後,請使用下列步驟來確認整合是否成功:
- 請流覽 WLS 管理主控台。
- 在瀏覽窗格中,展開樹狀結構,然後選取 [安全性領域>][密封>提供者]。
- 如果整合成功,您可以找到 Microsoft Entra 識別碼提供者 ,例如
AzureEntraIDLDAPProvider
。 - 在瀏覽窗格中,展開樹狀結構,然後選取 [安全性領域>] [使用者>和群組]。
- 如果整合成功,您可以從 Microsoft Entra ID 提供者找到使用者。
注意
第一次存取使用者和群組時,需要幾分鐘的時間才能載入使用者。 WLS 會快取使用者,並在下一次存取時更快。
透過因特網鎖定和保護LDAP存取
在上述步驟中站立安全 LDAP 時,請將來源設定為網路安全組中規則的 AnyAllowLDAPS
。 現在,WLS 管理伺服器已部署並連線至LDAP,請使用 Azure 入口網站 取得其公用IP位址。 重新瀏覽鎖定透過因特網的安全LDAP存取,並將Any變更為WLS系統管理伺服器的特定IP位址。
清除資源
現在是時候遵循設定 Microsoft Entra Domain Services 受控網域之安全 LDAP 的清除資源一節中的步驟。
下一步
探索將 WebLogic Server 應用程式移轉至 Azure 的其他層面。