2017-05-30 107 views
1

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

谷歌提供了一个API使用/做类似的功能用户/ XXX /令牌API - https://developers.google.com/admin-sdk/directory/v1/reference/tokens/list

是否有转换MSGraph或Azure的AD的Office 365用户的任何类似的API来获取他们的应用程序的列表,并相关权限

+0

您能澄清几件事吗?你提到“一个特定的O365已安装” - 你的意思是“已经同意”?然后你提到“或正在使用” - 使用将是一个不同的事情,也许用户已经同意了一个应用程序,但他/她不再使用该应用程序。然后你提到了“特定应用程序要求的所有权限/范围”。这也将是一个不同的事情:用户可能已经同意了一个应用程序,但然后该应用程序可能已经改变了所需的权限。 – andresm53

+0

是的,我的意思是用户已经授予了应用程序的一些权限。我想要一个用户的所有这些应用程序的列表。 – crucifix94

+0

如果应用程序更改了所需的权限,是不是要求用户再次提供剩余的权限(通过同意屏幕或其他内容)。无论如何,我想获得用户提供应用程序的权限。 – crucifix94

回答

0

根据这些信息,在这里找到:https://docs.microsoft.com/en-us/azure/active-directory/active-directory-apps-permissions-consent

可以使用GET-AzureADUserOAuth2PermissionGrant看到用户已与PE一起授予访问所有应用程序的列表请使用Get-AzureADServicePrincipal查找应用程序的名称。以下是基于用户的UPN搜索的示例。

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

$grants = Get-AzureADUser -SearchString [email protected] | Get-AzureADUserOAuth2PermissionGrant 

获取上述

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

$grants = Get-AzureADUser -SearchString [email protected] | 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 
1

从列表中应用程序的名称找到了一个方法来做到这一点 -

首先获得所有oauth2PermissionGrants对象提供由用户指定给任何应用程序。 使用下列API来做到这一点 - https://graph.windows.net/ {} tenantDomain /用户/用户ID {} /oauth2PermissionGrants?api-version=1.6

然后使用在repsonse提到的clientID的,以获得详细信息应用

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

相关问题