Microsoft Entra 應用程式 Proxy 讓您的內部部署應用程式可供遠端使用者使用,或讓使用者在其自己的裝置上使用。 不過,有些應用程式是以 HTML 中內嵌的本機連結進行開發。 從遠端使用應用程式時,這些連結無法正常運作。 當您有數個指向彼此的內部部署應用程式時,使用者預期當他們不在辦公室時,連結可持續運作。
若要確定連結在公司網路內部和外部的運作方式相同,最佳方法就是將您應用程式的外部 URL 設定為與其內部 URL 相同。 使用 自定義網域 來設定您的外部 URL,以擁有您的公司域名,而不是預設代理網域。
如果您無法在租用戶中使用自訂網域,有數個其他選項可提供這項功能。 所有其他選項也都與自訂網域相容且彼此相容,因此您可以設定自訂網域和其他解決方案。
注意
透過 JavaScript 產生的硬式編碼內部 URL 不支援連結轉譯。
選項 1:使用 Microsoft Edge – 只有在您打算建議或要求使用者透過 Microsoft Edge 瀏覽器存取應用程式時,此解決方案才適用。 它會處理所有已發佈的 URL。
選項 2:使用 MyApps 擴充功能 – 此解決方案需要使用者安裝用戶端瀏覽器擴充功能,但它會處理所有已發佈的 URL,並適用於最受歡迎的瀏覽器。
選項 3:使用連結轉譯設定 – 此選項是使用者看不見的系統管理員端設定。 然而,它只會處理 HTML 和 CSS 中的 URL。
不論您的使用者位於何處,這三個功能都會讓您的連結保持運作。 當您有直接指向內部端點或連接埠的應用程式時,您可以將這些內部 URL 對應至已發佈的外部應用程式 Proxy URL。
注意
最後一個選項僅適用於無法使用自訂網域 (不論何種原因) 讓其應用程式具有相同內部和外部 URL 的租用戶。 啟用這項功能之前,請參閱 Microsoft Entra 應用程式 Proxy 中的自定義網域 是否可以為您運作。
或者,如果您需要設定連結翻譯的應用程式是 SharePoint,您可以參閱設定 SharePoint 2013 的替代存取對應,以尋找另一種對應連結的方法。
選項 1:Microsoft Edge 整合
您可以使用 Microsoft Edge 來進一步保護您的應用程式和內容。 若要使用此解決方案,您必須要求/建議使用者透過 Microsoft Edge 存取應用程式。 Microsoft Edge 可辨識透過應用程式 Proxy 發佈的所有內部 URL,並將其重新導向至對應的外部 URL。 重新導向可確保硬式編碼的內部 URL 能夠運作。 如果使用者移至瀏覽器並直接鍵入內部 URL,即使使用者位於遠端,它也能正常運作。
若要深入瞭解,包括如何設定此選項,請參閱 使用適用於iOS和Android的 Microsoft Edge 搭配 Microsoft Intune 檔來管理 Web 存取 。
選項 2:MyApps 瀏覽器延伸模組
使用 MyApps 瀏覽器延伸模組,透過應用程式 Proxy 發佈的所有內部 URL 都會辨識出該延伸模組並重新導向至對應的外部 URL。 重新導向可確保所有硬式編碼的內部 URL 都能運作。 如果使用者移至瀏覽器網址列並直接鍵入內部 URL,即使使用者位於遠端,它也能正常運作。
若要使用此功能,使用者必須下載延伸模組並登入。 管理員或使用者無需進行任何其他設定。
若要深入瞭解,包括如何設定此選項,請參閱 MyApps 瀏覽器擴充功能 檔。
注意
MyApps 瀏覽器擴充功能不支援通配符 URL 的鏈接轉譯。
選項 3:連結轉譯設定
應用程式 Proxy 服務會透過 HTML 和 CSS 搜尋已發佈的內部連結,並在啟用連結轉譯時對其進行轉譯。 連結轉譯提供不間斷的體驗。 使用 MyApps 瀏覽器延伸模組優於連結轉譯設定,因為它提供了更高效能的體驗。
注意
如果您使用選項 2 或 3,則一次只能啟用其中一個設定。
連結轉譯的運作方式
驗證之後,當 Proxy 伺服器將應用程式資料傳遞給使用者時,應用程式 Proxy 會掃描應用程式中的硬式編碼連結,然後以其各自發佈的外部 URL 加以取代。
應用程式 Proxy 假設應用程式是以 UTF-8 編碼。 如果事實並非如此,請在 http 回應標頭中指定編碼類型,例如 Content-Type:text/html;charset=utf-8。
哪些連結會受影響?
連結轉譯功能只會尋找位於應用程式主體的程式碼標籤中的連結。 應用程式 Proxy 有個別功能可轉譯標頭中的 cookie 或 URL。
內部部署應用程式中有兩種常見的內部連結類型:
-
相對內部連結指的是指向本機檔案結構中共用資源的連結,例如
/claims/claims.html。 這些連結會自動在透過應用程式 Proxy 發佈的應用程式中運作,並且持續運作 (不論是否啟用連結轉譯)。 -
硬編碼的內部鏈接 至其他內部部署應用程式,例如
http://expenses或已發行的檔案,例如http://expenses/logo.jpg。 連結轉譯功能適用於硬式編碼內部連結,並可將這些連結變更為指向遠端使用者必須通過的外部 URL。
HTML 程式碼標記中應用程式 Proxy 支援連結轉譯的完整屬性清單包括:
a (href)audio (src)base (href)button (formaction)div (data-background, style, data-src)embed (src)form (action)frame (src)head (profile)html (manifest)iframe (longdesc, src)img (longdesc, src)input (formaction, src, value)link (href)menuitem (icon)meta (content)object (archive, data, codebase)script (src)source (src)track (src)video (src, poster)
此外,在 CSS 內也會轉譯 URL 屬性。
應用程式如何彼此連結?
每個應用程式都已啟用連結轉譯,以便您控制每個應用程式層級的使用者經驗。 當您想要轉譯「來自」該應用程式的連結 (而非「連到」該應用程式的連結) 時,請開啟應用程式的連結轉譯。
例如,假設您有三個透過應用程式 Proxy 發佈且彼此連結的應用程式:Benefits、Expenses 和 Travel。 還有第四個應用程式 (Feedback),它不透過應用程式 Proxy 發佈的。
當您為 Benefits 應用程式啟用連結轉譯時,指向 Expenses 和 Travel 的連結將被重新導向至這些應用程式的外部 URL。 不過,不會重新導向 Feedback 的連結,因為沒有外部 URL。 從 Expenses 和 Travel 回到 Benefits 的連結沒有作用,因為這兩個應用程式未啟用連結轉譯功能。
哪些連結並未轉譯?
為了改善效能和安全性,並未轉譯有些連結:
- 不在程式碼標籤內的連結。
- 不在 HTML 或 CSS 中的連結。
- URL 編碼格式的連結。
- 從其他程式開啟的內部連結。 不會轉譯透過電子郵件或立即訊息傳送的連結,或包含在其他文件中的連結。 使用者必須知道要移至外部 URL。
如果您必須支援下列其中一種情況,請使用相同的內部和外部 URL,而不需進行連結轉譯。
啟用連結轉譯
開始使用連結轉譯很簡單,按一下按鈕即可:
以至少應用程式管理員身分登入 Microsoft Entra 系統管理中心。
流覽至 Entra ID>企業應用程式>所有應用程式。
選取您要管理的應用程式。
將 [轉譯應用程式主體中的 URL] 切換為 [是]。
選取 [儲存] 以套用變更。
現在,當您的使用者存取此應用程式時,Proxy 會掃描透過您的租用戶上的應用程式 Proxy 發佈的內部 URL。