Home / Nieuws / Service Principals gebruiken om machtigingsproblemen in Power Automate Cloud Flows te voorkomen
16 februari 2023
Door: Marwin Hogeterp

Service Principals gebruiken om machtigingsproblemen in Power Automate Cloud Flows te voorkomen

Social media afbeelding voor een blog over Service Principals

Een cloudflow zonder problemen

Als je ooit aan Power Automate Cloud-flows gaat werken, weet je waarschijnlijk dat verbindingen en eigendomsrechten automatisch zijn ingesteld voor deze cloudflows. Dit zal niet direct een probleem zijn wanneer je werkt met een beheerdersaccount of als jouw gebruiker volledige beheerdersrechten heeft op een omgeving. Maar wat gebeurt er als jij of iemand anders die in het verleden cloudflows heeft gecreëerd, in het bedrijf waarvoor je werkt, verlaat? Waarschijnlijk verliest jouw gebruikersaccount na een tijdje de licenties en wordt het gedeactiveerd. Dit resulteert in fouten op de cloudflow, aangezien de verbinding en eigenaar van de cloudflow niet langer de juiste rechten hebben.

Om cloudflows te gebruiken zonder in de toekomst tegen deze problemen aan te lopen, moeten de cloudflows gebruik maken van Service Principals. Dit zijn Azure Apps, die kunnen (moeten) worden gebruikt als de connection reference van jouw cloudflow.

In deze blog ga ik niet uitleggen hoe je dit instelt. Ik ga uitleggen hoe je Service Principal- connection references in jouw flow gebruikt en hoe je dezelfde Service Principal kunt instellen als de eigenaar van de flow.

 

Maak jouw flow en voeg een service principal toe

De eerste stap die je moet doen, zodra jouw cloudflow is gebouwd, is het toevoegen van een Service Principal connection reference aan een van de Dataverse-acties in jouw cloudflow.

Klik hiervoor op de link ‘Connect with Service Principal’, wat resulteert in een nieuwe pagina waar de gegevens van de Azure App moeten worden ingevuld:

Maak een algemene connection reference

Zodra alle velden correct zijn ingevuld, wordt de connection reference gemaakt als een Service Principal. De volgende stap is het maken van een meer algemene connection reference die de tijdelijke aanduiding is voor alle Service Principal accounts in de DTAP-omgeving. Deze generieke connection reference shell moet van binnenuit in een oplossing worden gemaakt.

Dit is nodig om de connection reference over verschillende omgevingen (DTAP) te kunnen gebruiken binnen het releaseproces.

Open vanaf make.powerautomate.com de oplossing in de ontwikkelomgeving en druk op ‘New’ > ‘More’ > ‘Connection Reference’.

Binnen het quick create formulier kun je een duidelijke weergavenaam instellen (ik gebruik altijd ‘D365-SA-PA’ staat voor Dynamics 365, Service Account, Power Automate). Voor de connector wil ik een verbinding maken met Dataverse, dus ik selecteer ‘Microsoft Dataverse’ en selecteer het eerder aangemaakte Service Principal Account:

Stel de generieke connection reference in als connection reference op de cloudflow

Nu kan ik teruggaan naar mijn Power Automate en alle verbindingsreferenties voor alle Dataverse-acties wijzigen en de nieuw gemaakte ‘D365-SA-PA’ connection reference selecteren in de Dataverse-stap.

Zodra de connection references voor alle Dataverse-stappen zijn gewijzigd, moet de Power Automate flow opnieuw worden opgeslagen.

Bij het controleren van de Cloudflow kunnen we zien dat de connection reference op de juiste is ingesteld, maar de eigenaar is nog steeds niet gewijzigd:

Wijzig de eigenaar van een cloudflow in een Service Principal

Veel mensen vragen me nog steeds waarom ik de meeste aanpassingen graag doe via de oude Dynamics 365-interface. Dat komt omdat nog steeds sommige functionaliteiten alleen via de oude views kunnen worden uitgevoerd. Dit omvat ook het wijzigen van de eigenaar van een cloudstroom.

Om de eigenaar van een cloudflow te veranderen in een Service Principal, moeten we de oude geavanceerde zoekfunctie gebruiken en naar de cloudflow zoeken in de entiteit ‘Processes’.

Bij het zoeken moeten we alle standaardcriteria verwijderen en een aangepast criterium instellen op ‘Category’ is gelijk aan ‘Modern Flow’.

Na het indrukken van de knop ‘Results’ worden de resultaten gegeven en kan de cloudflow worden geselecteerd. Druk nu op de knop ‘Assign Processes’ en selecteer de Service Principal en druk op ‘Assign’

De cloudflow heeft nu de Service Principal ingesteld als eigenaar en als connection reference:

Update DTAP-omgevingen

De laatste stap in het proces is het updaten van de andere omgevingen.

Wanneer je de cloudflow-oplossing voor het eerst importeert naar een andere omgeving, moet je de ‘D365-PA-SA’-verbindingsreferentie één keer bijwerken naar de juiste Service Principal van die omgeving, de cloudflow inschakelen en het eigendom van de cloudflow nog een keer wijzigen. Nadat je dit op alle omgevingen hebt gedaan, zijn de cloudflows klaar voor gebruik en blijven ze werken de volgende keer dat je releases doet.

Het grootste voordeel is dat het nu niet meer uitmaakt wie je bedrijf verlaat, de cloudflows blijven werken!