토큰 기반 ID(SSO)를 사용하여 보고서 포함

적용 대상: 앱 소유 데이터 사용자 소유 데이터

토큰 기반 ID를 사용하면 ISV가 Microsoft Entra 액세스 토큰을 사용하여 고객의 테넌트에서 관리되는 Azure SQL 데이터베이스에 고객의 ID를 전달할 수 있습니다.

Azure SQL Database에서 데이터를 유지하고 관리하는 ISV 고객은 ISV 앱의 Power BI Embedded를 통합할 때 테넌트에서 데이터를 안전하게 유지할 수 있습니다.

포함 토큰을 생성할 때 Azure SQL 서버에 대한 해당 사용자의 Microsoft Entra 액세스 토큰을 전달하여 Azure SQL에서 사용자의 ID를 지정합니다. 그러면 액세스 토큰은 해당 특정 세션을 위해 Azure SQL에서 해당 사용자의 관련 데이터를 끌어오는 데만 사용됩니다.

유효한 ID를 SQL 테넌트에 전달하는 ISV와 포함 토큰을 다시 전달하는 고객을 보여 주는 도식도입니다.

Important

앱 소유 데이터 SSO 제한 사항:

  • 앱 소유 데이터 시나리오(서비스 주체 또는 마스터 사용자 인증)에서 DirectQuery 데이터 원본에 대한 SSO는 Azure SQL Database에서만 지원됩니다.
  • SSO를 사용하여 포함 토큰을 생성할 때, SSO가 IdentityBlob 활성화된 모든 데이터 원본을 제공해야 합니다. IdentityBlob을 생략하면 토큰 생성 또는 쿼리 실행이 실패합니다.

토큰 기반 ID 설정

토큰 기반 ID는 Microsoft Entra 인증을 허용하도록 구성된 Azure SQL Database에 연결된 용량의 DirectQuery 모델에 대해서만 작동합니다. 의미 체계 모델의 데이터 원본은 토큰 기반 ID를 사용하기 위해 최종 사용자의 OAuth2 자격 증명을 사용하도록 구성해야 합니다. Azure SQL Database에 대한 Microsoft Entra 인증에 대해 자세히 알아봅니다.

토큰 기반 ID를 구성하기 전에 다음을 확인합니다.

  • DirectQuery 데이터 원본은 Azure SQL Database(App-owns-data 시나리오에서 유일하게 지원되는 SSO 데이터 원본)입니다.
  • Azure SQL Database는 Microsoft Entra 인증에 맞춰 구성되어 있습니다.
  • Azure SQL 서버에 사용자의 Microsoft Entra 액세스 토큰을 IdentityBlob로 전달하십시오.
  1. Power BI 포털에서 의미 체계 모델 > 기타 옵션(점 3개) > 설정 > 데이터 원본 자격 증명 > 자격 증명 편집을 선택합니다.

    Power BI 포털의 데이터 세트 설정 옵션 스크린샷.

  2. OAuth2 옵션 상자를 선택합니다.

    Azure SQL Server 구성 스크린샷

ID 토큰 생성

Azure SQL의 액세스 토큰을 만들려면 앱에는 Azure Portal의 Microsoft Entra 앱 등록 구성에서 Azure SQL Database API에 대한 Access Azure SQL DB 및 Data Warehouse 위임 권한이 있어야 합니다.

Azure Portal의 Microsoft Entra 앱 등록 구성 설정을 보여 주는 스크린샷. 다음 범위에 대한 Azure AD v2 엔드포인트의 사용자에 대한 토큰을 인증하고 획득합니다. https://database.windows.net/.default

도움말은 다음 MSAL 코드 샘플을 참조하세요.

임베드 토큰 생성

토큰 기반 ID를 사용하여 보고서를 포함하려면 원하는 ISV 사용자의 토큰 기본 ID를 포함하는 포함 토큰을 생성합니다. 다양한 시나리오에 대한 포함 토큰을 생성하려면 다음 예제를 참조하세요.

Note

반드시 SSO가 사용하도록 설정된 각 Azure SQL 데이터 원본에 대해 유효한 identityBlob가 포함된 datasourceIdentities 항목을 포함해야 합니다. SSO가 활성화된 데이터 원본에서 identityBlob이(가) 누락되면, 임베드 토큰 생성 호출이 실패하거나 쿼리 실행에서 오류가 반환됩니다.

{
  "datasets": [
    {
      "id": "66ba5010-xxxx-xxxx-xxxx-f2bf0125abeb",
    }
  ],
  "reports": [
    {
      "allowEdit": false,
      "id": "9e6da541-xxxx-xxxx-xxxx-7d9442827cce"
    }
  ],
  "datasourceIdentities": [
    {
      "identityBlob": "eyJ…",
      "datasources": [
        {
          "datasourceType": "Sql",
          "connectionDetails": {
            "server": "YourServerName.database.windows.net",
            "database": "YourDataBaseName"
          }
        }
      ]
    }
  ]
}

다음 예제에서는 SSO 및 RLS가 데이터 세트에 적용된 포함된 Power BI 보고서를 보여 줍니다.

데이터 세트에 SSO 및 RLS가 적용된 포함된 Power BI 보고서의 스크린샷.