Incorporer du contenu Power BI avec un principal de service et un secret d’application
Le principal de service est une méthode d’authentification qui peut être utilisée pour permettre l’accès d’une application Microsoft Entra à des API ou un contenu de service Power BI.
Lorsque vous créez une application Microsoft Entra, un objet principal de service est créé. L’objet principal de service, également connu sous le nom de principal de service, permet à Microsoft Entra ID d’authentifier votre application. Une fois authentifiée, l’application peut accéder aux ressources du locataire Microsoft Entra.
Pour s’authentifier, le principal de service utilise l’ID d’application de l’application Microsoft Entra et l’un des éléments suivants :
- Un certificat
- Un secret d’application
Cet article décrit l’authentification du principal de service à l’aide d’unID d’application et d’un Secret d’application.
Notes
Nous vous recommandons de sécuriser vos services de back-end en utilisant des certificats au lieu de clés secrètes.
- Découvrez plus d’informations sur l’obtention de jetons d’accès auprès de Microsoft Entra ID en utilisant des clés secrètes ou des certificats.
- Pour sécuriser votre solution à l’aide d’un certificat, suivez les instructions de cet article, puis suivez les étapes décrites dans Incorporer du contenu Power BI avec un principal de service et un certificat.
Méthode
Pour utiliser un principal de service et un ID d’application pour l’analytique incorporée, procédez comme suit. Les sections suivantes décrivent ces étapes en détail.
Créez une application Microsoft Entra.
- Créez un secret pour votre application Microsoft Entra.
- Obtenez l’ID d’application et le Secret d’application de l’application.
Notes
Ces étapes sont décrites dans l’étape 1. Pour plus d’informations sur la création d’une application Microsoft Entra, consultez Créer une application Microsoft Entra.
Créez un groupe de sécurité Microsoft Entra.
Activez les paramètres d’administrateur de service Power BI.
Ajoutez le principal de service à votre espace de travail.
Incorporez votre contenu.
Important
Une application Microsoft Entra ne vous oblige pas à configurer des autorisations déléguées ou des autorisations d’application dans le portail Azure quand elle a été créée pour un principal de service. Lorsque vous créez une application Microsoft Entra pour qu’un principal de service accède à l’API REST Power BI, nous vous recommandons d’éviter d’ajouter des autorisations. Elles ne sont jamais utilisées et peuvent provoquer des erreurs difficiles à résoudre.
Étape 1 : Créer une application Microsoft Entra
Créez une application Microsoft Entra à l’aide de l’une des méthodes suivantes :
Créer une application Microsoft Entra sur le portail Azure
Connectez-vous au portail Azure.
Recherchez et sélectionnez Inscriptions d'applications.
Sélectionnez Nouvelle inscription.
Entrez les informations obligatoires :
- Nom : entrez un nom pour votre application.
- Types de comptes pris en charge : sélectionnez les types de comptes pris en charge.
- (facultatif) URI de redirection : entrez un URI si nécessaire.
Sélectionnez Inscription.
Une votre application inscrite, l’ID d’application est disponible sous l’onglet Vue d’ensemble. Copiez et enregistrez l’ID de l’application pour une future utilisation.
Cliquez sur Certificats et secrets.
Sélectionnez Nouveau secret client.
Dans la fenêtre Ajouter un secret client, entrez une description, spécifiez à quel moment vous souhaitez que le secret client expire, puis sélectionnez Ajouter.
Copiez et enregistrez la valeur du secret client.
Remarque
Une fois que vous avez quitté cette fenêtre, la valeur secret client est masquée et vous ne pouvez ni l’afficher ni la copier à nouveau.
Créer une application Microsoft Entra à l’aide de PowerShell
L’exemple de script PowerShell suivant crée une application Microsoft Entra et un principal de service. Avant d’exécuter ce script :
- Installer la dernière version de PowerShell.
- Installer le Kit de développement logiciel (SDK) Microsoft Graph PowerShell.
Une fois le script exécuté, notez les informations suivantes dans la sortie du script :
- ID client de la nouvelle application
- ID d’objet du nouveau principal de service
- Valeur du secret du principal de service
# Sign in as a user who's allowed to create an app.
Connect-MgGraph -Scopes "Application.ReadWrite.All"
# Create a new Azure AD web application.
$web = @{
RedirectUris = "https://localhost:44322"
HomePageUrl = "https://localhost:44322"
}
$params = @{
DisplayName = "myAzureADApp"
Web = $($web)
}
$app = New-MgApplication @params
Write-Host "Client ID of new app: " $($app.AppId)
# Create a service principal.
$ServicePrincipalID=@{
"AppId" = $($app.AppId)
}
$sp = New-MgServicePrincipal -BodyParameter $($ServicePrincipalId)
Write-Host "Object ID of new service principal: " $($sp.Id)
# Create a key for the service principal.
$credential = Add-MgServicePrincipalPassword -ServicePrincipalId $($sp.Id)
Write-Host "Credential of new service principal: " $($credential.SecretText)
Étape 2 : Créer un groupe de sécurité Microsoft Entra
Votre principal de service n’a accès à aucune de vos API ni au contenu Power BI. Pour donner l’accès au principal de service, créez un groupe de sécurité dans Microsoft Entra ID. Ajoutez ensuite le principal de service que vous avez créé à ce groupe de sécurité.
Notes
Si vous souhaitez activer l’accès au principal de service pour toute l’organisation, ignorez cette étape.
Il existe deux façons de créer un groupe de sécurité Microsoft Entra :
Créer un groupe de sécurité manuellement
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.
Créer un groupe de sécurité à l’aide de PowerShell
L’exemple de script suivant crée un nouveau groupe de sécurité. Il ajoute également le principal de service que vous avez créé précédemment au nouveau groupe de sécurité.
- Avant d’exécuter le script, remplacez
<app-client-ID>
par l’ID client que vous avez enregistré précédemment pour votre nouvelle application. - Après avoir exécuté le script, notez l’ID d’objet du nouveau groupe de sécurité, que vous pouvez trouver dans la sortie du script.
# Sign in as an admin.
Connect-MgGraph -Scopes "Application.ReadWrite.All"
# Get the service principal that you created earlier.
$servicePrincipal = Get-MgServicePrincipal -Filter "AppId eq '<app-client-ID>'"
# Create an Azure AD security group.
$group = New-MgGroup -DisplayName "securitygroup1" -SecurityEnabled -MailEnabled:$False -MailNickName "notSet"
Write-Host "Object ID of new security group: " $($group.Id)
# Add the service principal to the group.
New-MgGroupMember -GroupId $($group.Id) -DirectoryObjectId $($servicePrincipal.Id)
Étape 3 : activer les paramètres d’administrateur de service Power BI
Pour qu’une application Microsoft Entra accède au contenu et aux API de Power BI, l’administrateur Power BI doit activer les paramètres suivants :
- Incorporer du contenu dans les applications
- Autoriser les principaux de service à utiliser les API Power BI
Dans le portail d’administration Power BI, accédez à Paramètres du client, puis faites défiler jusqu’à Paramètres de développeur.
Activez Incorporer du contenu dans les applications pour l’ensemble de l’organisation ou pour le groupe de sécurité spécifique que vous avez créé dans Microsoft Entra ID.
Activez Autoriser les principaux de service à utiliser les API Power BI pour l’ensemble de l’organisation ou pour le groupe de sécurité spécifique que vous avez créé dans Microsoft Entra ID.
Important
Les principaux de service ont accès à tous les paramètres d’abonné pour lesquels ils sont activés. En fonction de vos paramètres d’administrateur, cela comprend des groupes de sécurité spécifiques ou toute l’organisation.
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. 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.
Étape 4 - Ajouter le principal de service à votre espace de travail
Votre application Microsoft Entra peut accéder à vos rapports, vos tableaux de bord et vos modèles sémantiques Power BI uniquement lorsqu’elle a accès à votre espace de travail Power BI. Vous fournissez cet accès en ajoutant le principal de service de l’application ou son groupe de sécurité à votre espace de travail en tant que membre ou administrateur.
Il existe trois façons d’ajouter un principal de service ou son groupe de sécurité à votre espace de travail :
Ajouter manuellement un principal de service ou un groupe de sécurité
Dans le service Power BI, faites défiler jusqu’à l’espace de travail pour lequel vous souhaitez activer l’accès. Dans son menu Plus, sélectionnez Accès à l’espace de travail.
Dans le volet Accès, sous Ajouter des administrateurs, des membres ou des contributeurs, ajoutez l’un des éléments suivants :
- Votre principal de service. Le nom de votre principal de service correspond au nom d’affichage de votre application Microsoft Entra, tel qu’il s’affiche sous l’onglet Vue d’ensemble de votre application Microsoft Entra.
- Le groupe de sécurité qui comprend votre principal de service.
Dans le menu déroulant, sélectionnez Membre ou Administrateur.
Sélectionnez Ajouter.
Ajouter un principal de service ou un groupe de sécurité à l’aide de PowerShell
Les sections suivantes fournissent des exemples de scripts PowerShell pour l’ajout d’un principal de service et d’un groupe de sécurité à un espace de travail Power BI en tant que membre.
Ajouter un principal du service en tant que membre de l’espace de travail à l’aide de PowerShell
Le script suivant ajoute un principal de service en tant que membre de l’espace de travail. Avant d’exécuter le script :
- Remplacez
<service-principal-object-ID>
par l’ID d’objet que vous avez enregistré précédemment pour votre nouveau principal de service. - Remplacez
<workspace-name>
par le nom de l’espace de travail auquel vous souhaitez que le principal de service ait accès.
# Sign in to Power BI.
Login-PowerBI
# Set up the service principal ID.
$SPObjectID = "<service-principal-object-ID>"
# Get the workspace.
$pbiWorkspace = Get-PowerBIWorkspace -Filter "name eq '<workspace-name>'"
# Add the service principal to the workspace.
Add-PowerBIWorkspaceUser -Id $($pbiWorkspace.Id) -AccessRight Member -PrincipalType App -Identifier $($SPObjectID)
Ajouter un groupe de sécurité en tant que membre de l’espace de travail à l’aide de PowerShell
Le script suivant ajoute un groupe de sécurité en tant que membre de l’espace de travail. Avant d’exécuter le script :
- Remplacez
<security-group-object-ID>
par l’ID d’objet que vous avez enregistré précédemment pour votre nouveau groupe de sécurité. - Remplacez
<workspace-name>
par le nom de l’espace de travail auquel vous souhaitez que le groupe de sécurité ait accès.
# Sign in to Power BI.
Login-PowerBI
# Set up the security group object ID.
$SGObjectID = "<security-group-object-ID>"
# Get the workspace.
$pbiWorkspace = Get-PowerBIWorkspace -Filter "name eq '<workspace-name>'"
# Add the security group to the workspace.
Add-PowerBIWorkspaceUser -Id $($pbiWorkspace.Id) -AccessRight Member -PrincipalType Group -Identifier $($SGObjectID)
Étape 5 : incorporer votre contenu
Vous pouvez incorporer votre contenu dans un exemple d’application ou dans votre propre application.
Une fois votre contenu incorporé, vous êtes prêt à passer à la 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.
Observations et limitations
- Mon espace de travail n’est pas pris en charge lors de l’utilisation d’un principal de service.
- Une capacité est nécessaire pour passer en production.
- Vous ne pouvez pas vous connecter au portail Power BI en utilisant un principal de service.
- 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.
- Les applications incorporées pour votre organisation ne peuvent pas utiliser un principal de service.
- La gestion de flux de données n’est pas prise en charge.
- Le principal du service prend uniquement en charge certaines API d’administration en lecture seule. Pour activer la prise en charge du principal de service pour les API d’administration en lecture seule, vous devez activer les paramètres d’administration du service Power BI dans votre locataire. Pour plus d’informations, consultez Activer l’authentification du principal de service pour les API d’administration en lecture seule.
- Quand vous utilisez un principal de service avec une source de données Azure Analysis Services, le principal de service lui-même doit disposer d’autorisations d’instance Azure Analysis Services. Le fait d’utiliser un groupe de sécurité qui contient le principal de service à cet effet ne fonctionne pas.