
## Google Cloud Run服务认证工作流
### 工作流概述
这是一个专门用于处理Google Cloud Run服务认证的n8n子工作流,能够自动管理身份令牌的验证和刷新过程。
### 适用对象
任何从n8n调用Google Cloud Run服务的用户,需要一个可重用的认证层,而不是在每个工作流中手动配置令牌。
### 功能说明
#### 工作原理
– 检查传入的id_token是否存在且仍然有效(带5分钟缓冲时间)
– 如果令牌有效,则直接复用
– 如果令牌无效或即将过期,使用服务账户签署短期JWT,在Google令牌端点交换,返回新的id_token
– 同时传递service_url和可选的service_path,使调用者能够立即访问端点
#### 主要特性
– **自动令牌验证**:解码JWT检查过期时间,避免不必要的API调用
– **错误预防**:5分钟过期缓冲,防止工作流执行中途失败
– **高效复用**:令牌有效期为60分钟,仅在需要时刷新
– **循环优化**:可与Merge/Split策略配对,为每个项目附加id_token
### 设置步骤
1. 使用服务账户private_key添加JWT(PEM)凭据
2. 在变量中设置client_email(来自密钥)并确认token_uri为https://oauth2.googleapis.com/token
3. 使用service_url(和可选的service_path)调用此子工作流
4. 可选包含先前的id_token以启用复用
### 输入/输出
**输入参数:**
– id_token(可选)
– service_url
– service_path
**输出结果:**
– id_token
– service_url
– service_path
### 使用方式
#### 作为子工作流
从主工作流使用Execute Workflow节点调用:
– 可选输入:id_token(用于复用)
– 返回:新的或已验证的令牌
#### 令牌逻辑
– **有有效令牌**:返回现有令牌
– **令牌即将过期**:获取新令牌
– **无令牌**:生成全新令牌
### 技术说明
– **5分钟缓冲**:如果令牌在5分钟内过期,则刷新令牌,防止执行中途过期
– **凭据安全**:将凭据保存在n8n凭据中(节点中不包含密钥)
– **循环支持**:设计用于循环场景,可与Merge/Split策略配合使用
### 节点配置
工作流包含多个关键节点:
– **If Token**:检查令牌是否存在
– **Decode JWT**:解码JWT令牌验证有效性
– **If**:检查令牌是否在5分钟内过期
– **Sign New JWT**:签署新的JWT令牌
– **Bearer Token Request**:向Google令牌端点请求Bearer令牌
– **Return Values**:返回最终结果
### 最佳实践
– 将此工作流设计为可重用的子工作流
– 在主工作流中使用Execute Workflow节点调用
– 在循环场景中与Merge/Split策略配对使用
– 始终保持凭据在n8n凭据管理器中安全存储

评论(0)