繁体   English   中英

使用 Microsoft.Graph 获取当前应用程序权限

[英]Using Microsoft.Graph to get current application permissions

我的 C# 程序使用 Microsoft.Graph Nuget。 并且它需要能够确保它具有正确的 Microsoft Graph 应用程序权限。

我知道如何在 AD 中添加权限,但我希望我的程序能够测试它是否具有所需的权限。

我想要实现的示例:

var graphClient = new GraphServiceClient(authenticationProvider);

if(!graphClient.GetPermissions().Contains("AdministrativeUnit.Read.All"))
{
    throw new Exception("Missing Permission AdministrativeUnit.Read.All")
}

提前致谢 !

这是一条漫长的路。

这里我提供一下Microsoft Graph beta版的大致思路(通过HTTP方法):

  1. 根据 App ID 获取 servicePrincipal 的 Object ID: GET https://graph.microsoft.com/beta/servicePrincipals?$filter=appId eq '{App ID}'
  2. 根据步骤 1 中的 Object ID 获取 appRole 信息(应用程序权限信息): GET https://graph.microsoft.com/beta/servicePrincipals/{Object ID}/appRoleAssignedTo 在此处输入图像描述
  3. 获取 appRoleID 和 Microsoft Graph 应用程序权限名称的匹配列表: GET https://graph.microsoft.com/beta/servicePrincipals?$filter=appId eq '00000003-0000-0000-c000-000000000000' 请注意,“00000003-0000-0000-c000-000000000000”是一个固定值,代表微软内部Graph App的App ID。 在此处输入图像描述
  4. 比较第 2 步和第 3 步的结果,您将知道 Azure AD 应用程序中有哪些应用程序权限。

顺便说一句, Get appRoleAssignment目前仅在 beta 版本中可用,但不建议使用 beta 版本 api。

Microsoft Graph 中 /beta 版本下的 API 可能会发生变化。 不支持在生产应用程序中使用这些 API。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM