使用 OAuth 連線到 Power BI 報表伺服器 和 SSRS

您可以使用 OAuth 連線到 Power BI 報表伺服器 和 Reporting Services 來顯示行動報表或 KPI。 瞭解如何設定您的環境,以支援使用Power BI行動應用程式進行OAuth驗證,以聯機到 Power BI 報表伺服器和 SQL Server Reporting Services 2016 或更新版本。

注意

iOS 和 Android 應用程式現在支援使用 WAP 來驗證 Power BI 報表伺服器 中裝載的 Power BI 報表。

需求

Web 應用程式 Proxy (WAP) 和 Active Directory 同盟服務 (ADFS) 伺服器需要 Windows Server 2016。 您不需要擁有 Windows 2016 功能等級網域。

為了讓用戶能夠將報表伺服器連線新增至其 Power BI 行動應用程式,您必須將報表伺服器主資料夾的存取權授與他們。

功能變數名稱服務 (DNS) 組態

公用 URL 會是 Power BI 行動應用程式將連線到的 URL。 例如,它看起來可能如下所示。

https://reports.contoso.com

您的 DNS 記錄,用於向 Web 應用程式 Proxy (WAP) 伺服器的公用 IP 位址報告。 您也需要為 ADFS 伺服器設定公用 DNS 記錄。 例如,您可能已使用下列 URL 設定 ADFS 伺服器。

https://fs.contoso.com

fs 的 DNS 記錄會發佈至 WEB 應用程式 Proxy (WAP) 伺服器的公用 IP 位址,因為它將會發佈為 WAP 應用程式的一部分。

憑證

您必須為 WAP 應用程式和 ADFS 伺服器設定憑證。 這兩個憑證都必須是行動裝置可辨識的有效證書頒發機構單位的一部分。

Reporting Services 組態

Reporting Services 端沒有太多設定。 您只需要確定:

服務主體名稱(SPN)

SPN 是使用 Kerberos 驗證之服務的唯一標識碼。 您必須確定報表伺服器有適當的 HTTP SPN 存在。

如需如何為您的報表伺服器設定適當服務主體名稱 (SPN) 的資訊,請參閱 為報表伺服器註冊服務主體名稱 (SPN)。

啟用交涉驗證

若要讓報表伺服器使用 Kerberos 驗證,您必須將報表伺服器的驗證類型設定為 RSWindowsNegotiate。 您會在 rsreportserver.config 檔案中執行此動作。

<AuthenticationTypes>  
    <RSWindowsNegotiate />  
    <RSWindowsKerberos />  
    <RSWindowsNTLM />  
</AuthenticationTypes>

如需詳細資訊,請參閱 修改 Reporting Services 組態檔在報表伺服器上設定 Windows 驗證。

Active Directory 同盟服務 (ADFS) 組態

您必須在環境中的 Windows 2016 伺服器上設定 ADFS。 您可以透過 伺服器管理員 完成設定,然後選取 [管理] 底下的 [新增角色和功能]。 如需詳細資訊,請參閱 Active Directory 同盟服務

建立應用程式群組

在AD FS管理畫面中,您要建立 Reporting Services 的應用程式群組,其中包含 Power BI 行動版 應用程式的資訊。

您可以使用下列步驟建立應用程式群組。

  1. 在 AD FS 管理應用程式中,以滑鼠右鍵按兩下 [應用程式群組 ],然後選取 [ 新增應用程式群組...

    ADFS Add Application

  2. 在 [新增應用程式群組精靈] 中,提供 應用程式群組的名稱 ,然後選取 [原生應用程式存取 Web API]。

    ADFS Application Group Wizard 01

  3. 選取 [下一步]。

  4. 提供 您要新增應用程式的名稱

  5. 雖然系統會自動為您的產生用戶端標識碼,但在 iOS 和 Android 的 484d54fc-b481-4eee-9505-0258a1913020 中輸入 。

  6. 您要新增下列 重新導向 URL

    Power BI 行動版 – iOS 的專案:
    msauth://code/mspbi-adal://com.microsoft.powerbimobile
    msauth://code/mspbi-adalms://com.microsoft.powerbimobilems
    mspbi-adal://com.microsoft.powerbimobile
    mspbi-adalms://com.microsoft.powerbimobilems

    Android 應用程式只需要下列步驟:
    urn:ietf:wg:oauth:2.0:oob

    ADFS Application Group Wizard 02

  7. 選取 [下一步]。

  8. 提供報表伺服器的 URL。 URL 是會叫用 Web 應用程式 Proxy 的外部 URL。 其格式應如下。

    注意

    此 URL 區分大小寫!

    https://<report server url>/reports

    ADFS Application Group Wizard 03

  9. 選取 [下一步]。

  10. 選擇符合您組織需求的 存取控制 原則

    ADFS Application Group Wizard 04

  11. 選取 [下一步]。

  12. 選取 [下一步]。

  13. 選取 [下一步]。

  14. 選取關閉

完成時,您應該會看到應用程式群組的屬性如下所示。

ADFS Application Group Wizard

Web 應用程式 Proxy (WAP) 組態

您想要在環境中的伺服器上啟用 Web 應用程式 Proxy (角色) Windows 角色。 它必須位於 Windows 2016 伺服器上。 如需詳細資訊,請參閱 Windows Server 2016 中的 Web 應用程式 Proxy 和使用 AD FS 預先驗證發佈應用程式。

限制委派組態

若要從 OAuth 驗證轉換至 Windows 驗證,我們需要使用限制委派搭配通訊協議轉換。 這是 Kerberos 設定的一部分。 我們已在 Reporting Services 組態中定義 Reporting Services SPN。

我們需要在 Active Directory 內的 WAP 伺服器電腦帳戶上設定限制委派。 如果您沒有 Active Directory 的許可權,您可能需要與網域系統管理員合作。

若要設定限制委派,您需要執行下列步驟。

  1. 在已安裝 Active Directory 工具的電腦上,啟動 Active Directory 使用者和電腦

  2. 尋找 WAP 伺服器的機器帳戶。 根據預設,它會位於計算機容器中。

  3. 以滑鼠右鍵按兩下 WAP 伺服器,然後移至 [ 屬性]。

  4. 選取 [委派] 索引標籤。

  5. 選取 [ 信任這部計算機只 委派至指定的服務],然後使用 任何驗證通訊協定

    WAP Constrained

    這會設定此 WAP 伺服器電腦帳戶的限制委派。 然後,我們需要指定允許此計算機委派的服務。

  6. 選取 [服務] 方塊底下的 [新增... ]。

    WAP Constrained 02

  7. 選取 [使用者或電腦...

  8. 輸入您用於 Reporting Services 的服務帳戶。 此帳戶是您在 Reporting Services 設定中新增 SPN 的帳戶。

  9. 選取 Reporting Services 的 SPN,然後選取 [ 確定]。

    注意

    您只能看到 NetBIOS SPN。 如果兩者都存在,它實際上會同時選取 NetBIOS 和 FQDN SPN。

    WAP Constrained 03

  10. 核取 [展開 ] 複選框時,結果看起來應該如下所示。

    WAP Constrained 04

  11. 選取 [確定]。

新增 WAP 應用程式

雖然您可以在報表存取管理控制台內發佈應用程式,但我們想要透過PowerShell建立應用程式。 以下是新增應用程式的命令。

Add-WebApplicationProxyApplication -Name "Contoso Reports" -ExternalPreauthentication ADFS -ExternalUrl https://reports.contoso.com/ -ExternalCertificateThumbprint "0ff79c75a725e6f67e3e2db55bdb103efc9acb12" -BackendServerUrl https://ContosoSSRS/ -ADFSRelyingPartyName "Reporting Services - Web API" -BackendServerAuthenticationSPN "http/ContosoSSRS.contoso.com" -UseOAuthAuthentication
參數 註解
ADFSRelyingPartyName 您在 ADFS 中建立為應用程式群組一部分的 Web API 名稱。
ExternalCertificateThumbprint 要用於外部用戶的憑證。 重要的是憑證在行動裝置上有效,而且來自受信任的證書頒發機構單位。
BackendServerUrl 來自 WAP 伺服器的報表伺服器 URL。 如果 WAP 伺服器位於 DMZ 中,您可能需要使用完整功能變數名稱。 請確定您可以從 WAP 伺服器上的網頁瀏覽器叫用此 URL。
BackendServerAuthenticationSPN 您在 Reporting Services 組態中建立的 SPN。

設定 WAP 應用程式的整合式驗證

新增 WAP 應用程式之後,您必須將 BackendServerAuthenticationMode 設定為使用 IntegratedWindowsAuthentication。 您需要來自 WAP 應用程式的識別碼,才能進行設定。

Get-WebApplicationProxyApplication "Contoso Reports" | fl

Add Application Group

執行下列命令,以使用 WAP 應用程式的標識碼來設定 BackendServerAuthenticationMode。

Set-WebApplicationProxyApplication -id 30198C7F-DDE4-0D82-E654-D369A47B1EE5 -BackendServerAuthenticationMode IntegratedWindowsAuthentication

Add Application Group wizard

使用 Power BI 行動版 應用程式進行 連線

在 Power BI 行動裝置應用程式中,您想要連線到 Reporting Services 實例。 若要這樣做,請提供 WAP 應用程式的外部 URL

Type the server address

當您選取 連線 時,系統會將您導向至您的 ADFS 登入頁面。 輸入網域的有效認證。

Sign-in to ADFS

選取 [ 登入] 之後,您會看到 Reporting Services 伺服器中的元素。

多重要素驗證

您可以啟用多重要素驗證,為您的環境啟用額外的安全性。 若要深入瞭解,請參閱 使用 AD FS 將 Azure MFA 設定為驗證提供者。

疑難排解

您收到「無法登入 SSRS 伺服器」錯誤

您可以設定 Fiddler 作為行動裝置的 Proxy,以查看要求提出多遠。 若要為手機裝置啟用 Fiddler Proxy,您必須在執行 Fiddler 的電腦上設定 適用於 iOS 和 Android 的 CertMaker。 附加元件來自 Fiddler 的 Telerik。

如果登入在使用 Fiddler 時成功運作,您可能會有 WAP 應用程式或 ADFS 伺服器的憑證問題。