身份提供者域统一了 3 家供应商的用户管理、状态控制和用户组管理能力。所有供应商实现同一个 IIdentityProviderService 接口。
统一接口(13 方法)
IIdentityProviderService 围绕用户生命周期和用户组组织,共 13 个成员:
| 分类 | 方法 | 说明 |
|---|---|---|
| 属性 | ProviderName | 供应商名称 |
| 用户管理 | CreateUserAsync | 创建用户 |
| 用户管理 | GetUserAsync | 查询单个用户 |
| 用户管理 | UpdateUserAsync | 更新用户信息 |
| 用户管理 | DeleteUserAsync | 删除用户 |
| 用户管理 | ListUsersAsync | 查询用户列表 |
| 用户状态 | ActivateUserAsync | 激活用户 |
| 用户状态 | DeactivateUserAsync | 停用用户 |
| 用户状态 | ResetPasswordAsync | 重置用户密码 |
| 用户组管理 | AddUserToGroupAsync | 将用户加入用户组 |
| 用户组管理 | RemoveUserFromGroupAsync | 将用户移出用户组 |
| 用户组管理 | ListGroupsAsync | 查询用户组列表 |
鉴权方式对比
| 供应商 | 鉴权机制 | Token 注入 | 令牌刷新 |
|---|---|---|---|
| Okta | SSWS Bearer(API Token) | Authorization: SSWS {token} | 无(静态 Token) |
| Keycloak | OAuth2 client_credentials | Authorization: Bearer {token} | POST /realms/{realm}/protocol/openid-connect/token |
| Auth0 | OAuth2 client_credentials | Authorization: Bearer {token} | POST https://{tenant}.auth0.com/oauth/token |
供应商清单
| 供应商 | Provider ID | API 基地址 | NuGet 包 |
|---|---|---|---|
| Okta | okta | {tenant}.okta.com | Bitzsoft.Integrations.IdentityProvider.Okta |
| Keycloak | keycloak | {host}:8080(自托管) | Bitzsoft.Integrations.IdentityProvider.Keycloak |
| Auth0 | auth0 | {tenant}.auth0.com | Bitzsoft.Integrations.IdentityProvider.Auth0 |