針對使用 Microsoft Entra 應用程式 Proxy 發佈的應用程式重新導向硬式編碼的連結
Microsoft Entra 應用程式 Proxy 讓您的內部部署應用程式可供遠端使用者使用,或讓使用者在其自己的裝置上使用。 不過,有些應用程式是以 HTML 中內嵌的本機連結進行開發。 從遠端使用應用程式時,這些連結無法正常運作。 當您有數個指向彼此的內部部署應用程式時,使用者預期當他們不在辦公室時,連結可持續運作。
若要確定連結在公司網路內部和外部的運作方式相同,最佳方法就是將您應用程式的外部 URL 設定為與其內部 URL 相同。 使用自訂網域,將您的外部 URL 設定為包含公司網域名稱,而不是預設的應用程式 Proxy 網域。
如果您無法在租用戶中使用自訂網域,有數個其他選項可提供這項功能。 所有其他選項也都與自訂網域相容且彼此相容,因此您可以設定自訂網域和其他解決方案。
注意
透過 JavaScript 產生的硬式編碼內部 URL 不支援連結轉譯。
選項 1:使用 Managed 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 系統管理中心。
瀏覽至 [身分識別]>[應用程式]>[企業應用程式]>[所有應用程式]。
選取您要管理的應用程式。
將 [轉譯應用程式主體中的 URL] 切換為 [是]。
選取儲存套用變更。
現在,當您的使用者存取此應用程式時,Proxy 會掃描透過您的租用戶上的應用程式 Proxy 發佈的內部 URL。