gpt4 book ai didi

azure - 对于 Microsoft Graph 中缺少 UsersPermissionToUserConsentToAppEnabled 是否有任何解决方法?

转载 作者:行者123 更新时间:2023-12-03 03:34:59 25 4
gpt4 key购买 nike

我正在尝试检查用户是否同意不允许使用 Powershell 代表他们访问公司数据的应用程序。最初,这是使用 MSOL-CompanyInformation 和 UsersPermissionToUserConsentToAppEnabled 完成的。然而,随着 MSOL 弃用的时间越来越近,我找不到任何可比的(MgOrganization 没有相同的功能)或解决这种情况的方法。

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

User consent settings现在比仅仅开/关更细粒度。相反,客户可以选择用户是否有权代表自己同意,如果有,则选择哪个 permission grant policy (又名“应用同意政策”)描述何时允许用户同意(例如哪些应用、哪些权限等)

使用 Microsoft Graph v1.0,此设置存储在 defaultUserRolePermissions 下的 permissionGrantPoliciesAssigned 集合中authorizationPolicy的属性(property)单例。

使用 Microsoft Graph PowerShell,您可以使用 Get-MgPolicyAuthorizationPolicy 检索授权策略,并用 Update-MgPolicyAuthorizationPolicy 更新它。这两个 cmdlet 均包含在 Microsoft.Graph.Identity.SignIns 中模块。

如果该集合至少包含一个以“managePermissionGrantsForSelf.”开头的值,则将启用用户 self 同意,但须遵守 permission grant policy由“.”后面的任何内容标识。

示例

在第一个示例中,*permissionGrantPoliciesAssigned 为空,表示完全禁用用户同意:

GET https://graph.micrsooft.com/v1.0/policies/authorizationPolicy
{
/* ... */
"defaultUserRolePermissions": {
"allowedToCreateApps": true,
"allowedToCreateSecurityGroups": true,
"allowedToReadOtherUsers": true,
"permissionGrantPoliciesAssigned": [] // <- User consent disabled entirely
}
}

在第二个示例中,启用了用户同意,并遵守 ID 为“microsoft-user-default-low”的权限授予策略(另请注意,此处我们直接查询 defaultUserRolePermissions):

GET https://graph.microsoft.com/v1.0/policies/authorizationPolicy/defaultUserRolePermissions 
{
/* ... */
"allowedToCreateApps": true,
"allowedToCreateSecurityGroups": true,
"allowedToReadOtherUsers": true,
"permissionGrantPoliciesAssigned": [
"ManagePermissionGrantsForSelf.microsoft-user-default-low" // <- User consent enabled
]
}

我们可以通过检索该内置策略来获取有关该内置策略的更多详细信息(我们知道它是内置的,因为它以“microsoft-”开头):

GET https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/microsoft-user-default-low
{
"id": "microsoft-user-default-low",
/* ... */
"includes": [
{
"id": "9c72ced4-50c7-4486-933e-6756d554b199",
"permissionClassification": "low",
"permissionType": "delegated",
"resourceApplication": "any",
"permissions": [ "all" ],
"clientApplicationIds": [ "all" ],
"clientApplicationTenantIds": [ "b6e5dea0-ef49-4100-9191-1bb9c16c40b0" ],
"clientApplicationPublisherIds": [ "all" ],
"clientApplicationsFromVerifiedPublisherOnly": false
},
{
"id": "8ce99f96-730c-4ebd-8397-07ee65942b97",
"permissionClassification": "low",
"permissionType": "delegated",
"resourceApplication": "any",
"permissions": [ "all" ],
"clientApplicationIds": [ "all" ],
"clientApplicationTenantIds": [ "all" ],
"clientApplicationPublisherIds": [ "all" ],
"clientApplicationsFromVerifiedPublisherOnly": true
}
],
"excludes": []
}

我们可以看到这个政策包括两个condition sets :

  • 对于在同一租户中注册的应用,所有委派权限均分类为“低”*
  • 对于发布商经过验证的应用,所有委派权限均被分类为“低”

*在此特殊的内置权限授予策略中,clientApplicationTenantIds 将始终是从中读取策略的租户的租户 ID。

关于azure - 对于 Microsoft Graph 中缺少 UsersPermissionToUserConsentToAppEnabled 是否有任何解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73696286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com