产品指南
大数据多维表格
仪表盘
空间站
自动化指南
集成指南
企业AI智能体模板
私有化部署
开发者与扩展
最佳实践
marketing
功能参考
自动化触发器
自动化执行器
第三方集成
节点资源
数据表视图
数据表字段
仪表盘组件
智能任务
AI 向导
公式
空间站
更新日志
视频演示
loading...
在私有化部署完成后,系统默认配备了一套自带的用户体系,支持通过邮箱注册账号,也可借助第三方社交平台进行登录。
然而,多数企业通常拥有自己的专属登录体系,例如,部分企业会选择与企业微信、钉钉、飞书等办公软件的通讯录进行打通,也有企业会采用 LDAP,或者微软的 AD 域等方式,实现账号的统一绑定,进而达成与企业微信等应用的深度整合。
若要实现这些功能,SSO单点登录技术便不可或缺。在我们的私有化部署方案中,默认建议采用 SAML 协议来实现单点登录。
Bika与企业进行联邦认证登录时,Bika是服务提供商(SP),企业自有的身份管理系统是身份提供商(IdP)。本节为您介绍企业IdP与Bika,基于SAML协议进行虚拟用户SSO联邦认证的内部实现流程和配置步骤,以及常用的企业IdP与Bika对接示例。
请确保您使用的企业IdP支持SAML 2.0协议。
SAML(Security Assertion Markup Language,安全断言标记语言)是一种基于 XML 的标准,用于在不同的安全域之间交换身份验证和授权数据。它允许用户使用单一的凭据(如用户名和密码)访问多个相关的应用程序,而无需在每个应用程序中单独进行登录,这就是所谓的单点登录(SSO,Single Sign-On)。
SAML 的基本原理涉及三个主要角色:
当用户尝试访问服务提供者的资源时,服务提供者会将用户重定向到身份提供者进行身份验证。用户在身份提供者处完成登录后,身份提供者会生成一个包含用户身份信息的 SAML 断言,并将其发送回服务提供者。服务提供者验证断言的有效性后,允许用户访问其资源。
SSO接入方式 | 适应版本 | 配置方式 | IdP发起登录 | SP 发起登录 | 多个IdP | 域名安全 |
---|---|---|---|---|---|---|
整个站点 | 私有化/企业 | 管理后台 | 支持 | 支持 | 不支持 | 不支持 |
每个空间站 | SaaS | 空间站-安全设置 | 不支持 | 支持 | 支持 | 支持 |
在私有化部署版本中,站点级 SAML 配置允许管理员在整个站点范围内设置 SAML 单点登录。这意味着所有的空间站租户都可以继承这些配置,除非租户级有自己的特定配置覆盖。这种配置方式适用于希望在整个企业范围内统一管理 SAML 设置的场景。
适用场景:
空间站租户级 SAML 配置允许每个租户根据自己的需求定制 SAML 设置。这在企业内部不同部门或业务单元有不同的身份验证要求时非常有用。租户级配置会覆盖站点级的通用配置,以满足租户的特定需求。
适用场景:
管理后台
未登录前提下在登录页点击“使用账户名继续”, 如何登录请参考“站长管理后台”章节
当您在IdP方已完成配置, 将您的IdP必要信息填入“SSO配置”
当IdP方登录成功后SAML回调到SP方, NameID作为识别IdP方的员工唯一性, 规则介绍
Match Against: NameID的匹配规则,
Action if User not match: 如果匹配不到用户, 您期望SP如何处理
以上配置后, 打开“Trun On”, 点击保存, 退出站长管理后台,重新进入系统
登录页会出现“Continue with Sign Sign On”按钮, 点击登录验证流程
以下为您详细介绍以 Okta 作为 IDP(身份提供商)时,接入我们产品实现 SSO(单点登录)的配置流程。
登录 Okta 管理控制台:使用具有管理员权限的 Okta 账号登录到 Okta 管理控制台。
创建应用集成:
配置 SAML 应用设置:
打开Okta应用获取IdP配置:
通过以上详细的配置流程,企业能够便捷地将 Okta 作为 IDP 接入我们的产品,实现高效、安全的 SSO 单点登录功能,提升企业员工的办公体验和工作效率。
完成上述操作后,企业内部的站点登录信息已成功打通。在这种情况下,通常用户登录时,系统会自动创建一个与企业绑定的账号。然而,在某些场景下,您可能有进一步的需求。
例如,您希望用户登录后,默认直接跳转到预先设置好的公司全员空间站,而非新注册用户默认分配的个人专属空间站。
API调用请查阅《使用站点级OpenAPI》章节
配置 Webhook:在企业的身份管理系统(如 Active Directory、Okta 等)中配置 outgoing-webhooks,当员工信息发生变化(如创建、更新、删除)时,向 Bika.ai 的私有化部署版本发送 HTTP POST 请求。
处理 Webhook 事件:
CallbackURL(Post) 请求体:
{
"eventType": "BEFORE_MEMBER_JOINED",
"member": {
"spaceId": "join space id",
"userId": "bika user id",
"teamId": "want to joined team Id",
"roleIds": "the role id list",
"joinInfo": {
"joinType": "LINK_INVITATION or EMAIL_INVITATION",
"inviteToken": "when join type is LINK_INVITATION",
"inviterUserId": "when join type is LINK_INVITATION",
"email": "when join is EMAIL_INVITATION ",
"emailInvitationId": "when join is EMAIL_INVITATION "
}
}
}
本功能正在施工中
本功能正在施工中