javascript - Azure 应用程序中现有访问令牌过期后如何获取访问令牌
问题描述
我在我的 Web 应用程序中使用 iframe,它在 Azure 中注册,IdP 是 MS Azure。现在使用 MSAL,我可以使用 acquireTokenSilent 方法获取 access_token 和 id_token。但是当 access_token 过期时,我如何从 iframe 范围(MSAL 不可用)刷新它。由于这是一个隐式授权,我不持有刷新令牌。
是否可以使用以下任何方法获取新的 access_token
- client_id
- client_secret
- 旧访问令牌或 id_token 和 raw_id_token
我已经尝试了 login.microsoftonline.com 中的“令牌”和“授权”端点,但它们无法为我提供新的 access_token。
解决方案
您可以使用iFrame发送带有用户 cookie 的静默请求,会话将在其中验证请求并发出新的访问令牌。如文档中所述,您可以使用prompt=none选项来完成此操作。
顺便说一句,出于安全考虑,建议您使用auth code flow ,它会在您请求令牌时返回一个刷新令牌给您。
推荐阅读
- javascript - JQuery .find() 可以按 id 查找,但不能按类查找
- sql - 如何在 SQL 中转换浮点值?
- ios - Swift 4:didSet @IBOutlet 调用 viewDidLayoutSubviews,但不使用 addSubview()
- character-encoding - UTF-8 Chars in FTP Greeting
- java - Bas64 解码错误
- android - Gradle sync failed access is denied in android studio
- c# - IdentityServer4 with ASP.NET Core 2.1 Identity - 加载外部登录信息时出错
- netsuite - Execution log not working in Suitescript 2.0 Client script
- ssis - duplicate set key value in SSIS
- conditional - How do you conditionally show fields in "Show" component in react-admin?