サービス プリンシパルとアプリケーション シークレットを使用した Power BI コンテンツの埋め込みEmbed Power BI content with service principal and an application secret

サービス プリンシパルとは、Azure AD アプリケーションが Power BI サービスのコンテンツと API にアクセスできるようにするための認証方法です。Service principal is an authentication method that can be used to let an Azure AD application access Power BI service content and APIs.

Azure Active Directory (Azure AD) アプリを作成すると、サービス プリンシパル オブジェクトが作成されます。When you create an Azure Active Directory (Azure AD) app, a service principal object is created. サービス プリンシパル オブジェクト (単に "サービス プリンシパル" とも呼ばれる) を使用することで、Azure AD はご利用のアプリの認証を行うことができます。The service principal object, also known simply as service principal, allows Azure AD to authenticate your app. 認証が完了すると、アプリは Azure AD テナント リソースにアクセスできるようになります。Once authenticated, the app can access Azure AD tenant resources.

認証を行うために、サービス プリンシパルでは、Azure AD アプリの "アプリケーション ID" と次のいずれかが使用されます。To authenticate, the service principal uses the Azure AD app's Application ID, and one of the following:

  • アプリケーション シークレットApplication secret
  • 証明書Certificate

この記事では、"アプリケーション ID" と "アプリケーション シークレット" を使用したサービス プリンシパル認証について説明します。This article describes service principal authentication using Application ID and Application secret.

注意

ご利用のバックエンド サービスは、秘密キーではなく、証明書を使用してセキュリティで保護することをお勧めします。We recommend that you secure your backend services using certificates, rather than secret keys.

メソッドMethod

埋め込み分析でサービス プリンシパルとアプリケーション ID を使用するには、次の手順を行います。To use service principal and an application ID with embedded analytics, follow these steps:

  1. Azure AD アプリを作成します。Create an Azure AD app.

    1. Azure AD アプリのシークレットを作成します。Create the Azure AD app's secret.

    2. アプリの "アプリケーション ID" と "アプリケーション シークレット" を取得します。Get the app's Application ID and Application secret.

    注意

    これらの手順については手順 1 で説明します。These steps are described in step 1. Azure AD アプリの作成の詳細については、Azure AD アプリの作成に関するページを参照してください。For more information about creating an Azure AD app, see the create an Azure AD app article.

  2. Azure AD セキュリティ グループを作成します。Create an Azure AD security group.

  3. Power BI サービス管理者設定を有効にします。Enable the Power BI service admin settings.

  4. サービス プリンシパルを、ご利用のワークスペースに追加します。Add the service principal to your workspace.

  5. 自分のコンテンツを埋め込みます。Embed your content.

重要

Power BI でサービス プリンシパルを使用できるようにすると、アプリケーションの AD アクセス許可は無効になります。Once you enable service principal to be used with Power BI, the application's AD permissions don't take effect anymore. アプリケーションのアクセス許可はその後、Power BI 管理ポータルを介して管理されます。The application's permissions are then managed through the Power BI admin portal.

手順 1 - Azure AD アプリを作成するStep 1 - Create an Azure AD app

次のいずれかの方法を使用して、Azure AD アプリを作成します。Create an Azure AD app using one of these methods:

Microsoft Azure portal での Azure AD アプリの作成Creating an Azure AD app in the Microsoft Azure portal

  1. Microsoft Azure にログインします。Log into Microsoft Azure.

  2. [アプリの登録] を検索し、 [アプリの登録] リンクをクリックします。Search for App registrations and click the App registrations link.

    Azure アプリの登録

  3. [新規登録] をクリックします。Click New registration.

    新しい登録

  4. 必要な情報を入力します。Fill in the required information:

    • 名前 - 自分のアプリケーションの名前を入力しますName - Enter a name for your application
    • サポートされているアカウントの種類 - サポートされているアカウントの種類を選択しますSupported account types - Select supported account types
    • (省略可能) リダイレクト URI - 必要に応じて URI を入力します(Optional) Redirect URI - Enter a URI if needed
  5. [登録] をクリックします。Click Register.

  6. 登録した後、 [概要] タブで "アプリケーション ID" を使用できます。後で使用できるように、"アプリケーション ID" をコピーして保存します。After registering, the Application ID is available from the Overview tab. Copy and save the Application ID for later use.

    アプリケーション ID

  1. [証明書とシークレット] タブをクリックします。Click the Certificates & secrets tab.

    スクリーンショットには、Azure portal のアプリに対する [証明書とシークレット] ペインが示されています。

  2. [新しいクライアント シークレット] をクリックしますClick New client secret

    新しいクライアント シークレット

  3. [クライアント シークレットの追加] ウィンドウで、説明を入力し、クライアント シークレットの有効期限を指定し、 [追加] をクリックします。In the Add a client secret window, enter a description, specify when you want the client secret to expire, and click Add.

  4. "クライアント シークレット" 値をコピーして保存します。Copy and save the Client secret value.

    クライアント シークレットの値

    注意

    このウィンドウから離れると、クライアント シークレットの値は非表示となり、再度表示することもコピーすることもできません。After you leave this window, the client secret value will be hidden, and you'll not be able to view or copy it again.

PowerShell を使用した Azure AD アプリの作成Creating an Azure AD app using PowerShell

このセクションには、PowerShell を使用して新しい Azure AD アプリを作成するためのサンプル スクリプトが含まれています。This section includes a sample script to create a new Azure AD app using PowerShell.

# The app ID - $app.appid
# The service principal object ID - $sp.objectId
# The app key - $key.value

# Sign in as a user that's allowed to create an app
Connect-AzureAD

# Create a new Azure AD web application
$app = New-AzureADApplication -DisplayName "testApp1" -Homepage "https://localhost:44322" -ReplyUrls "https://localhost:44322"

# Creates a service principal
$sp = New-AzureADServicePrincipal -AppId $app.AppId

# Get the service principal key
$key = New-AzureADServicePrincipalPasswordCredential -ObjectId $sp.ObjectId

手順 2 - Azure AD セキュリティ グループを作成するStep 2 - Create an Azure AD security group

ご利用のサービス プリンシパルには、Power BI コンテンツおよび API のいずれに対してもアクセス権がありません。Your service principal doesn't have access to any of your Power BI content and APIs. サービス プリンシパルにアクセス権を付与するには、Azure AD でセキュリティ グループを作成し、作成済みのサービス プリンシパルをそのセキュリティ グループに追加します。To give the service principal access, create a security group in Azure AD, and add the service principal you created to that security group.

Azure AD セキュリティ グループを作成するには、次の 2 つの方法があります。There are two ways to create an Azure AD security group:

  • 手動 (Azure で)Manually (in Azure)
  • PowerShell の使用Using PowerShell

セキュリティ グループを手動で作成するCreate a security group manually

Azure セキュリティ グループを手動で作成するには、「Azure Active Directory を使用して基本グループを作成してメンバーを追加する」に記載の手順に従ってください。To create an Azure security group manually, follow the instructions in the Create a basic group and add members using Azure Active Directory article.

PowerShell を使用してセキュリティ グループを作成するCreate a security group using PowerShell

新しいセキュリティ グループを作成し、そのセキュリティ グループにアプリを追加するためのサンプル スクリプトを以下に示します。Below is a sample script for creating a new security group, and adding an app to that security group.

注意

組織全体に対してサービス プリンシパル アクセスを有効にする場合、この手順をスキップします。If you want to enable service principal access for the entire organization, skip this step.

# Required to sign in as admin
Connect-AzureAD

# Create an Azure AD security group
$group = New-AzureADGroup -DisplayName <Group display name> -SecurityEnabled $true -MailEnabled $false -MailNickName notSet

# Add the service principal to the group
Add-AzureADGroupMember -ObjectId $($group.ObjectId) -RefObjectId $($sp.ObjectId)

手順 3 - Power BI サービス管理者設定を有効にするStep 3 - Enable the Power BI service admin settings

Azure AD アプリから Power BI コンテンツおよび API にアクセスできるようにするには、Power BI 管理者が Power BI 管理ポータルでサービス プリンシパル アクセスを有効にする必要があります。For an Azure AD app to be able to access the Power BI content and APIs, a Power BI admin needs to enable service principal access in the Power BI admin portal.

Azure AD で作成したセキュリティ グループを、 [開発者向け設定] の特定のセキュリティ グループのセクションに追加します。Add the security group you created in Azure AD, to the specific security group section in the Developer settings.

重要

サービス プリンシパルには、それが有効にされたテナント設定へのアクセス権があります。Service principals have access to any tenant settings they're enabled for. これには、ご利用の管理者設定に応じて、特定のセキュリティ グループまたは組織全体が含まれます。Depending on your admin settings, this includes specific security groups or the entire organization.

サービス プリンシパル アクセスを特定のテナント設定に限定するには、特定のセキュリティ グループへのアクセスのみを許可します。To restrict service principal access to specific tenant settings, allow access only to specific security groups. あるいは、サービス プリンシパル専用のセキュリティ グループを作成し、それを目的のテナント設定から除外することもできます。Alternatively, you can create a dedicated security group for service principals, and exclude it from the desired tenant settings.

管理ポータル

手順 4 - サービス プリンシパルを、ご利用のワークスペースに追加します。Step 4 - Add the service principal to your workspace

Power BI サービス内でレポート、ダッシュボード、データセットなどの Azure AD アプリのアクセス成果物を有効にするには、メンバーまたは管理者としてのサービス プリンシパル エンティティをご利用のワークスペースに追加します。To enable your Azure AD app access artifacts such as reports, dashboards and datasets in the Power BI service, add the service principal entity as a member or admin to your workspace.

注意

このセクションでは、UI の手順について説明します。This section provides UI instructions. また、グループ - グループ ユーザー API の追加に関するページを参照して、サービス プリンシパルをワークスペースに追加することもできます。You can also add a service principal to a workspace using the Groups - add group user API.

  1. アクセスを有効にするワークスペースまでスクロールし、 [その他] メニューで、 [ワークスペース アクセス] を選択します。Scroll to the workspace you want to enable access for, and from the More menu, select Workspace access.

    ワークスペースの設定

  2. 管理者またはメンバーとしてのサービス プリンシパルをワークスペースに追加します。Add the service principal as an Admin or Member to the workspace.

    ワークスペース管理者

手順 5 - コンテンツを埋め込むStep 5 - Embed your content

サンプル アプリケーション内にも、独自のアプリケーション内にも使用するコンテンツを埋め込むことができます。You can embed your content within a sample application, or within your own application.

使用するコンテンツが埋め込まれると、運用開始の準備が整います。Once your content is embedded, you're ready to move to production.

考慮事項と制限事項Considerations and limitations

  • サービス プリンシパルは、新しいワークスペースでのみ動作します。Service principal only works with new workspaces.
  • サービス プリンシパルを使用する場合は、マイ ワークスペースはサポートされません。My Workspace isn't supported when using service principal.
  • 運用環境に移行するときは、専用の容量が必要です。Dedicated capacity is required when moving to production.
  • サービス プリンシパルを使用して Power BI ポータルにサインインすることはできません。You can't sign into the Power BI portal using service principal.
  • Power BI 管理ポータル内の開発者向け設定でサービス プリンシパルを有効にするには、Power BI 管理者権限が必要です。Power BI admin rights are required to enable service principal in developer settings within the Power BI admin portal.
  • 組織のアプリケーションへの埋め込みでは、サービス プリンシパルを使用することはできません。Embed for your organization applications can't use service principal.
  • データフロー管理はサポートされていません。Dataflows management is not supported.
  • サービス プリンシパルでは現在、管理 API は一切サポートされていません。Service principal currently does not support any admin APIs.
  • サービス プリンシパルを Azure Analysis Services データ ソースと共に使用する場合、サービス プリンシパル自体に Azure Analysis Services インスタンスのアクセス許可が含まれている必要があります。When using service principal with an Azure Analysis Services data source, the service principal itself must have an Azure Analysis Services instance permissions. この目的のためのサービス プリンシパルを含むセキュリティ グループを使用することはできません。Using a security group that contains the service principal for this purpose, doesn't work.
  • 現在、サービス プリンシパルでゲートウェイのデータ ソースにアクセスすることはできません。Service principal currently not able to access data sources in the gateway. つまり、ゲートウェイのデータ ソース ユーザーとしてサービス プリンシパルを追加することはできません。i.e, you cannot able to add service prinicpal as the data source users in gateway.

次の手順Next steps