我正在寻找允许应用程序通过服务帐户访问Graph API的最佳方法。
这个想法是向该应用程序的Graph API授予委派的权限,然后,该权限将进一步受到该应用程序中使用的服务帐户的访问的限制。问题是服务帐户上不需要进行任何交互。
例如:我希望开发人员创建任何类型的应用程序来访问Graph API,但仅管理其服务帐户被授予访问权限的资源。例如,我不希望他能够管理所有AAD组,而只能管理其服务帐户拥有所有权的AAD组。
是否有任何指导让我开始演示?我一直在寻找教程和文章,但似乎都不符合我的要求。
答案 0 :(得分:0)
您可能想看看Get access without a user。
某些应用程序使用自己的身份调用Microsoft Graph,但不启用 代表用户。在许多情况下,这些是后台服务或 在没有登录用户的情况下在服务器上运行的守护程序。
...
身份验证和授权步骤
配置服务并从中获取令牌所需的基本步骤 您的服务可用于调用Microsoft的Azure AD v2.0终结点 以其自己的身份显示的图形为:
- 注册您的应用。
- 在您的应用上配置Microsoft Graph的权限。
- 征得管理员同意。
- 获取访问令牌。
- 使用访问令牌来调用Microsoft Graph。
关键是权限的配置。可能需要深入研究permissions reference,看看它是否提供您所需的粒度。
2。配置Microsoft Graph的权限
对于以自己的身份调用Microsoft Graph的应用程序,Microsoft 图公开了应用程序权限。 ...您预先配置 注册应用程序时,您的应用程序需要具有应用程序权限。
答案 1 :(得分:0)
目前,我认为您无法执行此操作。 如果您执行客户端凭据身份验证(客户端ID +机密/证书), 应用程序权限适用。 委派权限仅在涉及用户时适用。 因此,当前限制范围的唯一方法是代表用户进行呼叫。
当然,您仍然可以使其大部分自动化。 一种方法是让开发人员一次对其帐户进行身份验证。 然后,您的应用应会收到该用户的刷新令牌, 然后可以根据需要使用它来获取新的访问令牌,以便在需要时以用户身份进行呼叫。
当然,现在刷新令牌的唯一问题是它们可能会过时或被吊销。 开发人员将不得不再次授权该应用程序。 如果不发生这种情况对业务至关重要, 那么您必须使用应用权限(组织范围,所有组等)。