【问题标题】:Get list of apps or permissions for a user in Office 365获取 Office 365 中用户的应用或权限列表
【发布时间】:2017-07-28 21:31:31
【问题描述】:

要求: 我想获取特定 O365 用户已安装或已授予某些权限的所有应用程序(Microsoft 或第三方应用程序)的列表。我想获取特定应用要求的所有权限/范围。

Google 提供了一个 API 来使用 /users/xxx/tokens API 执行类似的功能 - https://developers.google.com/admin-sdk/directory/v1/reference/tokens/list

是否有任何类似的用于 MSGraph 或 Azure AD 的 API 供 Office 365 用户获取他们的应用列表和相关权限

【问题讨论】:

  • 你能澄清一些事情吗?您提到“已安装特定的 O365”-您的意思是“已同意”吗?然后您提到“或正在使用” - 使用将是另一回事,也许用户已同意应用程序但他/她不再使用该应用程序。然后你提到了“特定应用程序要求的所有权限/范围”。这也是另一回事:用户可能已经同意某个应用,但随后该应用可能更改了所需的权限。
  • 是的,我的意思是用户已授予应用程序一些权限。我想要一个用户的所有此类应用程序的列表。
  • 如果应用程序更改了所需的权限,它不会要求用户再次授予其余权限(通过同意屏幕或其他方式)。无论如何,我想获得用户提供应用程序的权限。

标签: office365 azure-active-directory microsoft-graph-api


【解决方案1】:

找到了一种方法 -

首先获取用户提供给任何应用程序的所有 oauth2PermissionGrants 对象。 使用以下 API 来执行此操作 - https://graph.windows.net/{tenantDomain}/users/{userID}/oauth2PermissionGrants?api-version=1.6

然后使用回复中提到的 clientID 来获取应用程序的详细信息

https://graph.windows.net/{tenantDomain}/servicePrincipals/{clientID}?api-version=1.6

【讨论】:

    【解决方案2】:

    根据此处找到的信息:https://docs.microsoft.com/en-us/azure/active-directory/active-directory-apps-permissions-consent

    您可以使用 Get-AzureADUserOAuth2PermissionGrant 查看用户已授予访问权限的所有应用程序的列表以及权限范围,然后使用 Get-AzureADServicePrincipal 查找应用程序的名称。下面是一个基于用户 UPN 的搜索示例。

    为用户加载所有授权的应用程序。

    $grants = Get-AzureADUser -SearchString first.last@domain.com | Get-AzureADUserOAuth2PermissionGrant
    

    从上面的列表中获取应用程序的名称

    Get-AzureADServicePrincipal -ObjectId $grants[0].ClientId
    

    例子

    $grants = Get-AzureADUser -SearchString first.last@domain.com | Get-AzureADUserOAuth2PermissionGrant
    
    > $grants[5] | fl
    
    
    ClientId    : <snip>
    ConsentType : Principal
    ExpiryTime  : 4/27/2016 11:15:39 AM
    ObjectId    : <snip>
    PrincipalId : <snip>
    ResourceId  : <snip>
    Scope       : User.Read user_impersonation
    StartTime   : 1/1/0001 12:00:00 AM
    
    >
    > Get-AzureADServicePrincipal -ObjectId $grants[5].ClientId
    
    ObjectId                           AppId                             DisplayName
    --------                           -----                             -----------
    <snip>                             <snip>                            ExampleAppName
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-11
      • 2020-06-25
      • 2016-11-17
      • 1970-01-01
      • 2014-08-08
      相关资源
      最近更新 更多