TIP
Keep 云:✅
Keep 企业本地部署:✅
Keep 开源:⛔️
Keep 支持通过 Azure 企业 ID(以前称为 Azure AD)进行企业认证,使组织能够使用其现有的 Microsoft 身份平台进行安全的访问管理。
何时使用
- Microsoft 环境: 如果您的组织使用 Microsoft 365 或 Azure 服务,Azure AD 集成提供无缝认证。
- 企业 SSO: 利用 Azure AD 的单一登录功能进行统一访问管理。
设置说明(在 Azure AD 上)
创建 Azure AD 应用程序
- 登录到 Azure 门户
- 导航到 Microsoft Entra ID > 应用注册 > 新注册

- 配置应用程序:
- 名称:"Keep"
INFO
请注意,我们使用的是"注册要与 Microsoft Entra ID 集成的应用程序(您正在开发的应用程序)",因为您正在自行托管 Keep,需要直接控制认证流程和特定实例的权限 - 不同于云/托管版本,Keep 团队已经配置了集中式应用程序注册。

- 配置应用程序(继续)
- 支持的账户类型:"单租户"
INFO
我们建议使用"单租户"以增强安全性,因为它限制只有您组织内的用户才能访问。虽然可以配置多租户,但允许多少 Azure AD 目录中的用户访问您的 Keep 实例,这可能会带来安全风险,除非您有特定的跨组织要求。
- 重定向 URI:"Web" + 您的重定向 URI
INFO
我们使用"Web"平台而不是"单页应用程序 (SPA)",因为 Keep 的后端使用客户端凭证/密钥处理认证流程,这比 SPA 使用的隐式流程更安全。这可以防止在浏览器中暴露令牌,并通过服务端令牌验证和刷新令牌处理提供更强的安全性。
TIP
对于 localhost,重定向将是 http://localhost:3000/api/auth/callback/microsoft-entra-id
对于生产环境,它应该是类似 http://your_keep_frontend_domain/api/auth/callback/microsoft-entra-id

- 最后,点击"注册"
配置认证
创建应用程序后,让我们配置认证。
- 转到"应用注册" -> "所有应用程序"

- 点击您的应用程序 -> "添加证书或密钥"

- 点击"新客户端密钥"并为其命名

- 保留"值",我们很快会将其用作
KEEP_AZUREAD_CLIENT_SECRET

配置组
Keep 将 Azure AD 组映射到具有两个默认组的角色:
- 管理员组(读 + 写)
- NOC 组(只读)
要创建这些组,请转到组 -> 所有组并创建两个组:

保留这些组的对象 ID 并将其用作 KEEP_AZUREAD_ADMIN_GROUP_ID 和 KEEP_AZUREAD_NOC_GROUP_ID。
配置组声明
- 导航到 令牌配置

- 添加组声明:
- 选择"安全组"和"分配给应用程序的组"
- 选择"组 ID"作为声明值


配置应用程序范围
- 转到"公开 API"并点击"添加范围"

- 保留默认应用程序 ID 并点击"保存并继续"

- 添加"default"作为范围名称,同时给出显示名称和描述

- 最后,点击"添加范围"

设置说明(在 Keep 上)
配置 Azure AD 后,您应该有以下内容:
- Azure AD 租户 ID
- Azure AD 客户端 ID
如何获取:

配置
前端
| 环境变量 | 描述 | 必填 | 默认值 |
|---|---|---|---|
| AUTH_TYPE | 设置为 'AZUREAD' 以启用 Azure AD 认证 | 是 | - |
| KEEP_AZUREAD_CLIENT_ID | 您的 Azure AD 应用程序(客户端)ID | 是 | - |
| KEEP_AZUREAD_CLIENT_SECRET | 您的客户端密钥 | 是 | - |
| KEEP_AZUREAD_TENANT_ID | 您的 Azure AD 租户 ID | 是 | - |
| NEXTAUTH_URL | 您的 Keep 应用程序 URL | 是 | - |
| NEXTAUTH_SECRET | NextAuth.js 的随机字符串 | 是 | - |
后端
| 环境变量 | 描述 | 必填 | 默认值 |
|---|---|---|---|
| AUTH_TYPE | 设置为 'AZUREAD' 以启用 Azure AD 认证 | 是 | - |
| KEEP_AZUREAD_TENANT_ID | 您的 Azure AD 租户 ID | 是 | - |
| KEEP_AZUREAD_CLIENT_ID | 您的 Azure AD 应用程序(客户端)ID | 是 | - |
| KEEP_AZUREAD_ADMIN_GROUP_ID | Keep 管理员组(读写)的组 ID | 是 | - |
| KEEP_AZUREAD_NOC_GROUP_ID | Keep NOC(只读)的组 ID | 是 | - |
功能和限制
支持的功能
- 单一登录 (SSO)
- 通过 Azure AD 组进行基于角色的访问控制
- 多因素身份验证(在 Azure AD 中配置时)
限制
请参阅 概述