首页 > 解决方案 > Azure 应用程序中现有访问令牌过期后如何获取访问令牌

问题描述

我在我的 Web 应用程序中使用 iframe,它在 Azure 中注册,IdP 是 MS Azure。现在使用 MSAL,我可以使用 acquireTokenSilent 方法获取 access_token 和 id_token。但是当 access_token 过期时,我如何从 iframe 范围(MSAL 不可用)刷新它。由于这是一个隐式授权,我不持有刷新令牌。

是否可以使用以下任何方法获取新的 access_token

  1. client_id
  2. client_secret
  3. 旧访问令牌或 id_token 和 raw_id_token

我已经尝试了 login.microsoftonline.com 中的“令牌”和“授权”端点,但它们无法为我提供新的 access_token。

标签: javascriptazuremsal

解决方案


您可以使用iFrame发送带有用户 cookie 的静默请求,会话将在其中验证请求并发出新的访问令牌。如文档中所述,您可以使用prompt=none选项来完成此操作。

顺便说一句,出于安全考虑,建议您使用auth code flow ,它会在您请求令牌时返回一个刷新令牌给您。


推荐阅读