通过服务帐户的委派权限访问Graph API,而无需用户交互

时间:2019-03-27 15:45:13

标签: azure azure-active-directory

我正在寻找允许应用程序通过服务帐户访问Graph API的最佳方法。

这个想法是向该应用程序的Graph API授予委派的权限,然后,该权限将进一步受到该应用程序中使用的服务帐户的访问的限制。问题是服务帐户上不需要进行任何交互。

例如:我希望开发人员创建任何类型的应用程序来访问Graph API,但仅管理其服务帐户被授予访问权限的资源。例如,我不希望他能够管理所有AAD组,而只能管理其服务帐户拥有所有权的AAD组。

是否有任何指导让我开始演示?我一直在寻找教程和文章,但似乎都不符合我的要求。

2 个答案:

答案 0 :(得分:0)

您可能想看看Get access without a user

  

某些应用程序使用自己的身份调用Microsoft Graph,但不启用   代表用户。在许多情况下,这些是后台服务或   在没有登录用户的情况下在服务器上运行的守护程序。

     

...

     

身份验证和授权步骤

     

配置服务并从中获取令牌所需的基本步骤   您的服务可用于调用Microsoft的Azure AD v2.0终结点   以其自己的身份显示的图形为:

     
      
  1. 注册您的应用。
  2.   
  3. 在您的应用上配置Microsoft Graph的权限。
  4.   
  5. 征得管理员同意。
  6.   
  7. 获取访问令牌。
  8.   
  9. 使用访问令牌来调用Microsoft Graph。
  10.   

关键是权限的配置。可能需要深入研究permissions reference,看看它是否提供您所需的粒度。

  

2。配置Microsoft Graph的权限

     

对于以自己的身份调用Microsoft Graph的应用程序,Microsoft   图公开了应用程序权限。 ...您预先配置   注册应用程序时,您的应用程序需要具有应用程序权限。

答案 1 :(得分:0)

目前,我认为您无法执行此操作。 如果您执行客户端凭据身份验证(客户端ID +机密/证书), 应用程序权限适用。 委派权限仅在涉及用户时适用。 因此,当前限制范围的唯一方法是代表用户进行呼叫。

当然,您仍然可以使其大部分自动化。 一种方法是让开发人员一次对其帐户进行身份验证。 然后,您的应用应会收到该用户的刷新令牌, 然后可以根据需要使用它来获取新的访问令牌,以便在需要时以用户身份进行呼叫。

当然,现在刷新令牌的唯一问题是它们可能会过时或被吊销。 开发人员将不得不再次授权该应用程序。 如果不发生这种情况对业务至关重要, 那么您必须使用应用权限(组织范围,所有组等)。