我想使用应用程序 ID 和 secret 对 AAD 用户进行身份验证,以通过 MSAL 访问 powerBi 资源。所以我想获取访问 token 并将其缓存在 SQL Db 中。
经历了 documentation但它解释了使用 MSAL 进行登录的场景。 还经历了tutorial 我能够执行必要的实现来获取 token 。
在这种情况下,我如何获取访问 token 并缓存它?
最佳答案
如其他答案所示,当您有用户登录时,缓存 token 很有用,因为一旦访问 token 过期(通常在 1 小时后),您不希望继续提示用户重新进行身份验证。 因此,为了帮助解决这些情况,Azure AD 发出一个 refresh token along with an access token that is used to fetch access tokens once they expire .需要缓存来缓存这些刷新 token ,因为它们的有效期为 90 天。
当应用以自身身份登录(而不是登录用户)时,client credentials flow被使用,它只需要应用程序 ID (clientId) 和凭据( secret /证书)来颁发访问 token 。 MSAL 库将自动检测访问 token 何时过期,并将使用 clientId/凭据组合自动获取新的访问 token 。所以不需要缓存。
您应该查看的示例是 this一个。
关于powerbi - 使用 MSAL 获取访问 token 并将其缓存在 SQL DB 中,而无需使用 MSAL 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57888472/