Blog

Jak zlepšit interní procesy technologií Power Apps?

Řízení přístupů do aplikace PowerApps na základě členství ve skupině Azure Active Directory

21.08.2020

Jelikož aplikace vyžuduje logování událostí, pro zpětný report, potřebujeme jednoznačnou identifikaci uživatele i ve chvíli kdy by byl z Azure Active Directory odstraněn. Z tohoto důvodu vedeme vlastní seznam uživatelů s jejich ID, včetně úrovně oprávnění. To však přinášelo další kroky se zakládáním nových uživatelů při jejich nástupu do firmy.

Skupiny v Azure Active Directory

Ať už synchronizujete Azure Active Directory proti lokální Active Directory nebo využíváte jen cloud a AAD, má každá skupina jedinečné Id. Nejprve tedy založíme potřebné skupiny v AAD pro přístup a požadovanou úroveň oprávnění do aplikace, např: „AAD Tester“. Dále do této skupiny zařadíme uživatele, kteří mají mít tuto úroveň oprávnění. Nyní zjistíme Id naší skupiny, které použije později v aplikaci.

Automatické založení uživatele a nastavavení oprávnění v Power Apps

Na startu aplikace nejprve načteme seznam uživatelé v naší skupině „AAD Tester“ do kolekce:

ClearCollect(
     col_GroupOfBackOffice,
     Office365Groups.ListGroupMembers(„9a8e30fc-7da3-d41d-52bb-d0cbcb947319“).value
);

V dalším kroku zkontrolujeme zda uživatelův účet je v dané skupině. Pokud je v dané skupině, zkontrolujeme zda je již založen v našem seznamu. Pokud není v seznamu založen, založíme jeho účet a přiřadíme mu potřebná oprávnění:

If(
     MyProfileMail in col_GroupOfTester.mail,
     If(
         Not(
             MyProfileName in Filter(
                 col_People,
                 ppl_Role = „Tester“
             ).ppl_DisplayName
         ),
         Collect(
             spl_People,
             {
                 ppl_Person: {
                     ‚@odata.type‘: „#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser“,
                     Claims: „i:0#.f|membership|“ & Office365Users.MyProfile().Mail,
                     Department: „“,
                     DisplayName: Office365Users.MyProfile().DisplayName,
                     Email: Office365Users.MyProfile().Mail,
                     JobTitle: Office365Users.MyProfile().JobTitle,
                     Picture: „.“
                 },
                 ppl_DisplayName: Office365Users.MyProfile().DisplayName,
                 ppl_Role: „Tester“
             }
         );
         Collect(
             col_People,
             Last(spl_People)
         );
     )
);

Závěr

Takto jednoduše, můžeme na základě šlenství ve skupinách v Azure Active Directory řídit úrovně oprávnění v aplikaci Power Apps, aniž by musel někdo ručně zakládat uživatele v SharePoint seznamu.

Zaujali jsme Vás?
Vše Vám předvedeme a vysvětlíme

Prostě nám napište