Microsoft Active Directory · Arazzo Workflow

Active Directory Offboard User From Group

Version 1.0.0

Resolve a user by UPN, remove them from a named group, then disable the account.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Active DirectoryAuthenticationAuthorizationDirectory ServicesIdentity ManagementMicrosoft EntraZero TrustArazzoWorkflows

Provider

active-directory

Workflows

offboard-user-from-group
Remove a user from a group and disable the user account.
Looks up a user by UPN and a group by display name, removes the user's direct membership from the group, and then disables the user account by patching accountEnabled to false.
4 steps inputs: groupDisplayName, userPrincipalName outputs: groupId, userId
1
findUser
Resolve the user by userPrincipalName, returning at most one match.
2
findGroup
Resolve the group by displayName, returning at most one match.
3
removeMembership
Remove the user's direct membership from the resolved group.
4
disableUser
Disable the user account so the user can no longer sign in.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Active Directory Offboard User From Group
  summary: Resolve a user by UPN, remove them from a named group, then disable the account.
  description: >-
    An offboarding pattern that revokes access cleanly. The workflow resolves a
    user by userPrincipalName and a group by display name, removes the direct
    group membership, and finally disables the user account so they can no
    longer sign in. Each step inlines its request so the flow reads and runs
    without opening the OpenAPI sources.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-620.20
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-620.20
      capability_name: Identity & Access Management
      spec: active-directory-users-api-openapi.yml
      confidence: 0.88
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: groupsApi
  url: ../openapi/active-directory-groups-api-openapi.yml
  type: openapi
- name: usersApi
  url: ../openapi/active-directory-users-api-openapi.yml
  type: openapi
workflows:
- workflowId: offboard-user-from-group
  summary: Remove a user from a group and disable the user account.
  description: >-
    Looks up a user by UPN and a group by display name, removes the user's
    direct membership from the group, and then disables the user account by
    patching accountEnabled to false.
  inputs:
    type: object
    required:
    - userPrincipalName
    - groupDisplayName
    properties:
      userPrincipalName:
        type: string
        description: UPN of the user to offboard.
      groupDisplayName:
        type: string
        description: Display name of the group to remove the user from.
  steps:
  - stepId: findUser
    description: Resolve the user by userPrincipalName, returning at most one match.
    operationId: list-users
    parameters:
    - name: $filter
      in: query
      value: "userPrincipalName eq '$inputs.userPrincipalName'"
    - name: $top
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      userId: $response.body#/value/0/id
  - stepId: findGroup
    description: Resolve the group by displayName, returning at most one match.
    operationId: list-groups
    parameters:
    - name: $filter
      in: query
      value: "displayName eq '$inputs.groupDisplayName'"
    - name: $top
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      groupId: $response.body#/value/0/id
  - stepId: removeMembership
    description: Remove the user's direct membership from the resolved group.
    operationId: remove-group-member
    parameters:
    - name: groupId
      in: path
      value: $steps.findGroup.outputs.groupId
    - name: memberId
      in: path
      value: $steps.findUser.outputs.userId
    successCriteria:
    - condition: $statusCode == 204
    outputs:
      removedUserId: $steps.findUser.outputs.userId
  - stepId: disableUser
    description: Disable the user account so the user can no longer sign in.
    operationId: update-user
    parameters:
    - name: userId
      in: path
      value: $steps.findUser.outputs.userId
    requestBody:
      contentType: application/json
      payload:
        accountEnabled: false
    successCriteria:
    - condition: $statusCode == 204
    outputs:
      disabledUserId: $steps.findUser.outputs.userId
  outputs:
    userId: $steps.findUser.outputs.userId
    groupId: $steps.findGroup.outputs.groupId

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/active-directory-offboard-user-from-group-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.