我正在使用一个承载令牌访问一个网站。我将这个标记添加到Authorization HTTP-header,我可以访问开发网站。这是安全所必需的。我很惊讶,默认情况下,Bearer令牌将在1小时内到期。它有任何方法来修复它并改变令牌的生命周期吗?
UPD:我已经知道,不,这是不可能的。有办法把它提高到12小时。我没有试过,但我想得到更好的选择。
我尝试了另一个选择:身份感知代理-不是我的选择,它只适用于GAE或HTTPS负载均衡器。我使用没有HTTPS负载均衡器的CloudRun。
发布于 2022-01-31 14:09:32
这是一个很开放的问题,因为很多事情都取决于不同的变量。您正在使用GCP、ApiGee或其他什么。
通常,正如guillaume blaquiere在注释中提到的那样,您可以创建Service Account,其中Access Token的有效期为12小时。它在GCP IAM 创建短期服务帐户凭据-生成OAuth 2.0访问令牌中有很好的描述。
默认情况下,OAuth 2.0访问令牌的有效期最长为1小时(3,600秒)。但是,您可以将这些令牌的最大生存期延长到12小时(43,200秒)。
由于安全原因,使用未过期的访问令牌并不是最好的方法。推荐的方法是使用access token和refresh token。
GCP还提供了一个名为ApiGee的产品。在ApiGee文档中,您可以找到一些最佳实践的示例,如用OAuth保护API和较低安全的AntiPatterns,其中展示了使用30分钟access token和refresh token的示例,这两个示例的有效期为200天。
<OAuthV2 name="GenerateAccessToken">
<Operation>GenerateAccessToken</Operation>
<ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
<RefreshTokenExpiresIn>17280000000</RefreshTokenExpiresIn> <!-- 200 days -->
<SupportedGrantTypes>
<GrantType>password</GrantType>
</SupportedGrantTypes>
<GenerateResponse enabled="true"/>
</OAuthV2>有关此方法的更多细节,您可以在请求访问令牌和授权代码.授权文档中找到。
来总结一下.
在GCP中,您可以将access token的默认验证从1小时延长到12小时,而不是出于安全原因。进一步扩展这段时间,您可以通过使用refresh token实现。
有用链接:
https://stackoverflow.com/questions/70766449
复制相似问题