我正在尝试创建一个使用 Microsoft Graph 和 OAuth 2.0 身份验证的应用程序。每当我启动我的申请时,我都必须给予同意。
有什么方法可以让应用永久获得用户的同意吗?
最佳答案
正如其他人所指出的,这里有两个选项:
如果您请求范围
offline_access
,您将收到refresh_token
以及您的access_token
。当您的access_token
过期时,可以将refresh_token
提交到/token
端点以获取新的集合。我写了一篇关于 v2 Endpoint 的入门读物,其中介绍了如何使用 Refresh Tokens您可能会发现对此有帮助。
使用
client_credentials
OAuth 授权。此授权专门用于服务到服务/守护程序场景。它们的工作方式略有不同,因为它们使用应用程序范围而不是委托(delegate)范围,并且上下文中没有用户(因此对/me
的调用需要替换为/users/{id }
代替)。客户端凭据也始终需要管理员同意。由于没有对特定用户进行身份验证,因此需要管理员预先授权您的应用程序。一旦发生这种情况,您的应用程序将保持授权(除非管理员明确阻止)。
您可以在Get access without a user下找到有关此过程如何工作的详细信息。
关于azure-active-directory - oauth 2.0 有什么办法获得永久同意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48684139/