了解如何在 Azure Active Directory (Azure AD) 內註冊應用程式,以用來內嵌 Power BI 內容。

您可以向 Azure AD 註冊應用程式,讓您的應用程式存取 Power BI REST API。 這可讓您建立應用程式的身分識別,並指定其對於 Power BI REST 資源的權限。

重要事項:

註冊 Power BI 應用程式之前,您需要有 Azure Active Directory 租用戶和組織使用者。 如果您尚未以租用戶中的使用者來註冊 Power BI,則無法成功完成應用程式註冊。

有兩種方式可以註冊您的應用程式。 第一種方法是使用 Power BI 應用程式註冊工具;或者,您也可以在 Azure 入口網站直接註冊。 由於 Power BI 應用程式註冊工具只需填寫幾個欄位,所以算是最簡簡單的途徑。 如果您要變更應用程式,請使用 Azure 入口網站。

使用 Power BI 應用程式註冊工具來註冊

您必須在 Azure Active Directory 中註冊應用程式,才能建立應用程式的身分識別,以及指定對於 Power BI REST 資源的權限。 當您註冊應用程式時,例如主控台應用程式或網站,您會收到識別碼,應用程式會利用此識別碼,向要求權限的使用者表明自己的身分。

以下是使用 Power BI 應用程式註冊工具來註冊應用程式的方法:

  1. 請前往 dev.powerbi.com/apps

  2. 選取 [使用您的現有帳戶登入]。

  3. 提供 [應用程式名稱]。

  4. [應用程式類型] 選擇取決於您使用的應用程式類型。

    • 若是 Web 應用程式或 Web API,請使用 [伺服器端 Web 應用程式]。
    • 若是在用戶端裝置上執行的應用程式,請使用 [原生應用程式]。 如果您要內嵌客戶的內容,而不論實際應用程式是什麼,您也會選擇原生應用程式。即使是 Web 應用程式亦然。
  5. 輸入 [重新導向 URL] 和 [首頁 URL] 的值。 任何有效的 URL 都可運作。

    只有當您選擇 [伺服器端 Web 應用程式] 作為應用程式類型時,才可使用 [首頁 URL]。

    若是「對客戶進行內嵌」及 integrate-dashboard-web-app 範例,重新導向 URL 為 http://localhost:13526/redirect。 若為報表及磚範例,重新導向 URL 則為 http://localhost:13526/

  6. 選擇此應用程式將能存取的 API。 如需 Power BI 存取權限的詳細資訊,請參閱 Power BI Permissions (Power BI 權限)

  7. 選取 [註冊應用程式]。

    接著會提供用戶端識別碼給您。 如果您選取 [伺服器端 Web 應用程式],則還會收到用戶端祕密。 之後若有需要,可從 Azure 入口網站中擷取用戶端識別碼。 如果您遺失用戶端祕密,則必須在 Azure 入口網站中建立一個新的。

現在,您可以在自訂應用程式中,使用已註冊的應用程式來與 Power BI 服務互動。

重要事項:

如果要內嵌客戶的內容,您必須在 Azure 入口網站中設定其他權限。 如需詳細資訊,請參閱將權限套用至應用程式

使用 Azure 入口網站註冊

註冊應用程式的另一個選項是直接在 Azure 入口網站中進行。 若要註冊您的應用程式,請遵循下列步驟。

  1. 接受 Microsoft Power BI API 條款

  2. 登入Azure 入口網站

  3. 在頁面的右上角選取您的帳戶,以選擇您的 Azure AD 租用戶。

  4. 在左側導覽窗格中,選擇 [更多服務],選取 [安全性 + 識別] 下的 [應用程式註冊],然後選取 [新增應用程式註冊]。

  5. 遵循提示並建立新的應用程式。

    • 若是 Web 應用程式,請提供登入 URL,也就是應用程式的基底 URL,可供使用者登入,例如 http://localhost:13526。
    • 若是原生應用程式,請提供 [重新導向 URI],供 Azure AD 用來傳回權杖回應。 輸入您的應用程式專用的值,例如 http://myapplication/redirect

如需如何在 Azure Active Directory 中註冊應用程式的詳細資訊,請參閱整合應用程式與 Azure Active Directory

如何取得用戶端識別碼

當您註冊應用程式時,您會收到用戶端識別碼。 應用程式使用用戶端識別碼,向要求權限的對象使用者識別自己的身分。

以下是取得用戶端識別碼的方法:

  1. 登入Azure 入口網站

  2. 在頁面的右上角選取您的帳戶,以選擇您的 Azure AD 租用戶。

  3. 在左側導覽窗格中,選擇 [更多服務],然後選取 [應用程式註冊]。

  4. 選取您想要擷取用戶端識別碼的應用程式。

  5. 您會看到以 GUID 形式列出的應用程式識別碼。 這就是應用程式的用戶端識別碼。

    應用程式註冊中,列為應用程式識別碼的用戶端識別碼

在 Azure AD 中將權限套用至應用程式

重要事項:

本節只適用於內嵌組織內容的應用程式。

除了應用程式註冊頁面中所提供的權限之外,您還需要啟用應用程式的額外權限。 您可以透過 Azure AD 入口網站或以程式設計方式來完成這項作業。

建議您登入用於內嵌的「主」帳戶,或全域管理員帳戶。

使用 Azure AD 入口網站

  1. 瀏覽至 Azure 入口網站內的應用程式註冊,然後選取您要用於內嵌的應用程式。

  2. 選取 [API 存取] 下方的 [必要權限]。

  3. 選取 [Windows Azure Active Directory],然後確定選取 [以登入使用者身分存取目錄]。 選取 [儲存]。

  4. 在 [必要權限] 內,選取 [Power BI 服務 (Power BI)]。

    注意:

    如果您直接在 Azure AD 入口網站中建立應用程式,則 [Power BI 服務 (Power BI)] 可能不存在。 如果不存在,請選取 [+ 新增],然後選取 [1 選取 API]。 選取 API 清單中的 [Power BI 服務],然後選取 [選取]。 如果 [+ 新增] 內沒有 [Power BI 服務 (Power BI)],請註冊 Power BI 和至少一位使用者。

  5. 選取 [委派的權限] 下方的所有權限。 您必須逐一選取它們,才能儲存所做的選擇。 完成時,請選取 [儲存]。

  6. 在 [必要權限] 內,選取 [授與權限]。

    主帳戶需要授與權限動作,以避免收到 Azure AD 要求權限的提示。 若執行此動作的帳戶為全域管理員,您可將此應用程式的權限授與組織中的所有使用者。 若執行此動作的帳戶為主帳戶而非全域管理員,您只可將此應用程式的權限授與主帳戶。

    在必要權限對話方塊內授與權限

以程式設計方式套用權限

  1. 您必須取得租用戶內的現有服務主體 (使用者)。 如需如何執行這項作業的資訊,請參閱 Get servicePrincipal

    您可以呼叫沒有 {id} 的 Get servicePrincipal API,而且它將讓您取得租用戶內的所有服務主體。

  2. 使用應用程式用戶端識別碼作為 appId 屬性,以檢查服務主體。

  3. 如果您的應用程式遺失服務方案,則請建立新的服務方案。

    Post https://graph.microsoft.com/beta/servicePrincipals
    Authorization: Bearer ey..qw
    Content-Type: application/json
    {
    "accountEnabled" : true,
    "appId" : "{App_Client_ID}",
    "displayName" : "{App_DisplayName}"
    }
    
  4. 將應用程式權限授與 PowerBI API

    Post https://graph.microsoft.com/beta/OAuth2PermissionGrants
    Authorization: Bearer ey..qw
    Content-Type: application/json
    { 
    "clientId":"{Service_Plan_ID}",
    "consentType":"AllPrincipals",
    "resourceId":"c78b2585-1df6-41de-95f7-dc5aeb7dc98e",
    "scope":"Dataset.ReadWrite.All Dashboard.Read.All Report.Read.All Group.Read Group.Read.All Content.Create Metadata.View_Any Dataset.Read.All Data.Alter_Any",
    "expiryTime":"2018-03-29T14:35:32.4943409+03:00",
    "startTime":"2017-03-29T14:35:32.4933413+03:00"
    }
    
  5. 將應用程式權限授與 AAD

    consentType 的值取決於執行要求的使用者。 您可以提供 AllPrincipalsPrincipalAllPrincipals 只能由系統管理員用於將權限授與所有使用者。 Principal 則會用於將權限授與特定使用者。

    主帳戶需要權限授與,以避免收到 Azure AD 要求權限的提示。

    如果您使用現有的租用戶,且不想要代表所有租用戶使用者來授與權限,則可以將 contentType 的值替換為 Principal,以將權限授與特定使用者。

    Post https://graph.microsoft.com/beta/OAuth2PermissionGrants
    Authorization: Bearer ey..qw
    Content-Type: application/json
    { 
    "clientId":"{Service_Plan_ID}",
    "consentType":"AllPrincipals",
    "resourceId":"61e57743-d5cf-41ba-bd1a-2b381390a3f1",
    "scope":"User.Read Directory.AccessAsUser.All",
    "expiryTime":"2018-03-29T14:35:32.4943409+03:00",
    "startTime":"2017-03-29T14:35:32.4933413+03:00"
    }
    

後續步驟

既然您已在 Azure AD 中註冊應用程式,就必須在應用程式中驗證使用者。 若要深入了解,請參閱為 Power BI 應用程式驗證使用者及取得 Azure AD 存取權杖

有其他問題嗎? 嘗試在 Power BI 社群提問