哪个 MSAL 身份验证流程?

Which MSAL Authentication Flow?

我构建了一个 SaaS 应用程序,需要每天从 Microsoft Graph 检索我们客户的所有用户和组。

设置部分可以交互,但 Microsoft Graph 不是(因为它是服务器端的后台任务)。

我很难理解应该使用哪个流程。当我查看身份验证流程列表 (https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows) 时,我自然会看到为守护程序应用程序推荐的客户端凭据流程。但是,缺点似乎是设置复杂。管理员需要手动注册一个应用程序,生成秘密等,我想避免。

另一方面,我看到其他流程(授权码等)的身份验证过程非常简化。看来我可以在后端存储刷新令牌并以守护进程的方式从后端使用它。这似乎是两全其美。这个模式正确吗?靠谱吗?

注意:我的 SaaS 有一个 UI,用户可以在设置部分登录。

管理员不需要手动安装您的应用程序并生成密钥。为您的服务器端生成密钥的是您,您将使用您的客户端 ID 和密钥以 offline 模式访问 Graph。为此,您需要获得客户管理员的同意,您可以通过将他们重定向到管理员同意页面来获得该同意,该页面将显示您的应用程序访问 Graph 数据所需的权限列表。 所有这些都在这里描述:https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow