U dobrodošlom, iako dugo očekivanom razvoju, Microsoft je konačno dodao podršku za autentifikaciju temeljenu na certifikatu (ili CBA) za SharePoint Online PowerShell modul. Vijest je objavljena u sklopu MC1188595 poruka središta za poruke, koja nažalost nije dovoljno detaljna. Dopustite mi da popunim praznine umjesto vas.
Da pojasnimo, govorimo o podršci za neinteraktivnu provjeru autentičnosti putem takozvanog tijeka vjerodajnica klijenta, protiv dobrog starog resursa SharePoint Online. To je puna usta, znam, pa proširimo malo. Do sada je jedini način povezivanja putem SharePoint Online PowerShell modula bilo korištenje bilo kojeg (administratorskog) korisničkog računa, s odgovarajućim metodama provjere autentičnosti. S pojavom Secure Future Initiative i rezultirajućim “očvršćavajućim” promjenama usluge, metode poput prosljeđivanja korisničkog imena/lozinke postaju sve ograničenije ili potpuno blokirane.
To zauzvrat ima učinak na sve scenarije automatizacije. Microsoft već dugo podržava neinteraktivne OAuth metode usmjerene na aplikacije, kao što je tijek vjerodajnica klijenta. Iz bilo kojih razloga SPO PowerShell modul ih je sporo usvojio. Doduše, dostupne su alternative temeljene na PnP i Graphu, iako dolaze sa svojim problemima, pri čemu je prva otvorenog koda i stoga nije službeno podržana, dok potonja trenutačno nudi podršku samo za vrlo ograničen skup operacija.
Imajući gore navedeno na umu, dodavanje podrške za autentifikaciju temeljenu na certifikatu za SPO PowerShell modul je veliki korak i korak koji osigurava da će kupci i partneri i dalje moći koristiti modul i sve operacije koje podržava unutar svojih rješenja na podržani način.
Bez daljnjeg odlaganja, vrijeme je da ovo vidite na djelu. Prvo ćemo se morati pozabaviti nekim od preduvjeta, počevši od samog SPO modula – morate biti na nedavnoj verziji kako biste iskoristili parametre potrebne za korištenje autentifikacije temeljene na certifikatu. Bilješke o izdanju promjena za modul nisu objavljene eksterno, a post centra za poruke također ne navodi koja je verzija potrebna, pa ćemo samo pretpostaviti da vam je potrebna najnovija. U vrijeme pisanja, ovo je 16.0.26712.12000.
Dakle, kao prvi korak, svakako ažurirajte svoju verziju SPO modula ili po potrebi instalirajte najnoviju verziju. Ovdje valja napomenuti važnu napomenu – modul to još uvijek čini ne podržavaju bilo koje od “osnovnih” izdanja PowerShell-a, tako da ga ne možete koristiti s PowerShell-om 7+. Umjesto toga, potreban je Windows PowerShell. Za dodatne pojedinosti o tome, možete se obratiti na službena dokumentacija. I, kao što je već spomenuto, imajte na umu da službena dokumentacija trenutno ne opisuje CBA metodu, ali nadamo se da će to učiniti za nekoliko dana.
Zatim se moramo pobrinuti za konfiguraciju koja se odnosi na autentifikaciju. Budući da ćemo koristiti tijek vjerodajnica klijenta, moramo imati registraciju aplikacije i konfigurirati željeni certifikat pod Certifikati i tajne stranica. Slijedimo potpuno iste korake kao kada konfiguriramo CBA za bilo koju drugu aplikaciju, tako da ovdje neću dodavati snimke zaslona i slično. Trebate li ih, ovaj članak pokriva glavne korake procesa. Jedina je razlika u pogledu potrebnih dozvola. Za naše potrebe trebamo Sites.FullControl.All dopuštenje aplikacije iz SharePoint resursa. NIJE Graph resurs, iako nudi potpuno isti opseg!
Ako dodajete potrebna dopuštenja putem metode Manifest, vrijednost za potrebni resurs je 00000003-0000-0ff1-ce00-000000000000dok je ID dopuštenja 678536fe-1083-478a-9c59-b99265e6b0d3. Ne zaboravite dati suglasnost administratora jer se ipak radi o dopuštenjima aplikacije.
I s tim smo spremni za spajanje na SPO putem provjere autentičnosti temeljene na certifikatu. Slično CBA implementaciji unutar Exchange Online PowerShell modula, objekt certifikata možemo proslijediti izravno, pokazati na .pfx datoteku pohranjenu na lokalnom uređaju ili proslijediti vrijednost minijature certifikata pohranjenu u osobnoj trgovini trenutnog korisnika. Također ćemo morati dati ID našeg aplikacijskog objekta, 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 je li certifikat pohranjen unutar Osobne pohrane trenutnog korisnika i je li dopušten pristup privatnom ključu. Neke dodatne napomene i primjeri mogu se pronaći na Connect-SPOService cmdlet-ovi dokumentacija stranica. Kao bonus savjet, možete koristiti -Id aplikacije kao alias za -Id klijenta parametar.
U ovom trenutku trebali biste biti povezani sa SPO uslugom vaše organizacije i moći izvršiti (većinu) PowerShell cmdleta. Bilješka unutar objave MC1188595 spominje da postoje neki poznati problemi s CBA podrškom, bez odlaska u korisne detalje. S obzirom na to da trenutno imamo dostupna 344 cmdleta, očito se nisam potrudio testirati ih sve.
Očekujemo da će većina scenarija funkcionirati s autentifikacijom samo putem aplikacije. Međutim, mogu postojati rijetki slučajevi u kojima API treba eksplicitni korisnički token iz sigurnosnih razloga. U takvim slučajevima, administratori stanara trebaju koristiti interaktivne tijekove s vjerodajnicama administratora/korisnika. Slobodno nam se obratite ako je potrebno.
Kako više informacija bude dostupno, pokušat ću ažurirati članak, barem dok se ne pojavi službena dokumentacija.
Ukratko, SharePoint Online PowerShell modul konačno dodaje podršku za autentifikaciju temeljenu na certifikatu. CBA radi slično kao s bilo kojim drugim modulom povezanim sa sustavom 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 klijentske tajne, niti za prosljeđivanje pristupnog tokena što se toga tiče. Ipak, ovo je dobrodošao dodatak koji bi trebao pomoći u omogućavanju nekih scenarija automatizacije.
