Incorporer du contenu Power BI avec un principal de service et un secret d’applicationEmbed Power BI content with service principal and an application secret

Le principal de service est une méthode d’authentification qui peut être utilisée pour permettre l’accès d’une application Azure AD à des API ou un contenu de service Power BI.Service principal is an authentication method that can be used to let an Azure AD application access Power BI service content and APIs.

Lorsque vous créez une application Azure Active Directory (Azure AD), un objet principal de service est créé.When you create an Azure Active Directory (Azure AD) app, a service principal object is created. L’objet principal de service, également connu sous le nom de principal de service, permet à Azure AD d’authentifier votre application.The service principal object, also known simply as service principal, allows Azure AD to authenticate your app. Une fois authentifié, l’application peut accéder aux ressources de l’abonné Azure AD.Once authenticated, the app can access Azure AD tenant resources.

Pour s’authentifier, le principal de service utilise l’ID d’application de l’application Azure AD et l’un des éléments suivants :To authenticate, the service principal uses the Azure AD app's Application ID, and one of the following:

  • CertificatCertificate
  • Secret de l’applicationApplication secret

Cet article décrit l’authentification du principal de service à l’aide de l’ID d’application et Secret de l’application.This article describes service principal authentication using Application ID and Application secret.

Notes

Azure AD recommande de sécuriser vos services back-end en utilisant des certificats au lieu de clés secrètes.Azure AD recommends that you secure your backend services using certificates, rather than secret keys.

MéthodeMethod

Pour utiliser le principal de service et un ID d’application avec une analytique incorporée, effectuez les étapes suivantes :To use service principal and an application ID embedded analytics, follow these steps:

  1. Créer une application Azure AD.Create an Azure AD app.

    1. Créez le secret de l’application Azure AD.Create the Azure AD app's secret.

    2. Obtenez l’ID d’application et Secret d’application de l’application.Get the app's Application ID and Application secret.

    Notes

    Ces étapes sont décrites dans l’étape 1.These steps are described in step 1. Pour plus d’informations sur la création d’une application Azure AD, consultez l’article créer une application Azure AD.For more information about creating an Azure AD app, see the create an Azure AD app article.

  2. Créez un groupe de sécurité Azure AD.Create an Azure AD security group.

  3. Activez les paramètres d’administrateur de service Power BI.Enable the Power BI service admin settings.

  4. Ajoutez le principal de service à votre espace de travail.Add the service principal to your workspace.

  5. Incorporez votre contenu.Embed your content.

Important

Une fois que vous activez le principal de service à utiliser avec Power BI, les autorisations AD de l’application n’ont plus d’effet.Once you enable service principal to be used with Power BI, the application's AD permissions don't take effect anymore. Les autorisations de l’application sont ensuite gérées par le biais du portail d’administration Power BI.The application's permissions are then managed through the Power BI admin portal.

Étape 1 : créer une application Azure ADStep 1 - Create an Azure AD app

Créer une application Azure AD à l’aide d’une de ces méthodes :Create an Azure AD app using one of these methods:

Création d’une application Azure AD dans le Portail Microsoft AzureCreating an Azure AD app in the Microsoft Azure portal

  1. Connectez-vous à Microsoft Azure.Log into Microsoft Azure.

  2. Recherchez les inscriptions d’applications, puis cliquez sur le lien Inscriptions d’applications.Search for App registrations and click the App registrations link.

    inscription d’application azure

  3. Cliquez sur Nouvelle inscription.Click New registration.

    nouvelle inscription

  4. Entrez les informations obligatoires :Fill in the required information:

    • Nom : entrer un nom pour votre applicationName - Enter a name for your application
    • Types de comptes pris en charge : sélectionner les types de comptes pris en chargeSupported account types - Select supported account types
    • (facultatif) Rédiriger l’URI : entrer un URI si nécessaire(Optional) Redirect URI - Enter a URI if needed
  5. Cliquez sur S'inscrire.Click Register.

  6. Une fois l’inscription terminée, l’ID d’application est disponible dans l’onglet Vue d’ensemble. Copiez et enregistrez l’ID de l’application pour une future utilisation.After registering, the Application ID is available from the Overview tab. Copy and save the Application ID for later use.

    Capture d’écran montrant où obtenir un ID d’application dans l’onglet Vue d’ensemble.

  7. Cliquer sur l’onglet Certificats et secrets.Click the Certificates & secrets tab.

    Une capture d’écran montrant le volet Certificats et secrets pour une application sur le portail Azure.

  8. Cliquez sur Nouveau secret client.Click New client secret

    Capture d’écran montrant le bouton Nouveau secret client dans le volet Certificats et secrets.

  9. Dans la fenêtre Ajouter un secret client, entrez une description, spécifiez à quel moment vous souhaitez que le secret client expire, puis cliquez sur Ajouter.In the Add a client secret window, enter a description, specify when you want the client secret to expire, and click Add.

  10. Copiez et enregistrez la valeur Secret client.Copy and save the Client secret value.

    Captures d’écran montrant une valeur secrète floue dans le volet Certificats et secrets.

    Notes

    Une fois que vous avez quitté cette fenêtre, la valeur secret client est masquée et vous ne pouvez pas l’afficher ni la copier à nouveau.After you leave this window, the client secret value will be hidden, and you'll not be able to view or copy it again.

Création d’une application Azure AD à l’aide de PowerShellCreating an Azure AD app using PowerShell

Cette section comprend un échantillon de script permettant de créer une nouvelle application Azure AD à l’aide de PowerShell.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

Étape 2 : créer un groupe de sécurité Azure ADStep 2 - Create an Azure AD security group

Votre principal de service n’a accès à aucune de vos API ni au contenu Power BI.Your service principal doesn't have access to any of your Power BI content and APIs. Pour accorder l’accès au principal de service, créez un groupe de sécurité dans Azure AD et ajoutez le principal de service que vous avez créé à ce groupe de sécurité.To give the service principal access, create a security group in Azure AD, and add the service principal you created to that security group.

Vous pouvez créer un groupe de sécurité Azure AD de deux façons :There are two ways to create an Azure AD security group:

Créer un groupe de sécurité manuellementCreate a security group manually

Pour créer un groupe de sécurité Azure manuellement, suivez les instructions de l’article Créer un groupe de base et ajouter des membres à l’aide d’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.

Créer un groupe de sécurité à l’aide PowerShellCreate a security group using PowerShell

Voici un échantillon de script qui crée un nouveau groupe de sécurité et ajoute une application à ce groupe.Below is a sample script for creating a new security group, and adding an app to that security group.

Notes

Si vous souhaitez activer l’accès au principal de service pour toute l’organisation, ignorez cette étape.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)

Étape 3 : activer les paramètres d’administrateur de service Power BIStep 3 - Enable the Power BI service admin settings

Pour qu’une application Azure AD soit en mesure d’accéder au contenu et aux API de Power BI, un administrateur Power BI doit activer l’accès au principal de service dans le portail d’administrateur 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.

Ajoutez le groupe de sécurité que vous avez créé dans Azure AD sous la section Paramètres du développeur relative au groupe de sécurité.Add the security group you created in Azure AD, to the specific security group section in the Developer settings.

Important

Les principaux de service ont accès à tous les paramètres d’abonné pour lesquels ils sont activés.Service principals have access to any tenant settings they're enabled for. En fonction de vos paramètres d’administrateur, cela comprend des groupes de sécurité spécifiques ou toute l’organisation.Depending on your admin settings, this includes specific security groups or the entire organization.

Pour restreindre l’accès du principal de service à des paramètres d’abonné spécifiques, autorisez l’accès uniquement à des groupes de sécurité spécifiques.To restrict service principal access to specific tenant settings, allow access only to specific security groups. Vous pouvez également créer un groupe de sécurité dédié pour les principaux de service et l’exclure des paramètres d’abonné souhaités.Alternatively, you can create a dedicated security group for service principals, and exclude it from the desired tenant settings.

Capture d’écran montrant les paramètres de développeur dans les options d’administration du service Power BI.

Étape 4 - Ajouter le principal de service à votre espace de travailStep 4 - Add the service principal to your workspace

Pour activer vos artefacts d’accès à l’application Azure AD, tels que les rapports, les tableaux de bord et les jeux de données du service Power BI, ajoutez l’entité du principal de service (ou le groupe de sécurité qui contient votre principal de service) en tant que membre ou administrateur à votre espace de travail.To enable your Azure AD app access artifacts such as reports, dashboards and datasets in the Power BI service, add the service principal entity, or the security group that includes your service principal, as a member or admin to your workspace.

Notes

Cette section fournit des instructions relatives à l’interface utilisateur.This section provides UI instructions. Vous pouvez également ajouter un principal de service ou un groupe de sécurité à un espace de travail à l’aide de Groupes : ajouter une API utilisateur de groupe.You can also add a service principal or a security group to a workspace, using the Groups - add group user API.

  1. Accédez à l’espace de travail pour lequel vous souhaitez activer l’accès, puis dans le menu Plus, sélectionnez Accès à l’espace de travail.Scroll to the workspace you want to enable access for, and from the More menu, select Workspace access.

    Capture d’écran montrant le bouton d’accès à l’espace de travail dans le menu Plus d’un espace de travail Power BI.

  2. Dans le volet Accès, ajoutez l’un des éléments suivants :In the Access pane, text box, add one of the following:

    • Votre principal de service.Your service principal. Le nom de votre principal de service correspond au nom d’affichage de votre application Azure AD, tel qu’il s’affiche sous l’onglet Vue d’ensemble de votre application Azure AD.The name of your service principal is the Display name of your Azure AD app, as it appears in your Azure AD app's overview tab.

    • Le groupe de sécurité qui comprend votre principal de service.The security group that includes your service principal.

  3. Dans le menu déroulant, sélectionnez Membre ou Administrateur.From the drop-down menu, select Member or Admin.

  4. Sélectionnez Ajouter.Select Add.

Ajout d’un principal du service aux membres d’un espace de travail avec PowerShellAdd a service principal as a workspace member using PowerShell

Cette section comprend un exemple de script permettant d’ajouter un principal de service aux membres d’un espace de travail avec PowerShell.This section includes a sample script to add a service principal as a workspace member using PowerShell.

Login-PowerBI

# Service Principal Object ID for the created Service Principal
$SPObjectId = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

$pbiWorkspace = Get-PowerBIWorkspace -Name "YourWorkspaceName"

Add-PowerBIWorkspaceUser -Id $pbiWorkspace.Id -AccessRight Member -PrincipalType App -Identifier $SPObjectId 

Ajout d’un groupe de sécurité aux membres d’un espace de travail avec PowerShellAdd a security group as a workspace member using PowerShell

Cette section comprend un exemple de script permettant d’ajouter un groupe de sécurité aux membres d’un espace de travail avec PowerShell.This section includes a sample script to add a security group as a workspace member using PowerShell.

Login-PowerBI

# Security Group Object ID for the created Security Group
$SGObjectId = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

$pbiWorkspace = Get-PowerBIWorkspace -Name "YourWorkspaceName"

Add-PowerBIWorkspaceUser -Id $pbiWorkspace.Id -AccessRight Member -PrincipalType Group -Identifier $SGObjectId 

Étape 5 : incorporer votre contenuStep 5 - Embed your content

Vous pouvez incorporer votre contenu dans un exemple d’application ou dans votre propre application.You can embed your content within a sample application, or within your own application.

Une fois votre contenu incorporé, vous êtes prêt à passer à la production.Once your content is embedded, you're ready to move to production.

Notes

Pour sécuriser votre contenu à l’aide d’un certificat, suivez les étapes décrites dans Incorporer du contenu Power BI avec un principal de service et un certificat.To secure your content using a certificate, follow the steps described in Embed Power BI content with service principal and a certificate.

Considérations et limitationsConsiderations and limitations

  • Un principal de service ne fonctionne qu’avec les nouveaux espaces de travail.Service principal only works with new workspaces.
  • Mon espace de travail n’est pas pris en charge lors de l’utilisation d’un principal de service.My Workspace isn't supported when using service principal.
  • Une capacité est nécessaire pour passer en production.A capacity is required when moving to production.
  • Vous ne pouvez pas vous connecter au portail Power BI avec un principal de service.You can't sign into the Power BI portal using service principal.
  • Vous devez disposer de droits d’administrateur Power BI pour activer un principal de service dans les paramètres du développeur du portail d’administration Power BI.Power BI admin rights are required to enable service principal in developer settings within the Power BI admin portal.
  • Les applications incorporées pour votre organisation ne peuvent pas utiliser un principal de service.Embed for your organization applications can't use service principal.
  • La gestion de flux de données n’est pas prise en charge.Dataflows management is not supported.
  • Le principal de service ne prend actuellement pas en charge aucune API administrateur.Service principal currently does not support any admin APIs.
  • Quand vous utilisez un principal de service avec une source de données Azure Analysis Services, le principal de service doit lui-même disposer d’autorisations d’instance 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. L’utilisation d’un groupe de sécurité qui contient le principal du service à cet effet ne fonctionne pas.Using a security group that contains the service principal for this purpose, doesn't work.

Étapes suivantesNext steps