Microsoft Entra ID vaiketenantis võib iga kasutaja kinnitada kolmanda osapoole rakenduse, mis loeb tema postkasti, ja IT-osakonnalt ei küsita selle kohta midagi. Kui te pole seda seadistust kunagi üle vaadanud, lähtuge eeldusest, et mõned load on juba antud, ning auditeerige need enne poliitika muutmist.
Mida vaikeseadistus lubab
Kasutaja võib anda rakendusele nõusoleku lugeda oma postkasti. Ta ei saa anda rakendusele piiramatut lugemis- ja kirjutamisjuurdepääsu kõigile organisatsiooni failidele, sest see eeldab administraatorit. Microsoft soovitab lubada kasutajanõusoleku ainult kinnitatud väljaandja (verified publisher) rakendustele, et vähendada riski, et pahatahtlikud rakendused meelitavad kasutajaid juurdepääsu andma.
Nõusolek ei ole ka parool. OAuth 2.0 (RFC 6749) kohaselt saab rakendus kasutaja volituste asemel väljastatud juurdepääsutõendi (access token), millel on kindel scope ja eluiga. Nõusolek on eraldi objekt ning selle peate ise üles leidma ja eemaldama.
Antud lubade loetlemine
Vajate vähemalt rolli Cloud Application Administrator või Application Administrator. Microsoft Entra admin center'is minge Entra ID > Enterprise apps > All applications, valige rakendus ja avage Permissions. Vahekaart Admin consent näitab õigusi, mis on antud kogu organisatsiooni nimel. Vahekaart User consent näitab, mida on andnud konkreetsed kasutajad või grupid.
Portaal töötab rakendus rakenduse haaval, seega kogu tenanti ülevaate saamiseks on vaja tsüklit. Microsofti tühistamisjuhendis toodud Graphi lõpp-punktid on piiratud ühe service principaliga: oauth2PermissionGrants tagastab delegeeritud õigused ja appRoleAssignments rakenduse õigused. Allolev skript kasutab samaväärseid cmdlet'e ning teisendab ID-d nimedeks, sealhulgas sellised rakendusrollid nagu Mail.Read:
Connect-MgGraph -Scopes "Application.ReadWrite.All","DelegatedPermissionGrant.ReadWrite.All","AppRoleAssignment.ReadWrite.All"
$sps = Get-MgServicePrincipal -All
$name = @{}
$role = @{}
foreach ($s in $sps) {
$name[$s.Id] = $s.DisplayName
foreach ($r in $s.AppRoles) { $role["$($s.Id)|$($r.Id)"] = $r.Value }
}
$rows = @()
foreach ($g in Get-MgOauth2PermissionGrant -All) {
$rows += [pscustomobject]@{ App=$name[$g.ClientId]; Type="Delegated"
Resource=$name[$g.ResourceId]; Detail=$g.Scope }
}
foreach ($sp in $sps) {
$assigned = Get-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $sp.Id -All |
Where-Object { $_.PrincipalType -eq "ServicePrincipal" }
foreach ($a in $assigned) {
$rows += [pscustomobject]@{ App=$sp.DisplayName; Type="Application"
Resource=$name[$a.ResourceId]; Detail=$role["$($a.ResourceId)|$($a.AppRoleId)"] }
}
}
$rows | Export-Csv consent-audit.csv -NoTypeInformation
Need scope'id pärinevad Microsofti tühistamisnäidetest ja sisaldavad kirjutamisõigust, mida ainult lugev audit ei vaja. Küsige kitsamaid scope'e, kui teie tenant seda lubab, ning testige skripti esmalt väikesel hulgal.
Triaaži järjekord
See järjekord on meie enda, mitte Microsofti juhis. Alustage delegeeritud õigustest, mille scope'id loevad või saadavad e-kirju või loevad faile. Filtreerige veergu Detail väärtuste Mail ja Files järgi. Seejärel võtke ette kõik rakenduse õigused.
Pahatahtlik luba näeb portaalis tavaline välja: usutav nimi ja mõni scope. Muster, mida otsida, on see, kui mitu kasutajat on andnud nõusoleku samale tundmatule rakendusele, mille väljaandjat te kinnitada ei saa. Kui leiate sellise, käsitlege seda intsidendina ja kaasake meie intsidendile reageerimise meeskond või oma enda meeskond.
Riskantsete lubade eemaldamine
Administraatori antud õiguste puhul avage vahekaart Admin consent, valige õiguse kõrval juhtnupp ... ja vajutage Revoke permission. Vahekaardil User consent ei saa portaalis midagi tühistada. Nende jaoks vajate Graphi või PowerShelli.
Graphis kustutage delegeeritud luba selle ID järgi või eemaldage rakenduse õigus selle assignment ID järgi:
DELETE https://graph.microsoft.com/v1.0/oAuth2PermissionGrants/{id}
DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
Tühistamisjuhendis on ka PowerShelli skriptid, mis eemaldavad ühe rakenduse kõik delegeeritud ja rakenduse õigused. Lugege need enne käivitamist läbi, sest need kustutavad selle service principali kõik õigused.
Tühistamine ei takista kasutajal sama rakendust uuesti kinnitamast. Microsoft nimetab kaht abinõu: peatada rakenduse õiguste küsimine dünaamilise nõusoleku (dynamic consent) kaudu või blokeerida kasutajanõusolek täielikult. Kolmanda osapoole rakenduste puhul ei saa te muuta, mida need küsivad, seega on meie hinnangul blokeerimine kontroll, mis on teie käes.
Kasutajanõusoleku piiramine
Vajate rolli Privileged Role Administrator. Global Administrator roll on vajalik ainult siis, kui kasutate admin center'it, kus seadistus asub jaotises Identity > Applications > Enterprise apps > Consent and permissions > User consent settings.
Entra pakub selleks kaht sisseehitatud poliitikat:
| ID | Mõju |
|---|---|
microsoft-user-default-low | Kasutajad annavad nõusoleku ainult kinnitatud väljaandjate või teie tenantis registreeritud rakendustele ning ainult õigustele, mille olete liigitanud väikese mõjuga õigusteks |
microsoft-user-default-legacy | Kasutajad annavad nõusoleku mis tahes õigusele, mis ei vaja administraatori nõusolekut, mis tahes rakendusele |
Poliitika low sõltub sellest, et te õigused liigitate, ja just nii valite, mida kasutajad tohivad kinnitada. Tehke seda esimesena ning testige seejärel tavalise kasutajakontoga.
Enne kui PowerShellis või Graphis midagi muudate, pärige praegune authorizationPolicy. Teie tenantile võivad olla määratud ManagePermissionGrantsForOwnedResource.* poliitikad, näiteks see, mis lubab arendajatel hallata nõusolekut enda omatavate rakenduste jaoks. Jätke need kogumisse alles, muidu eemaldate need. Kasutajanõusoleku keelamine Graph PowerShelliga näeb välja nii:
Connect-MgGraph -Scopes "Policy.ReadWrite.Authorization"
$body = @{
"permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
"managePermissionGrantsForOwnedResource.{other-current-policies}"
)
}
Update-MgPolicyAuthorizationPolicy -BodyParameter $body
Kui soovite hoopis lubada nõusoleku väikese mõju poliitika alusel, lisage Graphi PATCH-päringus väärtusele defaultUserRolePermissions.permissionGrantPoliciesAssigned kirje managePermissionGrantsForSelf.microsoft-user-default-low. Poliitika muutmine mõjutab ainult tulevasi nõusolekuid, seega olemasolevad load jäävad kehtima, kuni te need eemaldate.
Andke kasutajatele võimalus küsida
Kui blokeerite nõusoleku ilma alternatiivita, hakkavad kasutajad otsima kõrvalteid. Admin consent workflow lubab neil selle asemel taotleda heakskiitu. Global Administrator lülitab selle sisse jaotises Entra ID > Enterprise apps > Consent and permissions > Admin consent settings. Seadke "Users can request admin consent to apps they are unable to consent to" väärtusele Yes ja valige seejärel:
- Läbivaatajad (reviewers): kasutajad, grupid või rollid. Läbivaatajaks olemine ei suurenda nende õigusi, seega peab igaühel olema juba õigus anda nõusolek taotletud rakendusele. Microsoft Graphi rakenduserolle (rakenduse õigusi) taotlevaid rakendusi saavad kinnitada ainult Global Administratorid.
- E-posti teavitused: kui keelate need läbivaatajatele, keelatakse ka taotlejate teavitused.
- Taotluse kehtivusaeg ja aegumise meeldetuletused: kehtivusaeg on päevade arv, mille jooksul taotlus kehtib. Esimene meeldetuletus saabub umbes poolel teel, kolmepäevase taotluse puhul seega teisel päeval.
Salvestage ja oodake, et töövoog hakkaks kehtima, kuni tund aega. Eemaldatud läbivaataja säilitab juurdepääsu taotlustele, mis esitati ajal, mil tal see roll oli. Uued läbivaatajad ei saa tegutseda taotluste puhul, mis loodi enne nende lisamist.
Juurdepääsu võivad anda ka Entra sisseehitatud rollid, Exchange RBAC ja Teamsi ressursipõhine nõusolek (resource-specific consent), seega kaasake need laiemasse ülevaatusse.
Kust alustada
- Käivitage inventuuriskript ning vaadake delegeeritud õigusi ja rakenduse õigusi eraldi nimekirjadena. Märkige rakendused, mida keegi põhjendada ei oska.
- Tühistage riskantsed load: administraatori nõusolekuga antud portaalis, kasutaja nõusolekuga antud Graphi või PowerShelli kaudu.
- Lugege praegune
authorizationPolicy, seejärel seadke kasutajanõusolek poliitikalemicrosoft-user-default-lowkoos liigitatud õigustega või keelake see, jättes alles kirjedManagePermissionGrantsForOwnedResource.*. - Lülitage sisse admin consent workflow. Nimetage läbivaatajad, kelle rollid võivad anda nõusoleku sellele, mida kasutajad küsivad, ja hoidke nende hulgas Global Administratorit, sest ainult see roll kinnitab Microsoft Graphi rakenduse õigusi.
- Korrake ülevaatust ajakava alusel. Kui teil napib aega, saab meie konsultatsioonimeeskond selle läbi viia hindamisena ja meie hallatav turvateenus võib katta seire.
