Nedavno sam vidio nekoliko pitanja kako programirati politiku uvjetnog pristupa autentifikaciji kao jedno od kontrola “grantova”. Iz nekog razloga, dokumentacija se ne bavi direktno uključenom u ovaj scenarij, a čini se da su zauzvrat zbunjeni ljudi, kada je zapravo prilično jednostavno. Dakle, u ovom članku kratko razgovaramo o tome kako stvoriti takvu politiku i istraživati neke primjere.
Za početak, moramo razumjeti shemu koju koristi resurs politike uvjetnog pristupa drugim riječima koje trebamo koristiti imanja. Osim Ime i stanjePrilikom stvaranja nove politike uvjetnog pristupa moramo odrediti skup UvjetiTo je, na koji će se predmeti i scenariji primijeniti. I mi također trebamo definirati akcije za politiku, to je set grantovi Ko definira da li će pristup biti odobren ili ne, kao i različite zahtjeve koje je potrebno ispuniti. A moć provjere autentičnosti kontrole je jedan takav primjer.
Za potrebe ovog članka važno je shvatiti kako se moć autentičnosti predstavi na API strani stvari. Ako direktno pogledate izlaz koji je generirao listu / Politike / uslovi Metoda, nije odmah jasno kako se okreću relevantni zupčanici. U stvari, to bi moglo biti u redu. Evo primera:
"grantControls": "operator": "OR", "builtInControls": [], "customAuthenticationFactors": [], "termsOfUse": [], "[email protected]": "https://graph.microsoft.com/v1.0/$metadata#policies/conditionalAccessPolicies('72976d8e-b0d4-40c1-a649-cea4eb19f4fc')/grantControls/authenticationStrength/$entity", "authenticationStrength": "id": "00000000-0000-0000-0000-000000000003", "createdDateTime": "2021-12-01T08:00:00Z", "modifiedDateTime": "2021-12-01T08:00:00Z", "displayName": "Passwordless MFA", "description": "Passwordless methods that satisfy strong authentication, such as Passwordless sign-in with the Microsoft Authenticator", "policyType": "builtIn", "requirementsSatisfied": "mfa", "allowedCombinations": [ "windowsHelloForBusiness", "fido2", "x509CertificateMultiFactor", "deviceBasedPush" ], "[email protected]": "https://graph.microsoft.com/v1.0/$metadata#policies/conditionalAccessPolicies('72976d8e-b0d4-40c1-a649-cea4eb19f4fc')/grantControls/authenticationStrength/combinationConfigurations", "combinationConfigurations": []
Pa imamo grantovi Resurs, koji već znamo, obuhvaća sve klauzule na moći za autentifikaciju. Ako pogledate dokumentaciju o resursu, primijetit ćete da tablica svojstava nema ulaz sa Autentifikacija -Utrka Imovina. Umjesto toga, vidimo ga ispod vezapokazujući na autentifikaciju resursa. Svojstva navedena za navedeni resurs odgovaraju onome što vidimo u JSON-u.
Evo udarca. Ako pokušate ponovo upotrijebiti (dio) JSON za stvaranje nove politike uvjetnog pristupa, odgovorit će se pomoć Batrequest Greška, s porukom u skladu s tim: “1007: Unos kondikonitibraicAccesPolicy je null ili se ne podudara sa ConditalCacteSpolicy shemom tipa“Ne govori ti da je to grantovi i tačnije Autentifikacija -Utrka Čvor je problem, ali bit će nekih suđenja i pogrešnih testova da biste ga provjerili.
Dakle, ne možemo predstavljati samo ove bitove putem politike. Pa kako onda stvaramo novu politiku uvjetne pristupe koja koristi moć programiranja autentifikacije? Odgovor je iznenađujuće jednostavan – samo trebamo istaknuti Lična karta odgovarajuće autentične politike električne energije. Nijedna druga svojstva nije potrebna! Evo primjera korisnog opterećenja:
"displayName": "Policy with Auth strength", "state": "enabledForReportingButNotEnforced", "conditions": "clientAppTypes": [ "all" ], "applications": "includeApplications": [ "All" ] , "users": "includeUsers": [ "All" ] , "grantControls": "operator": "OR", "authenticationStrength": "id": "00000000-0000-0000-0000-000000000002"
Odlično, ali kako da dobiješ tu vrtu? Pa, ovo je ID odgovarajuće postrojenja za provjeru autentičnosti koju možemo preuzeti putem liste / AutentifikacijaTrentnohlitiji Metoda. I izgrađene i adaptirane sile provjere autentičnosti imaju odgovarajuću politiku. Dakle, ako planirate stvoriti politiku uslovnog pristupa od nule, prvo donesite odgovarajući ID provjere autentičnosti. Ako kreirate kopiju postojeće politike CA, dodijelite sve osim Lična karta Vrijednost Autentifikacija -Utrka Čvor. Tako jednostavno.
Važno je razumjeti da je sva ugrađena politika snage za autentifikaciju imati isti ID sa svim stanarima. Ovo zauzvrat čini ih mnogo lakšim da ih koristi, jer ne morate gledati ni svoj id. Na primjer, možete koristiti vrijednost 00000000-0000-0000-0000-000000002 Da bi se krenula u izgrađenu politiku “Multi–factor provjere autentičnosti”, bez obzira na to što stanar kreirate politiku i koliko autentičnih politika snage postoje u njemu. Oh, i možete koristiti Get-mgpolicyAuthenticationsthpolicy cmdlet za preuzimanje pravila putem SDK-a za PowerShell:
Da biste dovršili članak, evo potpunih primjera kako možete stvoriti novu politiku uvjetnog pristupa koja uključuje kontrolu snage za autentifikaciju. Da biste stvorili takvu politiku kroz grafički API, morate izdati post protiv / Politike / uslovi Krajnja tačka, sa sljedećim JSO-om kao blagotvornom opterećenju:
POST https://graph.microsoft.com/v1.0/policies/conditionalAccessPolicies "displayName": "MFA for all users", "state": "enabledForReportingButNotEnforced", "conditions": "applications": "includeApplications": [ "All" ] , "users": "includeUsers": [ "All" ] , "grantControls": "operator": "OR", "authenticationStrength": "id": "00000000-0000-0000-0000-000000000002"
Da biste stvorili sličnu politiku putem SDK-a za PowerShell, koristite New-MgidentConDicationAccesseSpOlicy cmdlet:
$json = @ "conditions" = @ "applications" = @ "includeApplications" = @("All") "clientAppTypes" = @("all") "users" = @ "includeUsers" = @("All") "state" = "enabledForReportingButNotEnforced" "displayName" = "Graph SDK example" "grantControls" = @ "authenticationStrength" = @ "id" = "00000000-0000-0000-0000-000000000002" "operator" = "OR" New-MgIdentityConditionalAccessPolicy -BodyParameter ($json | ConvertTo-Json -Depth 10)
Oba primjera koriste ugrađenu politiku provjere autentičnosti “Multifactor Autentifikat”, sa 0000000000-0000-0000-0000-000000000000000002. Možete ga zamijeniti ID-om bilo koje druge ugrađene pravilo ili bilo koje prilagođene koje ste stvorili u stanaru. Zapamtite, ovo je referenca na izlaz autentične energije, tako da ne morate davati dodatne bitove njegove konfiguracije. To, naravno, znači da spomenuta politika električne energije za autentifikaciju mora već postojati. Ako planirate koristiti prilagođenu kombinaciju metoda provjere autentičnosti namijenjenih ispunjavanju specifičnih potreba, obavezno prvo kreirajte objekt za provjeru autentičnosti!