{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/azure-ad/json-schema/azure-ad-microsoft-graph-authorization-policy-schema.json",
  "title": "microsoft.graph.authorizationPolicy",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/azure-ad-policies-authorizationpolicy-api-openapi.yml#/components/schemas/microsoft.graph.authorizationPolicy",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.policyBase"
    },
    {
      "title": "authorizationPolicy",
      "type": "object",
      "properties": {
        "allowedToSignUpEmailBasedSubscriptions": {
          "type": "boolean",
          "description": "Indicates whether users can sign up for email based subscriptions."
        },
        "allowedToUseSSPR": {
          "type": "boolean",
          "description": "Indicates whether administrators of the tenant can use the Self-Service Password Reset (SSPR). For more information, see Self-service password reset for administrators."
        },
        "allowEmailVerifiedUsersToJoinOrganization": {
          "type": "boolean",
          "description": "Indicates whether a user can join the tenant by email validation."
        },
        "allowInvitesFrom": {
          "$ref": "#/$defs/microsoft.graph.allowInvitesFrom"
        },
        "allowUserConsentForRiskyApps": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether user consent for risky apps is allowed. We recommend keeping allowUserConsentForRiskyApps as false. Default value is false."
        },
        "blockMsolPowerShell": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "To disable the use of MSOL PowerShell, set this property to true. This also disables user-based access to the legacy service endpoint used by MSOL PowerShell. This doesn't affect Microsoft Entra Connect or Microsoft Graph."
        },
        "defaultUserRolePermissions": {
          "$ref": "#/$defs/microsoft.graph.defaultUserRolePermissions"
        },
        "guestUserRoleId": {
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
          "type": [
            "string",
            "null"
          ],
          "description": "Represents role templateId for the role that should be granted to guests. Currently following roles are supported:  User (a0b1b346-4d3e-4e8b-98f8-753987be4970), Guest User (10dae51f-b6af-4016-8d66-8c2a99b929b3), and Restricted Guest User (2af84b1e-32c8-42b7-82bc-daa82404023b).",
          "format": "uuid"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    }
  ],
  "$defs": {
    "microsoft.graph.allowInvitesFrom": {
      "title": "allowInvitesFrom",
      "enum": [
        "none",
        "adminsAndGuestInviters",
        "adminsGuestInvitersAndAllMembers",
        "everyone",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.defaultUserRolePermissions": {
      "title": "defaultUserRolePermissions",
      "type": "object",
      "properties": {
        "allowedToCreateApps": {
          "type": "boolean",
          "description": "Indicates whether the default user role can create applications. This setting corresponds to the Users can register applications setting in the User settings menu in the Microsoft Entra admin center."
        },
        "allowedToCreateSecurityGroups": {
          "type": "boolean",
          "description": "Indicates whether the default user role can create security groups. This setting corresponds to the following menus in the Microsoft Entra admin center:  The Users can create security groups in Microsoft Entra admin centers, API or PowerShell setting in the Group settings menu.  Users can create security groups setting in the User settings menu."
        },
        "allowedToCreateTenants": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether the default user role can create tenants. This setting corresponds to the Restrict non-admin users from creating tenants setting in the User settings menu in the Microsoft Entra admin center.  When this setting is false, users assigned the Tenant Creator role can still create tenants."
        },
        "allowedToReadBitlockerKeysForOwnedDevice": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether the registered owners of a device can read their own BitLocker recovery keys with default user role."
        },
        "allowedToReadOtherUsers": {
          "type": "boolean",
          "description": "Indicates whether the default user role can read other users. DO NOT SET THIS VALUE TO false."
        },
        "permissionGrantPoliciesAssigned": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": "Indicates if user consent to apps is allowed, and if it is, which permission to grant consent and which app consent policy (permissionGrantPolicy) govern the permission for users to grant consent. Value should be in the format managePermissionGrantsForSelf.{id}, where {id} is the id of a built-in or custom app consent policy. An empty list indicates user consent to apps is disabled."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.directoryObject": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "directoryObject",
          "type": "object",
          "properties": {
            "deletedDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": [
                "string",
                "null"
              ],
              "description": "Date and time when this object was deleted. Always null when the object hasn't been deleted.",
              "format": "date-time"
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.entity": {
      "title": "entity",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier for an entity. Read-only."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.policyBase": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.directoryObject"
        },
        {
          "title": "policyBase",
          "type": "object",
          "properties": {
            "description": {
              "type": [
                "string",
                "null"
              ],
              "description": "Description for this policy. Required."
            },
            "displayName": {
              "type": [
                "string",
                "null"
              ],
              "description": "Display name for this policy. Required."
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    }
  }
}