基于 Okta Management API 实现,采用 SSWS Bearer(API Token)鉴权。
包信息
- NuGet 包:
Bitzsoft.Integrations.IdentityProvider.Okta - 接口:
IIdentityProviderService - 鉴权:SSWS Bearer(API Token)
- Provider ID:
okta
配置
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
OktaUrl | string | 是 | — | Okta 租户地址(形如 https://dev-example.okta.com) |
ApiToken | string | 是 | — | API Token(SSWS 鉴权凭据) |
HttpClientName | string | 否 | IdentityProviderOkta | 业务 HttpClient 命名 |
{ "IdentityProvider": { "Okta": { "OktaUrl": "https://dev-example.okta.com", "ApiToken": "00your-api-token" } }}注册
// 方式一:IConfiguration(默认读取 "IdentityProvider:Okta" 配置节)services.AddOktaIdentityProvider(configuration);
// 方式二:委托配置services.AddOktaIdentityProvider(options =>{ options.OktaUrl = "https://dev-example.okta.com"; options.ApiToken = "00your-api-token";});使用示例
// 创建用户var user = await idp.CreateUserAsync(new CreateUserRequest{ FirstName = "Alice", LastName = "Zhang", Email = "alice@example.com", Login = "alice@example.com"});
// 查询用户var found = await idp.GetUserAsync("alice@example.com");
// 激活 / 停用await idp.ActivateUserAsync(user.UserId);await idp.DeactivateUserAsync(user.UserId);
// 用户组管理await idp.AddUserToGroupAsync(new UserGroupRequest{ UserId = user.UserId, GroupId = "00g123456789"});
var groups = await idp.ListGroupsAsync();鉴权机制
- 每个请求通过
Authorization: SSWS {ApiToken}头携带 API Token。 - Token 在 Okta 管理控制台创建后获取,为静态令牌。
已知限制
不包含 Token 自动刷新;调用方需自行管理令牌生命周期。Provider 注册为 Transient,避免 Singleton 捕获 typed HttpClient。