Digikuun blogissa tänään:

Miten Power Automatella tehdään satunnainen salasana?

Kirjoittaja:

Joskus vastaan voi tulla tilanne jossa jokin prosessi, kuten vaikkapa käyttäjätunnuksen luonti, vaatii satunnaisen salasanan luomista. Tapojahan tähän on monia. Jos tätä prosessia sattuu pyörittämään Power Automatella niin homma luonnistuu myös ko. tuotteella, ilman koodaustaitoa tai ulkoisia kikkareita! 

Power Automatellakin tämän saman tempun voi tehdä useammallakin eri tavalla. Tässä nyt omasta mielestäni selkein tapa. 

Salasana jonka haluan luoda: 

  • Pituus 8-merkkiä 
  • Ensimmäinen merkki on Iso Aakkonen 
  • Seuraavat 3 merkkiä ovat pieniä aakkosia 
  • 4 viimeistä merkkiä ovat numeroita 

Alustetaan muuttuja johon tallennetaan lopputuotos eli salasana: 

Alustetaan taulukkomuuttuja johon laitetaan kaikki ne merkit joita salasanassa halutaan käyttää. Numeroita ei tässä tarvitse esitellä, ne saadaan mukaan myöhemmin. 

Eli [ ] -merkkien sisään esitellään vaikkapa kaikki aakkoset isoilla ja pienillä kirjaimilla. 

Alustetaan Pituus-muuttuja. Tätä tullaan käyttämään myöhemmin: 

Seuraavaksi luodaan silmukka joka toistetaan niin monta kertaa kuin mitä salasanan pituuden halutaan olevan, tässä tapauksessa 8-merkkiä pitkä: 

Kuvan ehto aukikirjoitettuna: 

length(variables(‘Salasana’)) 

Silmukan sisälle laitetaan SWITCH-toiminto jossa sitten itse salasana rakennellaan: 

Puretaanpa auki tämä himmeli. 

Luodaan Switch-toiminto “Pituus”-muuttujaan vasten jonka arvo alkuvaiheessa on 0.

Ensimmäisellä kerralla kun silmukkaan tullaan, mennään Switch:ssä haaraan “Pituus = 0” 

Ensimmäiseksi haetaan “Merkistö”-taulukosta satunnainen merkki 25:stä ensimmäisestä merkistä (25 ensimmäistä merkkiä ovat ISOJA AAKKOSIA taulukossani). Eli haluan että salasana alkaa isolla aakkosella. Tallennetaan tämä satunnainen merkki “Salasana”-muuttujaan. 

Aukikirjoitettuna kuvan funktio: 

variables(‘Merkisto’)[rand(0,25)] 

Seuraavaksi lasketaan ja tallennetaan “Pituus”-muuttujaan “Salasana”-muuttujan sen hetkinen pituus. Tämä sama toiminto tehdään Switch:n jokaisessa haarassa. 

Aukikirjoitettuna kuvan funktio: 

length(variables(‘Salasana’)) 

Kokonaispituus salasanalle tässä vaiheessa 1. 

Tämän jälkeen silmukka lähtee taas rullaamaan ja seuraavaksi Switch-toiminnossa osutaan Default-haaraan koska muut haarat eivät tällä kierroksella osu. Tähän default haaraan osutaan siis aina silloin kun mikään muu Switch:n haaroista ei osu. 

Ensimmäiseksi haetaan “Merkistö”-taulukosta satunnainen merkki alkaen merkistä 26. ja loppuen viimeiseen merkkiin eli 51. (Taulukon elementit 26-51 ovat pieniä aakkosia taulukossani). Haluan siis että seuraavat merkit salasanassani ovat pieniä aakkosia. 

Aukikirjoitettuna kuvan funktio: 

variables(‘Merkisto’)[rand(26,51)] 

Seuraavaksi lasketaan ja tallennetaan “Pituus”-muuttujaan “Salasana”-muuttujan sen hetkinen pituus joka on tässä vaiheessa on 2-merkkiä. Funktio on aivan sama kuin mitä Switch:n 0-haarassa. 

Kokonaispituus salasanalle tässä vaiheessa 2. 

Tähän default-haaraan osutaankin sitten silmukan seuraavat muutamat kierrokset kunnes tulee kierroksen 4 vuoro. 

Ensimmäiseksi arvotaan numerojen 1000 ja 9999 väliltä jokin satunnainen numero ja tallennetaan se “Salasana”-muuttujaan. 

Aukikirjoitettuna kuvan funktio: 

rand(1000,9999) 

Seuraavaksi lasketaan ja tallennetaan “Pituus”-muuttujaan “Salasana”-muuttujan sen hetkinen pituus. 

Kokonaispituus salasanalle tässä vaiheessa 8. 

  • 1x Iso Aakkonen 
  • 3x pientä aakkosta 
  • 4x numeroita 

Salasana on nyt saavuttanut halutun 8-merkkisen pituuden ja silmukasta voidaan poistua. 

Tämän jälkeen luotua salasanaa voi sitten laittaa eteenpäin mihin haluaa käyttämällä “Salasana”-muuttujaa 🙂 

Tätä samaa logiikkaa voi sitten muokkailla haluamallaan tavalla. Toki esim. 100-merkkisen salasanan luominen tällä menetelmällä voi käydä melko työlääksi. Jos kuitenkin tarve on vaikka luoda ns. aloitussalasana uudelle tunnukselle, niin tämä on varsin toimiva tapa. 

Kaivoin aikanaan Mark Stokesin blogista tämän tavan luoda salasanoja Power Automatella. 
Linkki hänen kirjoitukseensa: https://medium.com/@mark_stokes/generating-pseudo-random-passwords-in-microsoft-flow-d7a9c232abe5.

Ja on kyllä palvellut hyvin tämä Flow allekirjoittanutta! 

Pilviguru Jasu Snell