如何让Temporal集群感知Azure AD的RSA密钥轮换以避免认证失败?
解决Temporal集群适配Azure AD密钥自动轮换的问题
针对你遇到的Temporal缓存Azure AD RSA密钥、密钥轮换后导致认证失败的问题,可通过以下方案处理:
配置密钥自动刷新间隔
在Temporal的认证配置中,为jwtKeyProvider添加refreshInterval参数,指定Temporal自动拉取最新密钥的周期(比如5分钟,可根据Azure AD实际轮换频率调整)。修改后的配置示例:authorization: authorizer: default claimMapper: default permissionsClaimName: roles jwtKeyProvider: keySourceURIs: - https://login.microsoftonline.com/{azure_tenant_id}/discovery/v2.0/keys refreshInterval: 5m该参数会让Temporal定期从Azure AD的密钥发现端点拉取最新密钥,自动替换缓存中的旧密钥,避免因密钥轮换导致的认证失败。
验证刷新机制有效性
- 查看Temporal集群日志,确认每隔设置的
refreshInterval周期,会出现拉取新密钥的相关日志条目 - 在测试环境手动触发Azure AD密钥轮换后,发起工作流请求,检查是否还会出现
PERMISSION_DENIED: Request unauthorized.错误
- 查看Temporal集群日志,确认每隔设置的
额外排查要点
- 确保Temporal集群网络能正常访问Azure AD的密钥发现端点,无防火墙或代理拦截
- 若使用旧版本Temporal,建议升级至最新稳定版,新版本对JWT密钥轮换的支持更成熟
内容的提问来源于stack exchange,提问作者Pradeep
相关产品推荐
相关产品推荐

