Mikäli tulet Office 365-maailmasta (eikä Dynamics 365 ole sinulle tuttu), saattaa niinkin yksinkertainen asia kuin Dataverseä käyttävän (Model-driven) Power Appsin jakaminen loppukäyttäjille tuntua aluksi hengästyttävältä tehtävältä.

On siis aika katsoa miten tämä tehdään. Lopulta kaikki riippuu ratkaisun ja sen käyttöoikeusmallin monimutkaisuudesta. Mutta eiköhän tässä yksinkertaisessakin esimerkissä ole ensipuraisuksi aivan riittävästi ihmeteltävää.

Esimerkki – Kirjojen ylläpitosovellus

Tehdään omaan Power Platform ympäristöönsä (Books Dev) ratkaisu, jonka avulla ylläpidetään kirjojen tietoja. Ratkaisu sisältää kaksi taulua.

  • Kirjat (Book)
  • Kirjatyypit (Book category)

Tauluihin nojautuva model-driven apps näyttää tältä.

Ratkaisulla on kahdenlaisia käyttäjiä

  • Peruskäyttäjät, jotka voivat lisätä, poistaa ja muokata kirjojen tietoja
  • Adminit, jotka voivat edellisen lisäksi ylläpitää kirjatyyppejä

Miten jaamme sovelluksen ja annamme siihen käyttöoikeudet peruskäyttäjille?

Katsotaan.

1. Pääsy ympäristöön

Käyttöoikeuksia voivat saada ainoastaan ympäristön käyttäjät. Ympäristön käyttäjiä taas ovat kaikki tenantin käyttäjät

  1. joilla on Dataversen käyttöön oikeuttava lisenssi (Trial riittää) ja
  2. jotka ovat ympäristöä vastaavan AAD-ryhmän jäseniä

Ympäristöä vastaava AAD-ryhmä määritellään Power Platform admin centerissä. Se on tärkeää asettaa paikalleen ympäristöä luodessa. Muussa tapauksessa kaikki tenantin lisensoidut käyttäjät valuvat ympäristöön käyttäjiksi. Sitä et halua.

Ympäristömme ja sen sisällä oleva ratkaisu näyttää nyt tältä. Ympäristön käyttäjinä ovat kaikki Books_Dev_Users-ryhmän jäsenet. Mutta heillä ei ole vielä oikeuksia käyttää luomaamme sovellusta, saati lukea Book-taulun tietoja.

2. Käyttöoikeusrooli (Security role)

Käyttöoikeusroolien avulla käyttäjät saavat (muun muassa) oikeuden käyttää eri taulujen tietoja.

Tarvitsemme siis oman käyttöoikeusroolin. Tehdään kopio ns. perus roolista (Basic User) ja annetaan sille nimeksi Book User.

Annetaan roolille kaikki oikeudet (Luku, lisäys, muokkaus, poisto, jakaminen jne) Book-taulun kaikkiin riveihin. Lisäksi rooli saa lukea kaikki Book Category -taulun rivit. Kaikki tämä organisaatiotasolla (Organization) eli vihreä täysi pallura. Annamme siis valitsemamme oikeudet kaikkiin taulun riveihin.

Näin meillä on tarvittava käyttöoikeusrooli luotuna.

Se tulee vielä jotenkin asettaa ratkaisun käyttäjille.

Voisimme käydä laittamassa roolin käsin kullekin ratkaisun käyttäjälle.

Mutta eihän siitä nyt tule mitään jos näitä yksitellen laitetaan.

3. Sovelluksen jakaminen AAD-ryhmälle

Luodaankin sovelluksen käyttäjille oma AAD-ryhmä (Books_Users).

Jaetaan (Share) tekemämme model-driven apps luodulle ryhmälle.

Ensimmäisenä valitaan vasemmalta ylhäältä App, ja määritetään millä käyttoikeusrooleilla on pääsy sovellukseen (Book User).

Tämän jälkeen valitaan kenelle sovellus jaetaan. Poimitaan haulla AAD-ryhmä Books_Users. Valinnan jälkeen määritellään mitä käyttöoikeusryhmiä ryhmän jäsenille annetaan (Book User).

Näin olemme kytkeneet Book_Users-ryhmän yhteen käyttöoikeusroolin Book User kanssa. Samalla tulimme jakaneeksi itse sovelluksen ko käyttöoikeusrooliille.

Kuva yksinkertaistaa asioita hieman. Mikäli Books_Users-ryhmän käyttäjä ei kuulu Books_Dev_Users-ryhmään, ei hän saa sovellusta saatikka taulujen tietoja auki. Sillä hän ei ole ympäristön käyttäjä laisinkaan.

Lisäksi kun sovellus jaettiin AAD-ryhmälle, luotiin taustalla automaattisesti AAD-ryhmään perustuva tiimi (Books_Users).

Eli todellisuudessa tilanne näyttää tältä.

AAD-ryhmään perustuvat tiimit

AAD-ryhmään perustuvat tiimit ovat käteviä ja haluamme joissain tilanteissa luoda niitä myös itse.

1. Tiimin luominen

Luodaan ympäristöömme uusi tiimin (Team).

Tiimi on tyypiltään AAD Security Group. Mäppäyksen tehdäksesi tulee sinun tietää ko. ryhmän Object Id.

Nyt kokonaisuus näyttääkin tältä (emme ole vielä jakaneet sovellusta). Meillä on Power Platformilla tehty ratkaisu. Ympäristömme käyttäjät rajataan AAD-ryhmän (Books_Dev_Users) avulla. Lisäksi meillä on tiimi, johon kuuluu AAD-ryhmän Books_Users jäsenet.

2. Tiimin kytkeminen käyttöoikeusrooliin

Tiimi tulee kytkeä haluttuun käyttöoikeusrooliin. Tämä tehdään käyttöoikeusroolin asetuksista Add people -painikkeesta.

Huomaa, että voit lisätä käyttöoikeusrooliin (Dataversen) käyttäjiä, tiimejä ja organisaatioita. Et AAD-ryhmiä.

Hyvältä näyttää.

3. Sovelluksen jakaminen käyttöoikeusroolille

Lopuksi jaamme sovelluksen jako-näytöllä sovelluksen (Books) haluamallemme käyttöoikeusryhmälle (Books User).

Ja kuin taikaiskusta AAD-pohjainen tiimimme ilmestyy sovelluksen käyttäjäksi. Sillä tiimi on kytketty käyttöoikeusryhmään (Book User), jonka juuri kytkimme sovellukseemme.

Olemme valmiit. Käyttäjät pääsevät sovellukseen ja sen käyttämiin tauluihin kiinni tiimin ja siihen kytketyn käyttöoikeusroolin kautta.

Canvas Power Appsin jakaminen

Miten tämä toimii Canvas Power Apppseilla?

Tällöin jaat sovelluksen AAD-ryhmälle (Books_Users, kohta1) ja kerrot mitä käyttöoikeusryhmiä kyseiselle ryhmälle annetaan (Book User, kohta 2).

Taustalla luodaan jälleen AAD-ryhmää vastaava tiimi (jos sitä ei jo ole). Tiimiin kytketään valitut käyttöoikeusroolit, sekä jaettu sovellus.

Lopputulos on jälleen tämä.

Yhteenveto

Hienoa, jaksoit tänne asti!

Äkkiseltään tämä saattaa tuntua sekavalta. Muttei se ole. Muistat vain seuraavat

  • Sovelluksen käyttäjän tulee olla ympäristön käyttäjä
  • Sovelluksen käyttäjällä tulee olla tarvittavat oikeudet sovelluksen käyttämiin tietoihin (taulut ja niiden sisältö).
  • Sovellus tulee olla jaettuna käyttäjälle

Jottei tämä olisi liian helppoa, toimii kaikki toisin mikäli jakamasi Canvas Power Apps ei käytä tietolähteenään Dataverseä.

Dataversen ollessa tietolähteenä tarvitsee loppukäyttäjä myös lisenssin. Ja se onkin sitten jo toinen tarina se.