Power BI 콘텐츠 포함에 사용하기 위해 Azure AD(Azure Active Directory) 내에서 응용 프로그램을 등록하는 방법에 대해 알아봅니다.

Azure AD에 응용 프로그램을 등록하면 응용 프로그램에서 Power BI REST API에 액세스할 수 있습니다. 그러면 응용 프로그램에 대한 ID를 설정하고 Power BI REST 리소스에 대한 권한을 지정할 수 있습니다.

중요:

Power BI 앱을 등록하려면 먼저 Azure Active Directory 테넌트 및 조직 사용자가 있어야 합니다. 테넌트의 사용자를 Power BI에 아직 등록하지 않은 경우 앱 등록이 성공적으로 완료되지 않습니다.

두 가지 방법으로 응용 프로그램을 등록합니다. 즉 Power BI 앱 등록 도구를 사용하거나 Azure Portal 내에서 직접 수행하면 됩니다. Power BI 앱 등록 도구는 입력해야 할 필드가 단 몇 개만 있으므로 가장 쉬운 옵션입니다. 앱을 변경하려는 경우 Azure Portal을 통해 수행할 수 있습니다.

Power BI 앱 등록 도구를 사용하여 등록

응용 프로그램을 Azure Active Directory에 등록하여 응용 프로그램의 ID를 설정하고 Power BI REST 리소스에 대한 사용 권한을 지정해야 합니다. 콘솔 앱 또는 웹 사이트와 같은 응용 프로그램을 등록하는 경우 응용 프로그램이 사용 권한을 요청한 사용자에게 자신을 식별하기 위해 사용하는 ID를 받습니다.

Power BI 앱 등록 도구를 사용하여 응용 프로그램을 등록하는 방법은 다음과 같습니다.

  1. dev.powerbi.com/apps로 이동합니다.

  2. 기존 계정으로 로그인을 선택합니다.

  3. 앱 이름을 제공합니다.

  4. 앱 형식 선택은 사용하는 응용 프로그램의 유형에 따라 달라집니다.

    • 웹앱 또는 웹 API에 대해 서버 쪽 웹앱을 사용합니다.
    • 클라이언트 장치에서 실행되는 앱에 대해 네이티브 앱을 사용합니다. 실제 응용 프로그램이 무엇인지에 관계 없이 비Power BI 사용자에 대한 콘텐츠(앱 소유 데이터)를 포함하는 경우에도 네이티브 앱을 선택합니다.
  5. 리디렉션 URL홈 페이지 URL에 대한 값을 입력합니다. 모든 유효한 URL이 작동합니다.

    응용 프로그램 형식으로 서버 쪽 웹앱을 선택한 경우에만 홈 페이지 URL을 사용할 수 있습니다.

    앱 소유 데이터사용자 소유 데이터/integrate-dashboard-web-app 샘플의 경우 리디렉션 URL은 http://localhost:13526/redirect입니다. 보고서 및 타일 샘플의 경우 리디렉션 URL은 http://localhost:13526/입니다.

  6. 이 응용 프로그램이 액세스할 API를 선택합니다. Power BI 액세스 권한에 대한 자세한 내용은 Power BI 사용 권한을 참조하세요.

  7. 앱 등록을 선택합니다.

    그러면 클라이언트 ID가 제공됩니다. 서버 쪽 웹앱을 선택한 경우 클라이언트 비밀도 받게 됩니다. 클라이언트 ID는 나중에 필요한 경우 Azure Portal에서 검색할 수 있습니다. 클라이언트 비밀이 손실되었으면 Azure Portal에서 새로 만들어야 합니다.

이제 등록된 응용 프로그램을 사용자 지정 응용 프로그램의 일부로 사용하여 Power BI 서비스와 상호 작용할 수 있습니다.

중요:

비Power BI 사용자에 대한 콘텐츠(앱 소유 데이터)를 포함하는 경우 Azure Portal에서 추가 권한을 구성해야 합니다. 자세한 내용은 응용 프로그램에 권한 적용을 참조하세요.

Azure Portal에 등록

응용 프로그램을 등록하기 위한 다른 옵션은 Azure Portal에서 직접 수행하는 것입니다. 응용 프로그램을 등록하려면 다음이 단계를 수행합니다.

  1. Microsoft Power BI API 약관에 동의합니다.

  2. Azure Portal에 로그인합니다.

  3. 페이지의 오른쪽 위 모퉁이에서 사용자 계정을 선택하여 Azure AD 테넌트를 선택합니다.

  4. 왼쪽 탐색 창에서 더 많은 서비스를 선택하고, 보안 + ID아래에서 앱 등록을 선택하고, 새 응용 프로그램 등록을 선택합니다.

  5. 메시지에 따라 새 응용 프로그램을 만듭니다.

    • 웹 응용 프로그램의 경우 사용자가 로그인할 수 있는 앱의 기본 URL인 로그온 URL을 제공합니다(예: http://localhost:13526).
    • 네이티브 응용 프로그램의 경우 Azure AD가 토큰 응답을 반환하기 위해 사용하는 리디렉션 URI를 제공합니다. 응용 프로그램에 대한 특정 값을 입력합니다(예: http://myapplication/redirect).

Azure Active Directory에 응용 프로그램을 등록하는 방법에 대한 자세한 내용은 Azure Active Directory와 응용 프로그램 통합을 참조하세요.

클라이언트 ID를 가져오는 방법

응용 프로그램을 등록하면 클라이언트 ID가 수신됩니다. 클라이언트 ID는 응용 프로그램에서 사용자에게 권한을 요청하고 있음을 사용자가 알 수 있도록 하는 데 사용됩니다.

클라이언트 ID를 가져오는 방법은 다음과 같습니다.

  1. Azure Portal에 로그인합니다.

  2. 페이지의 오른쪽 위 모퉁이에서 사용자 계정을 선택하여 Azure AD 테넌트를 선택합니다.

  3. 왼쪽의 탐색 창에서 추가 서비스를 선택하고 앱 등록을 선택합니다.

  4. 클라이언트 ID를 검색할 응용 프로그램을 선택합니다.

  5. 응용 프로그램 ID가 GUID로 나열됩니다. 이것은 응용 프로그램에 대한 클라이언트 ID입니다.

    앱 등록에서 응용 프로그램 ID로 나열된 클라이언트 ID

Azure AD 내 응용 프로그램에 권한 적용

중요:

이 섹션은 비Power BI 사용자에 대한 콘텐츠를 포함하는 응용 프로그램에만 적용됩니다.

응용 프로그램 등록 페이지에 제공된 것 외에도 응용 프로그램에 추가 권한을 사용하도록 설정해야 합니다. Azure AD 포털을 통해, 또는 프로그래밍 방식으로 수행할 수 있습니다.

포함에 사용된 마스터 계정 또는 전역 관리자 계정 중 하나를 사용하여 로그인할 수 있습니다.

Azure AD 포털 사용

  1. Azure Portal 내에서 앱 등록 블레이드로 이동한 후 포함에 사용할 앱을 선택합니다.

  2. API 액세스에서 필요한 권한을 선택합니다.

  3. Windows Azure Active Directory를 선택한 다음 로그인한 사용자 권한으로 디렉터리에 액세스가 선택되어 있는지 확인합니다. 저장을 선택합니다.

  4. 필요한 권한에서 Power BI 서비스(Power BI)를 선택합니다.

    참고:

    Azure AD 포털에서 직접 앱을 만든 경우 Power BI 서비스(Power BI)는 없을 수도 있습니다. 그렇지 않은 경우 + 추가, 1 선택 및 API를 차례로 선택합니다. API 목록에서 Power BI 서비스를 선택하고 선택을 선택합니다. 그런 다음 5단계를 계속할 수 있습니다.

  5. 위임된 권한에서 모든 권한을 선택합니다. 선택 항목을 저장하려면 하나씩 선택해야 합니다. 완료되면 저장을 선택합니다.

  6. 필요한 권한에서 사용 권한 부여를 선택합니다.

    Azure AD에서 동의하도록 요구하는 메시지가 표시되지 않게 하려면*마스터 계정*에 권한 부여 작업이 필요합니다. 이 작업을 수행하는 계정이 전역 관리자인 경우, 조직 내 모든 사용자에게 이 응용 프로그램에 대한 권한을 부여합니다. 이 작업을 수행하는 계정이 *마스터 계정*이고 전역 관리자가 아닌 경우, 이 응용 프로그램의 *마스터 계정*에만 권한을 부여합니다.

    필요한 권한 대화 상자에서 권한 부여

프로그래밍 방식으로 권한 적용

  1. 테넌트 내에서 기존 서비스 주체(사용자)를 가져와야 합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 Get servicePrincipal을 참조하세요.

    {id} 없이 Get servicePrincipal api를 호출하면 테넌트 내의 모든 서비스 주체를 가져오게 됩니다.

  2. appId 속성으로 앱 클라이언트 ID가 있는 서비스 주체를 확인합니다.

  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에 대한 값은 요청을 수행하는 사용자에 따라 다릅니다. AllPrincipals 또는 Principal 중 하나를 제공할 수 있습니다. AllPrincipals는 관리자만 모든 사용자에게 권한을 부여하는 데 사용할 수 있습니다. 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 커뮤니티에 질문합니다.