API 管理 REST API 中的长期访问令牌
Long-term access token in API Management REST API
我使用 API 管理 REST API 来创建和管理用户,我必须每 30 天重新生成一次访问令牌。每个月更新我的网络应用程序有点麻烦。
有没有更好的方法?
我知道我也可以通过编程来完成,但我不确定每次都这样做是否是一种健康的做法。
有很多方法可以处理访问令牌。
最简单的,你可以把token放到一个缓存系统中,然后设置过期时间(就像在Redis中使用SETEX一样),你的情况是30天后。所以 30 天后,您的访问令牌将被缓存系统自动删除。
当您需要访问令牌但发现它丢失时,这意味着访问令牌已过期或您从未生成过访问令牌。不管怎样,您可以在程序中生成访问令牌并将其放入缓存系统。之后,在接下来的 30 天内,您可以随时使用该访问令牌。
此外,由于您的机器和服务器之间存在时间差异,建议您将缓存系统中的过期时间设置为比实际过期时间早一点。因此,在您的情况下,您可以在缓存系统中将过期时间设置为 29 天,这保证了访问令牌在远程服务器中绝对有效。
无论您通过 APIM SAS 令牌做什么,您都可以通过 ARM 完成。使用 ARM,您可以创建服务身份并使用它来管理您的资源:https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal?view=azure-cli-latest
我使用 API 管理 REST API 来创建和管理用户,我必须每 30 天重新生成一次访问令牌。每个月更新我的网络应用程序有点麻烦。
有没有更好的方法?
我知道我也可以通过编程来完成,但我不确定每次都这样做是否是一种健康的做法。
有很多方法可以处理访问令牌。
最简单的,你可以把token放到一个缓存系统中,然后设置过期时间(就像在Redis中使用SETEX一样),你的情况是30天后。所以 30 天后,您的访问令牌将被缓存系统自动删除。
当您需要访问令牌但发现它丢失时,这意味着访问令牌已过期或您从未生成过访问令牌。不管怎样,您可以在程序中生成访问令牌并将其放入缓存系统。之后,在接下来的 30 天内,您可以随时使用该访问令牌。
此外,由于您的机器和服务器之间存在时间差异,建议您将缓存系统中的过期时间设置为比实际过期时间早一点。因此,在您的情况下,您可以在缓存系统中将过期时间设置为 29 天,这保证了访问令牌在远程服务器中绝对有效。
无论您通过 APIM SAS 令牌做什么,您都可以通过 ARM 完成。使用 ARM,您可以创建服务身份并使用它来管理您的资源:https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal?view=azure-cli-latest