重新導向使用 Microsoft Entra 應用程式 Proxy 發行之應用程式的硬式編碼連結

Microsoft Entra 應用程式 Proxy 可讓您的內部部署應用程式可供遠端或位於自己的裝置上的使用者使用。 不過,有些應用程式是使用內嵌在 HTML 中的本機連結所開發。 當應用程式從遠端使用時,這些鏈接無法正確運作。 當您有數個內部部署應用程式彼此指向時,您的使用者預期連結會在不在辦公室時持續運作。

若要確保連結在公司網路內外的運作方式相同,最好是將應用程式的外部URL設定為與其內部URL相同。 使用自訂網域,將您的外部 URL 設定為包含公司網域名稱,而不是預設的應用程式 Proxy 網域。

如果您無法在租用戶中使用自訂網域,有數個其他選項可提供這項功能。 所有其他選項也都與自定義網域彼此相容,因此您可以設定自定義網域和其他解決方案。

注意

透過 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 的鏈接轉譯。

應用程式 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。

應用程式 Proxy 支援連結轉譯的 HTML 程式代碼標記中屬性的完整清單包括:

  • 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 發佈,且所有應用程式都彼此鏈接:權益、費用和旅遊。 有第四個應用程式,意見反應不會透過應用程式 Proxy 發佈。

當您啟用權益應用程式的鏈接轉譯時,費用和旅行的連結會重新導向至這些應用程式的外部 URL。 不過,不會重新導向意見反應的鏈接,因為沒有外部 URL。 費用和旅行回到權益的連結無法運作,因為這兩個應用程式未啟用連結翻譯。

Links from Benefits to other apps when link translation is enabled

為了改善效能和安全性,不會翻譯某些連結:

  • 程式代碼標記內的連結。
  • 不在 HTML 或 CSS 中的連結。
  • URL 編碼格式的連結。
  • 從其他程式開啟的內部連結。 不會轉譯透過電子郵件或立即訊息傳送的連結,或包含在其他檔中。 用戶必須知道才能移至外部 URL。

如果您需要支援這兩個案例的其中一個,請使用相同的內部和外部 URL,而不是鏈接轉譯。

開始使用連結翻譯就像按鍵一樣簡單:

  1. 以至少應用程式 管理員 istrator 身分登入 Microsoft Entra 系統管理中心

  2. 流覽至 [身分>識別應用程式>企業應用程式>] [所有應用程式]。

  3. 選取您要管理的應用程式。

  4. 將應用程式主體中的翻譯URL轉換成 [是]。

    Select Yes to translate URLs in application body

  5. 選取儲存套用變更。

現在,當使用者存取此應用程式時,Proxy 會掃描透過租使用者上的應用程式 Proxy 發佈的內部 URL。

下一步