Azure active directory Microsoft Graph API-客户端凭据授予流

Azure active directory Microsoft Graph API-客户端凭据授予流,azure-active-directory,microsoft-graph-api,Azure Active Directory,Microsoft Graph Api,我正在使用客户端凭据授予流实现Microsoft Graph API,如中所述。此外,该应用程序已在注册 这里的目的是允许我们的web应用程序执行诸如检查用户日历和代表用户发送邮件之类的操作,而不需要每个用户都进行身份验证并授予对应用程序的访问权。这样做的目的是让它对他们透明 所以我想我已经成功了,但我想澄清一些事情 授予管理员许可后,如果应用程序的权限没有更改,是否需要再次执行 当请求访问令牌时,它看起来将在一小时后过期。有没有办法让它变长?否则,确保令牌未过期的典型工作流是什么样的?每次应

我正在使用客户端凭据授予流实现Microsoft Graph API,如中所述。此外,该应用程序已在注册

这里的目的是允许我们的web应用程序执行诸如检查用户日历和代表用户发送邮件之类的操作,而不需要每个用户都进行身份验证并授予对应用程序的访问权。这样做的目的是让它对他们透明

所以我想我已经成功了,但我想澄清一些事情

  • 授予管理员许可后,如果应用程序的权限没有更改,是否需要再次执行
  • 当请求访问令牌时,它看起来将在一小时后过期。有没有办法让它变长?否则,确保令牌未过期的典型工作流是什么样的?每次应用程序发出API请求以确保令牌有效时,我是否应该请求令牌?或者存储令牌,但在到期前获取新令牌

管理员许可仅为授予许可时注册的权限提供许可。因此,是的,如果您更改权限,您还需要在应用程序接收新作用域之前重复管理员同意

根据设计,访问令牌的寿命很短。您不应该在每个请求中都请求一个新令牌,因为这会增加不必要的开销。相反,您应该在新令牌过期后才请求它

包含您的令牌的AAD响应还将提供过期时间:

{
  "access_token": "eyJ0eXAiOiJKV1QiLCJ...",
  "expires_in": 3599,
  "token_type": "Bearer",
  "scope": "https://graph.microsoft.com/mail.read https://graph.microsoft.com/user.read",
}

您可以在创建对象时将令牌响应水合到对象中。在调用图表之前,您需要检查过期时间,以确定应用程序是否需要提前刷新令牌

是的,这很有道理。谢谢