Microsoft Entra · Arazzo Workflow

Microsoft Entra Grant App Role Assignment

Version 1.0.0

Grant an app role to a service principal then list its assignments.

1 workflow 1 source API 1 provider
View Spec View on GitHub Access ManagementAuthenticationAzure ADEntraIdentityIdentity GovernanceMicrosoftNetwork SecuritySecurityZero TrustArazzoWorkflows

Provider

microsoft-entra

Workflows

grant-app-role-assignment
Grant an app role to a service principal, then verify assignments.
Posts an app role assignment to a service principal and reads back its assignment collection to confirm the new grant.
2 steps inputs: accessToken, appRoleId, principalId, resourceId, servicePrincipalId outputs: assignmentId, assignments
1
grantAssignment
Grant the app role assignment to the service principal, identifying the principal, resource, and role.
2
listAssignments
List the app role assignments granted to this service principal to confirm the new assignment is present.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Microsoft Entra Grant App Role Assignment
  summary: Grant an app role to a service principal then list its assignments.
  description: >-
    Grants an application permission (app role assignment) to a service
    principal in Microsoft Entra ID and then lists the service principal's app
    role assignments to confirm the grant. The grant supplies the principalId
    (the assignee), the resourceId (the resource service principal exposing the
    role), and the appRoleId to assign. Every request is inlined so the chain
    reads end to end.
  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: microsoft-entra-serviceprincipals-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: serviceprincipalsApi
  url: ../openapi/microsoft-entra-serviceprincipals-api-openapi.yml
  type: openapi
workflows:
- workflowId: grant-app-role-assignment
  summary: Grant an app role to a service principal, then verify assignments.
  description: >-
    Posts an app role assignment to a service principal and reads back its
    assignment collection to confirm the new grant.
  inputs:
    type: object
    required:
    - accessToken
    - servicePrincipalId
    - principalId
    - resourceId
    - appRoleId
    properties:
      accessToken:
        type: string
        description: OAuth 2.0 bearer token with AppRoleAssignment.ReadWrite.All.
      servicePrincipalId:
        type: string
        description: Object id of the service principal receiving the assignment.
      principalId:
        type: string
        description: Object id of the assignee (user, group, or service principal).
      resourceId:
        type: string
        description: Object id of the resource service principal exposing the role.
      appRoleId:
        type: string
        description: Id of the app role to grant (use all-zero GUID for default access).
        default: "00000000-0000-0000-0000-000000000000"
  steps:
  - stepId: grantAssignment
    description: >-
      Grant the app role assignment to the service principal, identifying the
      principal, resource, and role.
    operationId: grantServicePrincipalAppRoleAssignment
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: servicePrincipal-id
      in: path
      value: $inputs.servicePrincipalId
    requestBody:
      contentType: application/json
      payload:
        principalId: $inputs.principalId
        resourceId: $inputs.resourceId
        appRoleId: $inputs.appRoleId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      assignmentId: $response.body#/id
  - stepId: listAssignments
    description: >-
      List the app role assignments granted to this service principal to
      confirm the new assignment is present.
    operationId: listServicePrincipalAppRoleAssignments
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: servicePrincipal-id
      in: path
      value: $inputs.servicePrincipalId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      assignments: $response.body#/value
  outputs:
    assignmentId: $steps.grantAssignment.outputs.assignmentId
    assignments: $steps.listAssignments.outputs.assignments

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/microsoft-entra-grant-app-role-assignment-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.