TIP
对于每个与认证相关的问题或疑问,请加入我们的 Slack。
Keep 支持各种认证提供商和架构,以适应不同的部署策略和安全需求,从开发环境到生产设置。
认证提供商
- 无认证 - 快速设置,用于测试或内部使用场景。
- 数据库 - 简单的用户名/密码认证。适用于小团队或开发/预发布环境。用户和哈希密码存储在数据库上。
- Auth0 - 使用 Auth0 实现可扩展的、基于 Auth0 的认证。
- Keycloak - 使用 Keycloak 实现企业认证方法,如 SSO/SAML/OIDC、具有自定义角色的高级 RBAC、基于资源的权限以及与用户目录(LDAP)的集成。
- AzureAD - 使用 Azure AD 实现 SSO/SAML/OIDC 企业认证。
- Okta - 使用 Okta 实现 SSO/OIDC 认证。
- OneLogin - 使用 OneLogin 实现 SSO/OIDC 认证。
选择正确的认证策略取决于您的具体使用场景、安全要求和部署环境。您可以阅读更多关于每个认证提供商的信息。
认证功能比较
| 身份提供商 | RBAC | SAML/OIDC/SSO | LDAP | 基于资源的权限 | 用户管理 | 组管理 | 本地部署 | 许可证 |
|---|---|---|---|---|---|---|---|---|
| 无认证 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | OSS |
| 数据库 | ✅ (预定义角色) | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | OSS |
| Auth0 | ✅ (预定义角色) | ✅ | 🚧 | 🚧 | ✅ | 🚧 | ❌ | EE |
| Keycloak | ✅ (自定义角色) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | EE |
| Oauth2Proxy | ✅ (预定义角色) | ✅ | ❌ | ❌ | N/A | N/A | ✅ | OSS |
| Azure AD | ✅ (预定义角色) | ✅ | ❌ | ❌ | 通过 Azure AD | 通过 Azure AD | ✅ | EE |
| Okta | ✅ (预定义角色) | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | OSS |
| OneLogin | ✅ (预定义角色) | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | OSS |
如何配置
TIP
某些认证提供商需要额外的环境变量。这些将在特定的认证提供商页面上详细说明。
Keep 上的认证方案通过环境变量控制,包括后端(Keep API)和前端(Keep UI)。
| 身份提供商 | 环境变量 | 需要的额外变量 |
|---|---|---|
| 无认证 | AUTH_TYPE=NOAUTH | 无 |
| 数据库 | AUTH_TYPE=DB | KEEP_JWT_SECRET |
| Auth0 | AUTH_TYPE=AUTH0 | AUTH0_DOMAIN, AUTH0_CLIENT_ID, AUTH0_CLIENT_SECRET |
| Keycloak | AUTH_TYPE=KEYCLOAK | KEYCLOAK_URL, KEYCLOAK_REALM, KEYCLOAK_CLIENT_ID, KEYCLOAK_CLIENT_SECRET |
| Oauth2Proxy | AUTH_TYPE=OAUTH2PROXY | OAUTH2_PROXY_USER_HEADER, OAUTH2_PROXY_ROLE_HEADER, OAUTH2_PROXY_AUTO_CREATE_USER |
| AzureAD | AUTH_TYPE=AZUREAD | 请参阅 AzureAD 配置 |
| Okta | AUTH_TYPE=OKTA | OKTA_DOMAIN, OKTA_CLIENT_ID, OKTA_CLIENT_SECRET |
| OneLogin | AUTH_TYPE=ONELOGIN | 请参阅 OneLogin 配置 |
有关每种认证策略的更多详细信息,包括设置说明和影响,请参阅相应部分。