【问题标题】:Azure Graph API: Handling access token in Quartz.NET scheduled jobAzure Graph API:处理 Quartz.NET 计划作业中的访问令牌
【发布时间】:2021-02-17 10:14:17
【问题描述】:

我正在对 Azure Graph API 进行一些研究,我计划通过 Angular 应用程序和计划作业 (Quartz.NET) 使用这些 API

我在前端部分得到了这一点,我使用Msal Service 来处理用户身份验证以获取访问令牌。

但是..如果我要在计划的作业中向 Azure Graph API 发出请求,我是否应该在用户在前端进行身份验证后存储用户访问令牌,然后在计划中使用它工作?并且在它到期之前简单地更新它?

我查过token lifetimes,但我还是不太清楚。

问题:我怎样才能让用户只验证一次,但以后继续从后端请求他们的信息?

【问题讨论】:

    标签: .net azure access-token azure-ad-graph-api msal


    【解决方案1】:

    无论您是从前端还是后端获取访问令牌,都不会影响它。 Access_tokens 是短暂的,您必须在它们过期后刷新它们才能继续访问资源。

    您可以使用将在短时间内到期的访问令牌(默认有效期为一小时)继续请求,您需要使用refresh token定期更新它。

    但是,您使用的Msal Service 基于不提供刷新令牌的implicit grant flow。您可以在前端再次获取令牌。

    id_tokens 和 access_tokens 都会在短时间后过期 时间,因此您的应用必须准备好刷新这些令牌 定期。要刷新任一类型的令牌,您可以执行 使用 prompt=none 参数从上面相同的隐藏 iframe 请求 控制身份平台的行为。

    【讨论】:

    • 谢谢,看来我可以解决我所有关于 azure auth 的前端编码。但是我仍然对如何在后端继续请求用户数据感到困惑(在用户验证一次之后)
    • 正如我在回复中所说,Access_tokens 是短暂的。您只能在令牌有效期内请求用户数据。然后,您需要再次进行身份验证。如果你只是在后端使用访问令牌,最好使用client credentials flow,它是在没有用户的情况下进行身份验证的,并且可以使用刷新令牌进行更新。
    猜你喜欢
    • 2011-11-20
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多