使用 AD FS 預先驗證發佈應用程式

適用於:Windows Server 2022、Windows Server 2019、Windows Server 2016

此內容與 Web 應用程式 Proxy 的內部部署版本相關。 若要在雲端上啟用內部部署應用程式的安全存取,請參閱 Microsoft Entra Application Proxy 內容

本主題說明如何使用 Active Directory 同盟服務 (AD FS) 預先驗證透過 Web 應用程式 Proxy 發佈應用程式。

對於可使用 AD FS 預先驗證發佈的所有應用程式類型,您必須將 AD FS 信賴憑證者信任新增至同盟服務。

一般 AD FS 預先驗證流程如下:

注意

此驗證流程不適用於使用 Microsoft Store 應用程式的用戶端。

  1. 用戶端裝置會嘗試在特定資源 URL 上存取已發佈的 Web 應用程式,例如 https://app1.contoso.com/

    資源 URL 是指 Web 應用程式 Proxy 接聽傳入 HTTPS 要求的公用位址。

    如果已啟用 HTTP 至 HTTPS 重新導向,Web 應用程式 Proxy 也會接聽傳入 HTTP 要求。

  2. Web 應用程式 Proxy 會使用 URL 編碼參數將 HTTPS 要求重新導向至 AD FS 伺服器,包括資源 URL 和 appRealm (信賴憑證者識別碼)。

    使用者會使用 AD FS 伺服器所要求的驗證方法進行驗證,例如使用者名稱和密碼、具有一次性密碼的雙因素驗證等等。

  3. 在使用者通過驗證之後,AD FS 伺服器會發出包含下列資訊的安全性權杖 (即「edge 權杖」),並且將 HTTPS 要求重新導向回 Web 應用程式 Proxy 伺服器:

    • 使用者嘗試存取的資源識別碼。

    • 作為使用者主體名稱 (UPN) 的使用者身分識別。

    • 授與核准存取的到期日期;也就是說,只會授與使用者一段限定時間的存取權,過了這個時間,就會要求使用者重新驗證。

    • edge 權杖資訊的簽章

  4. Web 應用程式 Proxy 會從具有 edge 權杖的 AD FS 伺服器接收重新導向的 HTTPS 要求,然後以下列方式驗證並使用權杖:

    • 驗證 edge 權杖簽章來自於 Web 應用程式 Proxy 組態中所設定的同盟服務。

    • 驗證發行的是正確的應用程式權杖。

    • 驗證權杖尚未過期。

    • 視需要使用使用者身分識別,例如,如果後端伺服器設定要使用整合式 Windows 驗證,就要取得 Kerberos 票證。

  5. 如果 edge 權杖有效,Web 應用程式 Proxy 會使用 HTTP 或 HTTPS 將 HTTPS 要求轉送至已發佈的 Web 應用程式。

  6. 用戶端現在可以存取發行的 Web 應用程式;不過,已發行的應用程式可能會設定要求使用者執行其他驗證。 例如,如果發行的 Web 應用程式是 SharePoint 網站,而且不需要其他驗證,則使用者會在瀏覽器中看到 SharePoint 網站。

  7. Web 應用程式 Proxy 會將 Cookie 儲存在用戶端裝置上。 Web 應用程式 Proxy 會使用 Cookie 來識別這個工作階段已通過預先驗證,因此不需要進一步的預先驗證。

重要

設定外部 URL 和後端伺服器 URL 時,確定您包含完整網域名稱 (FQDN),而不是 IP 位址。

注意

本主題包含可讓您用來將部分所述的程序自動化的 Windows PowerShell Cmdlet 範例。 如需詳細資訊,請參閱使用 Cmdlet.

發行適用於網頁瀏覽器用戶端的宣告式應用程式

若要發行使用宣告進行驗證的應用程式,您必須將應用程式的信賴憑證者信任新增至 Federation Service。

發行宣告式應用程式以及從瀏覽器存取應用程式的時候,一般驗證流程如下:

  1. 用戶端會嘗試使用網頁瀏覽器來存取宣告型應用程式;例如 https://appserver.contoso.com/claimapp/

  2. 網頁瀏覽器會將 HTTPS 要求傳送至 Web 應用程式 Proxy 伺服器,以將要求重新導向至 AD FS 伺服器。

  3. AD FS 伺服器會驗證使用者和裝置,並將要求重新導向回 Web 應用程式 Proxy。 要求現在包含 edge 權杖。 AD FS 伺服器會將單一登入 (SSO) Cookie 新增到要求,因為使用者已針對 AD FS 伺服器執行驗證。

  4. Web 應用程式 Proxy 會驗證權杖、新增自己的 Cookie,然後將要求轉送至後端伺服器。

  5. 後端伺服器會將要求重新導向至 AD FS 伺服器,以取得應用程式安全性權杖。

  6. AD FS 伺服器已將要求重新導向至後端伺服器。 要求現在包含應用程式權杖和 SSO Cookie。 使用者已獲得應用程式的存取權,不需要輸入使用者名稱或密碼。

這個程序描述如何發行網頁瀏覽器用戶端存取的宣告式應用程式 (如 SharePoint 網站)。 在開始之前,請確定您已完成下列各項:

  • 在 [AD FS 管理] 主控台中,為應用程式建立信賴憑證者信任。

  • 確認 Web 應用程式 Proxy 伺服器上的憑證適用於您要發佈的應用程式。

發行宣告式應用程式

  1. 在 Web 應用程式 Proxy 伺服器上,在 [遠端存取管理] 主控台的 [瀏覽] 窗格中,按一下 [Web 應用程式 Proxy],然後在[工作] 窗格中,按一下 [發佈]。

  2. 在 [發行新應用程式精靈] 的 [歡迎] 頁面上,按 [下一步]

  3. 在 [預先驗證] 頁面上,按一下 [Active Directory 同盟服務 (AD FS)],然後按 [下一步]。

  4. 在 [支援的用戶端] 頁面上,選取 [Web 和 MSOFBA] ,然後按 [下一步]

  5. 在 [信賴憑證者] 頁面上,從信賴憑證者的清單中選取想要發行之應用程式的信賴憑證者,然後按 [下一步]

  6. 在 [發行設定] 頁面上,執行下列動作,然後按 [下一步]

    • 在 [名稱] 方塊中,輸入易記的應用程式名稱。

      這個名稱僅用於 [遠端存取管理] 主控台中已發行應用程式的清單中。

    • 在 [外部 URL] 方塊中,輸入這個應用程式的外部 URL,例如 https://sp.contoso.com/app1/

    • 在 [外部憑證] 清單中,選取主體涵蓋外部 URL 的憑證。

    • 在 [後端伺服器 URL] 方塊中,輸入後端伺服器的 URL。 請注意,該值會在您輸入外部 URL 時自動輸入,除非後端伺服器 URL 不同 (例如 https://sp/app1/.),否則不應變更此值。

      注意

      Web 應用程式 Proxy 可以轉譯 URL 中的主機名稱,但是不能轉譯路徑名稱。 因此,您可以輸入不同的主機名稱,但是必須輸入相同的路徑名稱。 例如,您可以輸入外部 URL https://apps.contoso.com/app1/ 和後端伺服器 URL https://app-server/app1/.。 不過,您無法輸入外部 URL https://apps.contoso.com/app1/ 和後端伺服器 URL https://apps.contoso.com/internal-app1/

  7. 在 [確認] 頁面上,檢查設定,然後按一下 [發行]。 您可以複製 PowerShell 命令來設定其他的已發行應用程式。

  8. 在 [結果] 頁面上,確認已成功發行應用程式,然後按一下 [關閉]

Windows PowerShell 對應的命令

下列 Windows PowerShell Cmdlet 執行與前述程序相同的功能。 在單一行中,輸入各個 Cmdlet (即使因為格式限制,它們可能會在這裡出現自動換行成數行)。

Add-WebApplicationProxyApplication
    -BackendServerURL 'https://sp.contoso.com/app1/'
    -ExternalCertificateThumbprint '1a2b3c4d5e6f1a2b3c4d5e6f1a2b3c4d5e6f1a2b'
    -ExternalURL 'https://sp.contoso.com/app1/'
    -Name 'SP'
    -ExternalPreAuthentication ADFS
    -ADFSRelyingPartyName 'SP_Relying_Party'

發行適用於網頁瀏覽器用戶端的整合式 Windows 驗證式應用程式

Web 應用程式 Proxy 可用來發佈使用整合式 Windows 驗證的應用程式;也就是說,Web 應用程式 Proxy 會視需要執行預先驗證,然後對使用整合式 Windows 驗證的已發佈應用程式執行 SSO。 若要發行使用整合式 Windows 驗證的應用程式,您必須將應用程式的非宣告感知信賴憑證者信任新增至 Federation Service。

若要允許 Web 應用程式 Proxy 執行單一登入 (SSO) 並使用 Kerberos 限制委派來執行認證委派,您必須將 Web 應用程式 Proxy 加入網域。 請參閱規劃 Active Directory

若要允許使用者存取使用整合式 Windows 驗證的應用程式,Web 應用程式 Proxy 伺服器必須能夠為使用者提供對已發佈應用程式的委派。 您可以在網域控制站上為任何應用程式執行這項操作。 如果應用程式是在 Windows Server 2012 R2 或 Windows Server 2012 上執行,您也可以在後端伺服器上執行此動作。 如需詳細資訊,請參閱 Kerberos 驗證的新功能

如需如何設定 Web 應用程式 Proxy 以發佈使用整合式 Windows 驗證之應用程式的逐步解說,請參閱設定網站以使用整合式 Windows 驗證

在對後端伺服器使用整合式 Windows 驗證時,Web 應用程式 Proxy 與已發佈應用程式之間的驗證不是宣告型,而是使用 Kerberos 限制委派對應用程式的使用者進行驗證。 一般流程如下所述:

  1. 用戶端會嘗試使用網頁瀏覽器來存取非宣告型應用程式;例如 https://appserver.contoso.com/nonclaimapp/

  2. 網頁瀏覽器會將 HTTPS 要求傳送至 Web 應用程式 Proxy 伺服器,以將要求重新導向至 AD FS 伺服器。

  3. AD FS 伺服器會驗證使用者,並將要求重新導向回 Web 應用程式 Proxy。 要求現在包含 edge 權杖。

  4. Web 應用程式 Proxy 會驗證權杖。

  5. 如果權杖有效,Web 應用程式 Proxy 會代表使用者從網域控制站取得 Kerberos 票證。

  6. Web 應用程式 Proxy 會將 Kerberos 票證作為 Simple and Protected GSS-API Negotiation Mechanism (SPNEGO) 權杖的一部分新增至要求中,並將要求轉送至後端伺服器。 要求包含 Kerberos 票證,因此,使用者取得應用程式的存取權,且不需要進一步驗證。

這個程序描述如何發行網頁瀏覽器用戶端存取的整合式 Windows 驗證應用程式 (如 Outlook Web 應用程式)。 在開始之前,請確定您已完成下列各項:

  • 在 [AD FS 管理] 主控台中,為應用程式建立非宣告型感知信賴憑證者信任。

  • 設定後端伺服器以便在網域控制站上支援 Kerberos 限制委派,或使用 Set-ADUser Cmdlet 搭配 -PrincipalsAllowedToDelegateToAccount 參數。 請注意,如果後端伺服器在 Windows Server 2012 R2 或 Windows Server 2012 上執行,您也可以在後端伺服器上執行此 PowerShell 命令。

  • 請確定 Web 應用程式 Proxy 伺服器已設定為委派給後端伺服器的服務主體名稱。

  • 確認 Web 應用程式 Proxy 伺服器上的憑證適用於您要發佈的應用程式。

發行非宣告式應用程式

  1. 在 Web 應用程式 Proxy 伺服器上,在 [遠端存取管理] 主控台的 [瀏覽] 窗格中,按一下 [Web 應用程式 Proxy],然後在[工作] 窗格中,按一下 [發佈]。

  2. 在 [發行新應用程式精靈] 的 [歡迎] 頁面上,按 [下一步]

  3. 在 [預先驗證] 頁面上,按一下 [Active Directory 同盟服務 (AD FS)],然後按 [下一步]。

  4. 在 [支援的用戶端] 頁面上,選取 [Web 和 MSOFBA] ,然後按 [下一步]

  5. 在 [信賴憑證者] 頁面上,從信賴憑證者的清單中選取想要發行之應用程式的信賴憑證者,然後按 [下一步]

  6. 在 [發行設定] 頁面上,執行下列動作,然後按 [下一步]

    • 在 [名稱] 方塊中,輸入易記的應用程式名稱。

      這個名稱僅用於 [遠端存取管理] 主控台中已發行應用程式的清單中。

    • 在 [外部 URL] 方塊中,輸入這個應用程式的外部 URL,例如 https://owa.contoso.com/

    • 在 [外部憑證] 清單中,選取主體涵蓋外部 URL 的憑證。

    • 在 [後端伺服器 URL] 方塊中,輸入後端伺服器的 URL。 請注意,該值會在您輸入外部 URL 時自動輸入,除非後端伺服器 URL 不同 (例如 https://owa/.),否則不應變更此值。

      注意

      Web 應用程式 Proxy 可以轉譯 URL 中的主機名稱,但是不能轉譯路徑名稱。 因此,您可以輸入不同的主機名稱,但是必須輸入相同的路徑名稱。 例如,您可以輸入外部 URL https://apps.contoso.com/app1/ 和後端伺服器 URL https://app-server/app1/.。 不過,您無法輸入外部 URL https://apps.contoso.com/app1/ 和後端伺服器 URL https://apps.contoso.com/internal-app1/

    • 在 [後端伺服器 SPN] 方塊中,輸入後端伺服器的服務主體名稱,例如,HTTP/owa.contoso.com。

  7. 在 [確認] 頁面上,檢查設定,然後按一下 [發行]。 您可以複製 PowerShell 命令來設定其他的已發行應用程式。

  8. 在 [結果] 頁面上,確認已成功發行應用程式,然後按一下 [關閉]

Windows PowerShell 對應的命令

下列 Windows PowerShell Cmdlet 執行與前述程序相同的功能。 在單一行中,輸入各個 Cmdlet (即使因為格式限制,它們可能會在這裡出現自動換行成數行)。

Add-WebApplicationProxyApplication
    -BackendServerAuthenticationSpn 'HTTP/owa.contoso.com'
    -BackendServerURL 'https://owa.contoso.com/'
    -ExternalCertificateThumbprint '1a2b3c4d5e6f1a2b3c4d5e6f1a2b3c4d5e6f1a2b'
    -ExternalURL 'https://owa.contoso.com/'
    -Name 'OWA'
    -ExternalPreAuthentication ADFS
    -ADFSRelyingPartyName 'Non-Claims_Relying_Party'

發佈使用 MS-OFBA 的應用程式

Web 應用程式 Proxy 支援從 Microsoft Office 用戶端 (例如 Microsoft Word) 存取後端伺服器上的文件和資料。 這些應用程式與標準瀏覽器之間唯一的不同是,重新導向至 STS 不是透過一般 HTTP 重新導向完成的,而是使用以下指定的特殊 MS-OFBA 標頭完成的:https://msdn.microsoft.com/library/dd773463(v=office.12).aspx。 後端應用程式可以是宣告或 IWA。 若要為使用 MS-OFBA 的用戶端發佈應用程式,您必須將應用程式的信賴憑證者信任新增至同盟服務。 取決於應用程式,您可以使用宣告式驗證或整合式 Windows 驗證。 所以,您必須根據應用程式來新增相關的信賴憑證者信任。

若要允許 Web 應用程式 Proxy 執行單一登入 (SSO) 並使用 Kerberos 限制委派來執行認證委派,您必須將 Web 應用程式 Proxy 加入網域。 請參閱規劃 Active Directory

如果應用程式使用宣告型驗證,則沒有任何額外的規劃步驟。 如果應用程式使用整合式 Windows 驗證,請參閱為網頁瀏覽器用戶端發佈整合式 Windows 驗證型應用程式

以下說明使用宣告型驗證的 MS-OFBA 通訊協定的用戶端的驗證流程。 這個案例的驗證可以在 URL 或內文中使用應用程式權杖。

  1. 使用者正在使用 Office 程式,他從 [最近的文件] 清單中,開啟 SharePoint 網站上的一個檔案。

  2. Office 程式會顯示一個包含瀏覽控制項的視窗,要求使用者輸入認證。

    注意

    在某些情況下視窗可能不會出現,因為用戶端已經過驗證。

  3. Web 應用程式 Proxy 會將要求重新導向至執行驗證的 AD FS 伺服器。

  4. AD FS 伺服器會將要求重新導向回 Web 應用程式 Proxy。 要求現在包含 edge 權杖。

  5. AD FS 伺服器會將單一登入 (SSO) Cookie 新增到要求,因為使用者已針對 AD FS 伺服器執行驗證。

  6. Web 應用程式 Proxy 會驗證權杖,並將要求轉送至後端伺服器。

  7. 後端伺服器會將要求重新導向至 AD FS 伺服器,以取得應用程式安全性權杖。

  8. 要求已重新導向到後端伺服器。 要求現在包含應用程式權杖和 SSO Cookie。 使用者已獲得 SharePoint 網站的存取權,不需要輸入使用者名稱或密碼就能檢視檔案。

發佈使用 MS-OFBA 的應用程式的步驟,與發佈宣告型應用程式或非宣告型應用程式的步驟完全相同。 若為宣告型應用程式,請參閱為網頁瀏覽器用戶端發佈宣告型應用程式,若為非宣告型應用程式,請參閱為網頁瀏覽器用戶端發佈整合式 Windows 驗證型應用程式。 Web 應用程式 Proxy 會自動偵測用戶端,並且視需要驗證使用者。

發佈使用 HTTP 基本的應用程式

HTTP 基本是許多通訊協定使用的授權通訊協定,用於連接豐富型用戶端 (包括智慧型手機) 與 Exchange 信箱。 如需 HTTP 基本的詳細資訊,請參閱 RFC 2617。 Web 應用程式 Proxy 傳統上會使用重新導向與 AD FS 互動;大部分豐富用戶端都不支援 Cookie 或狀態管理。 如此一來,Web 應用程式 Proxy 使 HTTP 應用程式能夠接收應用程式對同盟服務的非宣告型信賴憑證者信任。 請參閱規劃 Active Directory

以下說明使用 HTTP 基本之用戶端的驗證流程,如下圖所示:

Authentication diagram for HTTP Basic

  1. 使用者 (電話用戶端) 嘗試存取已發佈的 Web 應用程式。

  2. 應用程式會將 HTTPS 要求傳送至 Web 應用程式 Proxy 所發佈的 URL。

  3. 如果要求不包含認證,Web 應用程式 Proxy 會將 HTTP 401 回應傳回給包含驗證 AD FS 伺服器之 URL 的應用程式。

  4. 使用者再次將 HTTPS 要求傳送至應用程式,並將授權設定為 [基本],且在 www-authenticate 要求標頭中設定使用者的使用者名稱和 Base 64 加密密碼。

  5. 由於裝置無法重新導向至 AD FS,因此 Web 應用程式 Proxy 會使用包含使用者名稱和密碼的認證,將驗證要求傳送至 AD FS。 代表裝置取得權杖。

  6. 為了將傳送至 AD FS 的要求數目降到最低,只要權杖有效,Web 應用程式 Proxy 就會使用快取權杖來驗證後續用戶端要求。 Web 應用程式 Proxy 會定期清除快取。 您可以使用效能計數器來檢視快取的大小。

  7. 如果權杖有效,Web 應用程式 Proxy 會將要求轉送至後端伺服器,並授與使用者存取已發佈 Web 應用程式的權利。

下列程序說明如何發佈 HTTP 基本應用程式。

發佈 HTTP 基本應用程式

  1. 在 Web 應用程式 Proxy 伺服器上,在 [遠端存取管理] 主控台的 [瀏覽] 窗格中,按一下 [Web 應用程式 Proxy],然後在[工作] 窗格中,按一下 [發佈]。

  2. 在 [發行新應用程式精靈] 的 [歡迎] 頁面上,按 [下一步]

  3. 在 [預先驗證] 頁面上,按一下 [Active Directory 同盟服務 (AD FS)],然後按 [下一步]。

  4. 在 [支援的用戶端] 頁面上,選取 [HTTP 基本],然後按 [下一步]。

    如果您希望只允許從加入工作場所網路的裝置存取 Exchange,請選取 [僅啟用加入工作場所網路之裝置的存取權] 方塊。 如需詳細資訊,請參閱從任何裝置加入工作場所網路,以進行 SSO 和跨公司應用程式的無縫第二因素驗證

  5. 在 [信賴憑證者] 頁面上,從信賴憑證者的清單中選取想要發行之應用程式的信賴憑證者,然後按 [下一步] 。 請注意,此清單只包含宣告型信賴憑證者。

  6. 在 [發行設定] 頁面上,執行下列動作,然後按 [下一步]

    • 在 [名稱] 方塊中,輸入易記的應用程式名稱。

      這個名稱僅用於 [遠端存取管理] 主控台中已發行應用程式的清單中。

    • 在 [外部 URL] 方塊中,輸入這個應用程式的外部 URL,例如 mail.contoso.com。

    • 在 [外部憑證] 清單中,選取主體涵蓋外部 URL 的憑證。

    • 在 [後端伺服器 URL] 方塊中,輸入後端伺服器的 URL。 請注意,該值會在您輸入外部 URL 時自動輸入,除非後端伺服器 URL 不同 (例如 mail.contoso.com),否則不應變更此值。

  7. 在 [確認] 頁面上,檢查設定,然後按一下 [發行]。 您可以複製 PowerShell 命令來設定其他的已發行應用程式。

  8. 在 [結果] 頁面上,確認已成功發行應用程式,然後按一下 [關閉]

Windows PowerShell 對應的命令

下列 Windows PowerShell Cmdlet 執行與前述程序相同的功能。 在單一行中,輸入各個 Cmdlet (即使因為格式限制,它們可能會在這裡出現自動換行成數行)。

這個 Windows PowerShell 指令碼會對所有裝置進行預先驗證,而不只是加入工作場所網路的裝置。

Add-WebApplicationProxyApplication
     -BackendServerUrl 'https://mail.contoso.com'
     -ExternalCertificateThumbprint '697F4FF0B9947BB8203A96ED05A3021830638E50'
     -ExternalUrl 'https://mail.contoso.com'
     -Name 'Exchange'
     -ExternalPreAuthentication ADFSforRichClients
     -ADFSRelyingPartyName 'EAS_Relying_Party'

下列指令碼則只會對加入工作場所網路的裝置進行預先驗證:

Add-WebApplicationProxyApplication
     -BackendServerUrl 'https://mail.contoso.com'
     -ExternalCertificateThumbprint '697F4FF0B9947BB8203A96ED05A3021830638E50'
     -EnableHTTPRedirect:$true
     -ExternalUrl 'https://mail.contoso.com'
     -Name 'Exchange'
     -ExternalPreAuthentication ADFSforRichClients
     -ADFSRelyingPartyName 'EAS_Relying_Party'

發佈使用 OAuth2 的應用程式 (例如 Microsoft Store 應用程式)

若要發佈 Microsoft Store 應用程式的應用程式,您必須將應用程式的信賴憑證者信任新增至同盟服務。

若要允許 Web 應用程式 Proxy 執行單一登入 (SSO) 並使用 Kerberos 限制委派來執行認證委派,您必須將 Web 應用程式 Proxy 加入網域。 請參閱規劃 Active Directory

注意

Web 應用程式 Proxy 僅支援發佈使用 OAuth 2.0 通訊協定的 Microsoft Store 應用程式。

在 [AD FS 管理] 主控台中,您必須確保 OAuth 端點已啟用 Proxy。 若要查看 OAuth 端點是否已啟用 Proxy,請開啟 AD FS 管理主控台,展開 [服務] ,按一下 [端點] ,在 [端點] 清單中,找到 OAuth 端點,確定 [Proxy 已啟用] 欄位為 [是]

以下說明使用 Microsoft Store 應用程式之用戶端的驗證流程:

注意

Web 應用程式 Proxy 會重新導向至 AD FS 伺服器以進行驗證。 由於 Microsoft Store 應用程式不支援重新導向,因此如果您使用 Microsoft Store 應用程式,就必須使用 Set-WebApplicationProxyConfiguration Cmdlet 和 OAuthAuthenticationURL 參數來設定 AD FS 伺服器的 URL。

Microsoft Store 應用程式只能使用 Windows PowerShell 發佈。

  1. 用戶端嘗試使用 Microsoft Store 應用程式存取已發佈的 Web 應用程式。

  2. 應用程式會將 HTTPS 要求傳送至 Web 應用程式 Proxy 所發佈的 URL。

  3. Web 應用程式 Proxy 會將 HTTP 401 回應傳回給包含驗證 AD FS 伺服器之 URL 的應用程式。 這個程序稱為「探索」。

    注意

    如果應用程式知道驗證 AD FS 伺服器的 URL,並已經有一個包含 OAuth 權杖和 edge 權杖的組合權杖,就可以跳過此驗證流程中的步驟 2 和步驟 3。

  4. 應用程式會將 HTTPS 要求傳送給 AD FS 伺服器。

  5. 應用程式使用 Web 驗證代理人來產生對話方塊,使用者會在其中輸入認證以驗證 AD FS 伺服器。 如需有關 Web 驗證代理人的詳細資訊,請參閱 Web 驗證代理人

  6. 成功驗證之後,AD FS 伺服器會建立一個包含 OAuth 權杖和 edge 權杖的組合權杖,並將權杖傳送至應用程式。

  7. 應用程式會將包含組合權杖的 HTTPS 要求傳送給 Web 應用程式 Proxy 所發佈的 URL。

  8. Web 應用程式 Proxy 會將組合權杖分割為兩個部分,然後驗證 edge 權杖。

  9. 如果 edge 權杖有效,Web 應用程式 Proxy 會將只包含 OAuth 權杖的要求轉送至後端伺服器。 使用者獲得了已發行 Web 應用程式的存取權。

這個程序描述如何發行 OAuth2 的應用程式。 這種類型的應用程式只能使用 Windows PowerShell 發佈。 在開始之前,請確定您已完成下列各項:

  • 在 [AD FS 管理] 主控台中,為應用程式建立信賴憑證者信任。

  • 確保在 [AD FS 管理] 主控台中已為 OAuth 端點啟用 Proxy,並記下 URL 路徑。

  • 確認 Web 應用程式 Proxy 伺服器上的憑證適用於您要發佈的應用程式。

發佈 OAuth2 應用程式

  1. 在 Web 應用程式 Proxy 伺服器上,在 [遠端存取管理] 主控台的 [瀏覽] 窗格中,按一下 [Web 應用程式 Proxy],然後在[工作] 窗格中,按一下 [發佈]。

  2. 在 [發行新應用程式精靈] 的 [歡迎] 頁面上,按 [下一步]

  3. 在 [預先驗證] 頁面上,按一下 [Active Directory 同盟服務 (AD FS)],然後按 [下一步]。

  4. 在 [支援的用戶端] 頁面上,選取 [OAuth2],然後按 [下一步]。

  5. 在 [信賴憑證者] 頁面上,從信賴憑證者的清單中選取想要發行之應用程式的信賴憑證者,然後按 [下一步]

  6. 在 [發行設定] 頁面上,執行下列動作,然後按 [下一步]

    • 在 [名稱] 方塊中,輸入易記的應用程式名稱。

      這個名稱僅用於 [遠端存取管理] 主控台中已發行應用程式的清單中。

    • 在 [外部 URL] 方塊中,輸入這個應用程式的外部 URL,例如 https://server1.contoso.com/app1/

    • 在 [外部憑證] 清單中,選取主體涵蓋外部 URL 的憑證。

      為了確保您的使用者即使忘記在 URL 中輸入 HTTPS,也可以存取您的應用程式,請選取 [啟用 HTTP 至 HTTPS 重定導向] 方塊。

    • 在 [後端伺服器 URL] 方塊中,輸入後端伺服器的 URL。 請注意,該值會在您輸入外部 URL 時自動輸入,除非後端伺服器 URL 不同 (例如 https://sp/app1/.),否則不應變更此值。

      注意

      Web 應用程式 Proxy 可以轉譯 URL 中的主機名稱,但是不能轉譯路徑名稱。 因此,您可以輸入不同的主機名稱,但是必須輸入相同的路徑名稱。 例如,您可以輸入外部 URL https://apps.contoso.com/app1/ 和後端伺服器 URL https://app-server/app1/.。 不過,您無法輸入外部 URL https://apps.contoso.com/app1/ 和後端伺服器 URL https://apps.contoso.com/internal-app1/

  7. 在 [確認] 頁面上,檢查設定,然後按一下 [發行]。 您可以複製 PowerShell 命令來設定其他的已發行應用程式。

  8. 在 [結果] 頁面上,確認已成功發行應用程式,然後按一下 [關閉]

在單一行中,輸入各個 Cmdlet (即使因為格式限制,它們可能會在這裡出現自動換行成數行)。

若要為同盟伺服器位址 fs.contoso.com 和 URL 路徑 /adfs/oauth2/ 設定 OAuth 驗證 URL,請執行下列作業:

Set-WebApplicationProxyConfiguration -OAuthAuthenticationURL 'https://fs.contoso.com/adfs/oauth2/'

發行應用程式:

Add-WebApplicationProxyApplication
    -BackendServerURL 'https://storeapp.contoso.com/'
    -ExternalCertificateThumbprint '1a2b3c4d5e6f1a2b3c4d5e6f1a2b3c4d5e6f1a2b'
    -ExternalURL 'https://storeapp.contoso.com/'
    -Name 'Microsoft Store app Server'
    -ExternalPreAuthentication ADFS
    -ADFSRelyingPartyName 'Store_app_Relying_Party'
    -UseOAuthAuthentication