Okta · Arazzo Workflow

Okta Enroll and Activate User Factor

Version 1.0.0

Enroll an MFA factor for a user and activate it with a passcode.

1 workflow 1 source API 1 provider
View Spec View on GitHub IdentityWorkforce IdentityCustomer IdentityAuthenticationAuthorizationSingle Sign-OnMulti-Factor AuthenticationIdentity GovernancePrivileged AccessAI AgentsCross-App AccessMCPPlatformArazzoWorkflows

Provider

okta

Workflows

enroll-and-activate-factor
Enroll an MFA factor and activate it with a passcode.
Enrolls a factor of the supplied type and provider for a user, then activates the pending factor with a passcode.
2 steps inputs: factorType, oktaApiToken, passCode, provider, userId outputs: activatedStatus, factorId
1
enrollFactor
enrollFactor
Enroll the user in a supported factor, leaving it in a pending activation state.
2
activateFactor
activateFactor
Activate the pending factor by submitting the user's one-time passcode.

Source API Descriptions

Arazzo Workflow Specification

okta-enroll-and-activate-factor-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Okta Enroll and Activate User Factor
  summary: Enroll an MFA factor for a user and activate it with a passcode.
  description: >-
    Sets up multi-factor authentication for a user. The workflow enrolls a
    supported factor for the user and then activates the pending factor using a
    one-time passcode, completing the enrollment so the factor can be used for
    verification. The new factor id is chained from enrollment into activation.
    Every step spells out its request inline, including the SSWS API token
    header, so the flow can be read and executed without opening the underlying
    OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: oktaApi
  url: ../openapi/okta-openapi-original.yml
  type: openapi
workflows:
- workflowId: enroll-and-activate-factor
  summary: Enroll an MFA factor and activate it with a passcode.
  description: >-
    Enrolls a factor of the supplied type and provider for a user, then
    activates the pending factor with a passcode.
  inputs:
    type: object
    required:
    - oktaApiToken
    - userId
    - factorType
    - provider
    - passCode
    properties:
      oktaApiToken:
        type: string
        description: Okta API token used for the SSWS Authorization header.
      userId:
        type: string
        description: The id of the user to enroll the factor for.
      factorType:
        type: string
        description: The factor type to enroll (e.g. sms, token:software:totp, push).
      provider:
        type: string
        description: The factor provider (e.g. OKTA, GOOGLE).
      passCode:
        type: string
        description: The one-time passcode used to activate the enrolled factor.
  steps:
  - stepId: enrollFactor
    description: >-
      Enroll the user in a supported factor, leaving it in a pending activation
      state.
    operationId: enrollFactor
    parameters:
    - name: Authorization
      in: header
      value: SSWS $inputs.oktaApiToken
    - name: userId
      in: path
      value: $inputs.userId
    requestBody:
      contentType: application/json
      payload:
        factorType: $inputs.factorType
        provider: $inputs.provider
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      factorId: $response.body#/id
      factorStatus: $response.body#/status
  - stepId: activateFactor
    description: >-
      Activate the pending factor by submitting the user's one-time passcode.
    operationId: activateFactor
    parameters:
    - name: Authorization
      in: header
      value: SSWS $inputs.oktaApiToken
    - name: userId
      in: path
      value: $inputs.userId
    - name: factorId
      in: path
      value: $steps.enrollFactor.outputs.factorId
    requestBody:
      contentType: application/json
      payload:
        passCode: $inputs.passCode
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      activatedStatus: $response.body#/status
  outputs:
    factorId: $steps.enrollFactor.outputs.factorId
    activatedStatus: $steps.activateFactor.outputs.activatedStatus