我是使用 Graph Api 的新手,我试图找出一种方法,让我的 Web 应用程序能够访问 Graph Api,而无需每次都要求用户名或密码,方法是让它在每次启动时以编程方式登录。
我有一个我只想在此程序中使用的帐户,如果可能,我希望将此帐户的凭据编码到程序中,而无需注销/注销。
使用示例中推广的 MSAL 或 ADAL 身份验证方法是否可以实现这种类型的访问?
提前感谢您的所有帮助
我是使用 Graph Api 的新手,我试图找出一种方法,让我的 Web 应用程序能够访问 Graph Api,而无需每次都要求用户名或密码,方法是让它在每次启动时以编程方式登录。
我有一个我只想在此程序中使用的帐户,如果可能,我希望将此帐户的凭据编码到程序中,而无需注销/注销。
使用示例中推广的 MSAL 或 ADAL 身份验证方法是否可以实现这种类型的访问?
提前感谢您的所有帮助
有两种处理方法,您可以根据自己的情况选择哪种方法。
刷新令牌:使用刷新令牌,您可以要求用户进行一次身份验证,然后不断刷新该访问令牌。对于用户并不总是在线/交互的场景,这通常涉及一个后台进程,该进程自动为用户检索和存储最新的令牌。
仅限应用程序:有几个权限范围可以在没有user
身份验证的情况下使用。租户管理员无需登录用户,而是授权您的应用程序。请注意,并非所有 Graph 功能都可以通过这种方式访问,如果您打算将其提供给其他组织,则肯定需要牢记安全注意事项(即,在他们说“当然,也可以访问所有内容”之前与 IT 进行对话) .
一些可以帮助您入门的链接:
Microsoft v2 Endpoint Primer - 前段时间写的初级读物,引导您了解 v2 身份验证的工作原理(包括刷新令牌)
v2 Endpoint & Admin Consent - 上述入门的附录,详细介绍了如何实施 Admin Consent。如果您选择仅使用 App,这将是必需的。
Get Access without a User - 演练如何实现 App Only 场景。
顺便说一句,您永远不想将凭据烘焙到您的应用程序代码中。这是开发人员可能犯的最大错误之一,因为它使得获取对系统和数据的高级访问权限对于不良行为者来说是微不足道的。虽然 OAUTH 需要更多时间来设置和配置,但始终值得投资。