U dobrodošlom, iako dugo očekivanom razvoju, Microsoft je konačno dodao podršku za autentifikaciju zasnovanu na sertifikatima (ili CBA) modulu SharePoint Online PowerShell. Vijest je objavljena kao dio poruke centra za poruke MC1188595, koja nažalost nije dovoljno detaljna. Dozvolite mi da popunim praznine umjesto vas.
Da pojasnimo, govorimo o podršci za neinteraktivnu autentifikaciju putem takozvanog toka akreditiva klijenta, protiv dobrog starog SharePoint Online resursa. To je puna usta, znam, pa hajde da malo proširimo. Do sada je jedini način povezivanja putem SharePoint Online PowerShell modula bio korištenje bilo kojeg (administratorskog) korisničkog računa, s odgovarajućim metodama provjere autentičnosti. Sa pojavom Secure Future Initiative i rezultirajućim promjenama u servisu, metode kao što je prosljeđivanje korisničkog imena/lozinke postaju sve ograničenije ili potpuno blokirane.
Ovo zauzvrat utiče na sve scenarije automatizacije. Microsoft već dugo podržava neinteraktivne OAuth metode koje su usmjerene na aplikacije, kao što je tok akreditiva klijenta. Iz bilo kojih razloga, SPO PowerShell modul ih je sporo usvojio. Doduše, dostupne su alternative zasnovane na PnP-u i grafu, iako imaju svoje probleme, pri čemu je prva otvorena koda i stoga nije zvanično podržana, dok druga trenutno nudi podršku samo za vrlo ograničen skup operacija.
Imajući gore navedeno na umu, dodavanje podrške za autentifikaciju zasnovanu na certifikatima za SPO PowerShell modul je veliki korak koji osigurava da će kupci i partneri i dalje moći koristiti modul i sve operacije koje podržava u okviru svojih rješenja na podržan način.
Bez daljeg odlaganja, vrijeme je da vidimo ovo na djelu. Prvo ćemo se morati pozabaviti nekim od preduvjeta, počevši od samog SPO modula – potrebno je da imate najnoviju verziju da biste iskoristili parametre potrebne za korištenje provjere autentičnosti zasnovane na certifikatima. Bilješke o promjenama za modul nisu objavljene eksterno, a poruka centra za poruke također ne navodi koja je verzija potrebna, tako da ćemo samo pretpostaviti da vam je potrebna najnovija. U vrijeme pisanja, ovo je 16.0.26712.12000.
Stoga, kao prvi korak, obavezno ažurirajte svoju verziju SPO modula ili instalirajte najnoviju verziju ako je potrebno. Ovdje treba napomenuti važnu napomenu – modul to još uvijek radi ne podržavaju bilo koje od „osnovnih“ izdanja PowerShell-a, tako da ga ne možete koristiti sa PowerShell-om 7+. Umjesto toga je potreban Windows PowerShell. Za više detalja o ovome možete pogledati zvaničnu dokumentaciju. I, kao što je gore spomenuto, imajte na umu da zvanična dokumentacija trenutno ne opisuje CBA metodu, ali se nadamo da će za nekoliko dana.
Zatim, moramo se pobrinuti za konfiguraciju vezanu za autentifikaciju. Budući da ćemo koristiti tok akreditiva klijenta, moramo imati registriranu aplikaciju i konfigurirati željeni certifikat pod Certifikati i tajne stranica. Pratimo potpuno iste korake kao kada konfigurišemo CBA za bilo koju drugu aplikaciju, tako da neću dodavati snimke ekrana i slično ovdje. Ako su vam potrebni, ovaj članak pokriva glavne korake procesa. Jedina razlika je u pogledu potrebnih dozvola. Za naše potrebe trebamo Sites.FullControl.All dozvola aplikacije iz SharePoint resursa. To NIJE Grafički resurs, iako nudi potpuno isti opseg!
Ako dodajete potrebne dozvole putem Manifest metode, vrijednost za potrebni resurs je 00000003-0000-0ff1-ce00-000000000000dok je ID dozvole 678536fe-1083-478a-9c59-b99265e6b0d3. Ne zaboravite dati pristanak administratora jer su to ipak dozvole aplikacije.
I uz to smo spremni da se povežemo sa SPO putem autentifikacije zasnovane na sertifikatima. Slično CBA implementaciji unutar Exchange Online PowerShell modula, možemo direktno proslijediti objekt certifikata, pokazati na .pfx datoteku pohranjenu na lokalnom uređaju ili proslijediti vrijednost sličice certifikata pohranjene u ličnom spremištu trenutnog korisnika. Također ćemo morati dati ID našeg objekta aplikacije kao i ID stanara. Evo nekoliko primjera:
#Connect to SPO via CBA (cert thumbprint)
Connect-SPOService -Url https://tenant-admin.sharepoint.com -TenantId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ApplicationId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -CertificateThumbprint 01CBF50A70FABCDE714870E4D123457ABE90812C
#Connect to SPO via CBA (.pfx file)
Connect-SPOService -Url https://tenant-admin.sharepoint.com -TenantId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ClientId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -CertificatePath .\Certificates\2025.pfx -CertificatePassword ("P@ss123#" | ConvertTo-SecureString -AsPlainText -Force)
Kada koristite –CertificateThumbprint provjerite da li je certifikat pohranjen unutar lične memorije trenutnog korisnika i da je pristup privatnom ključu dozvoljen. Neke dodatne napomene i primjere možete pronaći na Connect-SPOService cmdlet stranice dokumentacije. Kao bonus savjet, možete koristiti – ID aplikacije kao pseudonim za – ID klijenta parametar.
U ovom trenutku trebali biste biti povezani sa SPO uslugom vaše organizacije i biti u mogućnosti da izvršite (većinu) PowerShell cmdleta. Bilješka u postu MC1188595 spominje da postoje neki poznati problemi s CBA podrškom, ne ulazeći u korisne detalje. S obzirom da trenutno imamo 344 cmdleta na raspolaganju, očito se nisam potrudio da ih sve testiram.
Očekujemo da će većina scenarija raditi s autentifikacijom samo za aplikaciju. Međutim, mogu postojati rijetki slučajevi u kojima je API-ju potreban eksplicitni korisnički token iz sigurnosnih razloga. U takvim slučajevima, administratori stanara bi trebali koristiti interaktivne tokove s administratorskim/korisničkim vjerodajnicama. Slobodno nas kontaktirajte ako je potrebno.
Kako više informacija bude dostupno, pokušat ću ažurirati članak, barem dok se ne pojavi zvanična dokumentacija.
Ukratko, SharePoint Online PowerShell modul konačno dodaje podršku za autentifikaciju zasnovanu na sertifikatima. CBA radi slično kao i svaki drugi modul povezan s Microsoft 365, bez posebnih zahtjeva na strani resursa. Što se tiče stvarne provjere autentičnosti, možete proslijediti sam certifikat, referencirati ga otiskom palca ili koristiti .pfx datoteku. Nije dodana podrška za prosljeđivanje tajne klijenta, niti za prosljeđivanje tokena za pristup. Ipak, ovo je dobrodošao dodatak koji bi trebao pomoći u omogućavanju nekih scenarija automatizacije.