单点登录 (SSO)
单点登录(SSO)允许用户使用单一凭证对多个应用程序进行身份验证。此插件支持OpenID Connect(OIDC)和OAuth2提供商。
SAML支持即将推出。在我们的GitHub上为该功能请求投票
安装
使用方法
注册OIDC提供商
要注册OIDC提供商,请使用createOIDCProvider
端点并提供提供商所需的配置详情。
系统将使用提供商ID自动生成重定向URL。例如,如果提供商ID是hydra
,则重定向URL将是{baseURL}/api/auth/sso/hydra
。注意,根据您的基本路径配置,/api/auth
可能会有所不同。
使用SSO登录
要使用SSO提供商登录,您可以调用signIn.sso
您可以使用匹配域名的电子邮件进行登录:
或者您可以指定域名:
如果提供商与组织关联,您还可以使用组织别名登录:
或者,您可以使用提供商的ID登录:
要使用服务器API,您可以使用signInSSO
当用户通过身份验证时,如果用户不存在,将使用provisionUser
函数配置用户。如果启用了组织配置且提供商与组织关联,则用户将被添加到该组织。
Schema
该插件需要在ssoProvider
表中添加额外字段来存储提供商的配置。
Field Name | Type | Key | Description |
---|---|---|---|
id | string | 数据库标识符 | |
issuer | string | - | 发行者标识符 |
domain | string | - | 提供商的域名 |
oidcConfig | string | - | OIDC配置 |
userId | string | - | 用户ID |
providerId | string | - | 提供商ID。用于标识提供商并生成重定向URL。 |
organizationId | string | - | 组织ID。如果提供商与组织链接。 |
选项
服务器
provisionUser: 当用户使用SSO提供商登录时配置用户的自定义函数。
organizationProvisioning: 向组织配置用户的选项。
Prop | Type | Default |
---|---|---|
provisionUser? | function | - |
organizationProvisioning? | object | - |