You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins中通过Okta API实现按需创建Okta用户

Jenkins 按需创建Okta用户作业实现方案

前置配置

  • 申请Okta API权限:进入Okta管理后台创建服务账号,分配okta.users.manage操作权限,生成API Token后妥善留存。
  • Jenkins侧存储凭证:将生成的Okta API Token、你的Okta域名存到Jenkins凭证管理器中,类型选择Secret text即可,禁止硬编码在作业脚本中。
  • 安装必要插件:Jenkins端安装Pipeline、Credentials Binding两个核心插件,优先使用流水线作业实现,扩展性更强。

配置作业运行参数

因为是按需触发的作业,需要先配置构建参数,收集Okta用户必填属性:

  • 添加字符串类型参数:email(用户邮箱,Okta必填)、username(Okta登录用户名)、firstName(用户姓名)、lastName(用户姓氏),有额外自定义属性需求可同步添加对应参数。

核心作业逻辑实现

以下为流水线作业示例脚本,直接复用即可:

pipeline {
    agent any
    parameters {
        string(name: 'email', defaultValue: '', description: '用户邮箱,Okta必填属性')
        string(name: 'username', defaultValue: '', description: 'Okta登录用户名')
        string(name: 'firstName', defaultValue: '', description: '用户姓名')
        string(name: 'lastName', defaultValue: '', description: '用户姓氏')
    }
    environment {
        // 引号内替换为你Jenkins凭证管理器中存储的Okta Token对应的凭证ID
        OKTA_TOKEN = credentials('okta-api-token-id')
        // 替换为你的企业Okta域名
        OKTA_DOMAIN = 'https://你的企业前缀.okta.com'
    }
    stages {
        // 可选:前置校验用户是否已存在,避免重复创建报错
        stage('校验用户是否已存在') {
            steps {
                script {
                    def statusCode = sh(returnStdout: true, script: '''
                    curl -s -o /dev/null -w "%{http_code}" "${OKTA_DOMAIN}/api/v1/users/${email}" \\
                    -H "Authorization: SSWS ${OKTA_TOKEN}"
                    ''').trim()
                    if (statusCode == '200') {
                        error("用户${email}已在Okta中存在,无需重复创建")
                    }
                }
            }
        }
        stage('创建Okta用户') {
            steps {
                sh '''
                curl -X POST "${OKTA_DOMAIN}/api/v1/users?activate=true" \\
                -H "Accept: application/json" \\
                -H "Content-Type: application/json" \\
                -H "Authorization: SSWS ${OKTA_TOKEN}" \\
                -d '{
                    "profile": {
                        "firstName": "'"${firstName}"'",
                        "lastName": "'"${lastName}"'",
                        "email": "'"${email}"'",
                        "login": "'"${username}"'"
                    }
                }'
                '''
            }
        }
    }
}

说明:请求路径中的?activate=true代表创建用户后直接激活,若需要创建后待用户自主激活,删除该参数即可。如果需要添加更多Okta用户自定义属性,直接往请求体的profile字段中新增对应键值对即可。

内容的提问来源于stack exchange,提问作者Ronita Roy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:27:00