# 凭证管理 (Credentials)

**凭证是n8n连接外部世界的"钥匙"**。它用于安全地存储和管理连接外部服务（如数据库、API、邮箱）所需的授权信息（如API密钥、OAuth令牌、用户名密码等）。

## 📚 学习资源

- **图文教程**：[n8n凭证管理实战指南](https://jishuzhan.net/article/1951148541186977794)
- **官方文档**：[Credentials Management](https://docs.n8n.io/credentials/)

## 🔐 凭证的重要性

**🛡️ 安全存储**：n8n对凭证进行加密存储，保护您的账户安全
**🎯 集中管理**：在一个地方统一创建、查看和管理所有凭证
**♻️ 重复使用**：创建一次凭证后，可在多个工作流和节点中重复使用
**📋 最佳实践**：将敏感信息与工作流逻辑分离，更安全、更易于维护

## 🔧 凭证类型和配置

### 常用凭证类型

| 凭证类型 | 用途 | 配置信息 |
|---------|------|----------|
| **API Key** | 第三方服务认证 | API密钥、密钥名称 |
| **OAuth2** | 社交媒体、云服务 | 客户端ID、密钥、授权URL |
| **基本认证** | 简单用户名密码 | 用户名、密码 |
| **数据库连接** | 数据库访问 | 主机、端口、用户名、密码 |
| **SMTP邮箱** | 邮件发送 | 服务器、端口、认证信息 |

### 大模型凭证配置

AI模型集成是n8n的重要功能，需要配置相应的API凭证：

=== "OpenAI GPT"
    ```yaml
    凭证类型: OpenAI
    API Key: sk-xxxxxxxxxxxxxxxxxxxxxxxx
    Organization ID: org-xxxxxxxxxxxxxxxx (可选)
    API Base URL: https://api.openai.com/v1 (默认)
    ```

=== "Claude (Anthropic)"
    ```yaml
    凭证类型: Anthropic
    API Key: sk-ant-xxxxxxxxxxxxxxxxxxxxxxxx
    API Version: 2023-06-01
    ```

=== "Google Gemini"
    ```yaml
    凭证类型: Google AI
    API Key: AIzaxxxxxxxxxxxxxxxxxxxxxxxxx
    ```

=== "本地模型 (Ollama)"
    ```yaml
    凭证类型: HTTP Request
    Base URL: http://localhost:11434
    认证: 无 (本地部署)
    ```

### 邮箱凭证配置

邮件自动化是常见需求，以下是主流邮箱服务配置：

=== "Gmail"
    ```yaml
    类型: Gmail OAuth2
    客户端ID: your-client-id.googleusercontent.com
    客户端密钥: your-client-secret
    刷新令牌: 通过OAuth流程获得
    ```
    
    !!! tip "Gmail设置提示"
        需要在Google Cloud Console启用Gmail API并创建OAuth2凭证

=== "Outlook/Hotmail"
    ```yaml
    类型: Microsoft OAuth2
    应用程序ID: your-application-id
    客户端密钥: your-client-secret
    租户ID: common (个人账户)
    ```

=== "企业邮箱 (SMTP)"
    ```yaml
    类型: SMTP
    主机: smtp.yourcompany.com
    端口: 587 (TLS) 或 465 (SSL)
    用户名: your-email@company.com
    密码: your-app-password
    安全连接: STARTTLS
    ```

### 数据库凭证配置

=== "MySQL"
    ```yaml
    类型: MySQL
    主机: localhost 或 mysql.example.com
    端口: 3306
    数据库: your_database_name
    用户名: your_username
    密码: your_password
    SSL: 启用 (生产环境推荐)
    ```

=== "PostgreSQL"
    ```yaml
    类型: PostgreSQL
    主机: localhost
    端口: 5432
    数据库: your_database
    用户名: postgres
    密码: your_password
    SSL模式: require
    ```

=== "MongoDB"
    ```yaml
    类型: MongoDB
    连接字符串: mongodb://username:password@host:port/database
    数据库: your_database_name
    认证数据库: admin
    ```

## 🔒 安全最佳实践

### 凭证安全原则

!!! danger "安全清单"
    - [ ] **强密码策略**：使用复杂且唯一的密码
    - [ ] **最小权限原则**：只授予必要的权限
    - [ ] **定期轮换**：定期更新API密钥和密码
    - [ ] **访问审计**：记录凭证使用情况
    - [ ] **环境隔离**：开发/测试/生产环境使用不同凭证

### 凭证命名规范

建议采用清晰的命名规范：

```
服务名_环境_用途_版本
例如：
- gmail_prod_marketing_v1
- mysql_dev_analytics_v2
- openai_prod_chatbot_v1
```

### 权限控制

| 权限级别 | 适用场景 | 权限范围 |
|----------|----------|----------|
| **只读** | 数据查询、报告生成 | 查看权限 |
| **读写** | 数据同步、内容管理 | 增删改查 |
| **管理员** | 系统集成、完整控制 | 全部权限 |

## 🛠️ 凭证创建和管理

### 创建新凭证

1. **进入凭证管理**
   - 点击左侧菜单 "Credentials"
   - 或在节点配置中点击 "Create New"

2. **选择凭证类型**
   - 从预定义类型中选择
   - 或选择 "Generic Authentication" 自定义

3. **填写配置信息**
   - 输入必要的认证信息
   - 设置凭证名称和描述

4. **测试连接**
   - 使用 "Test" 功能验证凭证
   - 确保连接成功后保存

### 凭证使用流程

**创建凭证** → **配置参数** → **测试连接** → **保存凭证** → **在节点中使用** → **工作流执行**

## 🔄 凭证维护和故障排除

### 常见问题和解决方案

| 问题 | 可能原因 | 解决方案 |
|------|----------|----------|
| **认证失败** | 密码或密钥错误 | 重新获取并更新凭证 |
| **权限不足** | 账户权限限制 | 检查并提升账户权限 |
| **连接超时** | 网络或服务器问题 | 检查网络连接和服务状态 |
| **凭证过期** | Token或密钥过期 | 重新授权或更新凭证 |

### 维护策略

**定期检查**：
```bash
# 凭证健康检查清单
□ 测试所有活跃凭证的连接状态
□ 检查即将过期的Token
□ 更新弱密码和过期凭证
□ 清理不再使用的凭证
□ 备份重要凭证配置
```

**监控和告警**：
- 设置凭证失效监控
- 配置自动化健康检查工作流
- 建立凭证问题通知机制

## 📚 实践示例

### 示例：配置Gmail发送工作报告

1. **创建Gmail OAuth2凭证**
2. **设计工作流**：定时触发 → 生成报告数据 → 格式化邮件内容 → Gmail发送邮件
3. **配置邮件节点使用凭证**
4. **测试和部署**

详细图文示例请参考：[n8n凭证管理实战指南](https://jishuzhan.net/article/1951148541186977794)

---

掌握凭证管理是安全使用n8n的基础，也是构建可靠自动化系统的关键。

[上一章：界面介绍](interface/){ .md-button } [下一章：n8n汉化](localization/){ .md-button .md-button--primary }
