Backstage · OAuth Scopes

Backstage OAuth Scopes

OAuth 2.0 probed

Backstage uses OAuth 2.0 but publishes no discrete scopes — access is governed by the grant itself (e.g. client-credentials or role-based authorization) rather than per-scope consent.

This index is generated from the provider’s OpenAPI security definitions (and, where available, its documented scope reference) and refreshes on every APIs.io network build. Browse every provider’s scopes at scopes.apis.io.

Developer PortalInternal Developer PlatformSoftware CatalogOpen-SourcePlatform EngineeringSoftware TemplatesCNCF
Scopes: 0 Flows: Method: probed

Scopes (0)

Backstage implements OAuth 2.0 but publishes no discrete scopes — access is governed by the grant itself (client-credentials or role-based authorization) rather than per-scope consent.

Source

OAuth Scopes

Raw ↑
generated: '2026-09-04'
method: probed
source: >-
  https://demo.backstage.io/.well-known/oauth-authorization-server and
  https://demo.backstage.io/.well-known/oauth-protected-resource/api/mcp-actions/v1 (both HTTP 200),
  plus https://backstage.io/docs/ai/mcp-actions
provider: Backstage
providerId: backstage
docs: https://backstage.io/docs/ai/mcp-actions
description: >-
  Backstage's first-party plugin OpenAPIs declare a bearer `JWT` scheme with no oauth2 flows and no
  scopes, so there is no scope surface on the REST APIs. A real OAuth scope surface does exist on
  the MCP Actions endpoint: the protected-resource and authorization-server metadata documents
  served by a running Backstage backend advertise a single scope. Authorization inside Backstage is
  not scope-based — it is the Permissions framework, which evaluates named permissions
  (e.g. catalog.entity.read) through a policy, and that is a different mechanism from OAuth scopes.
authorization_server:
  issuer: https://demo.backstage.io/api/auth
  observed_on: demo.backstage.io
  grant_types_supported: [authorization_code]
  code_challenge_methods_supported: [S256, plain]
  dynamic_client_registration: true
  client_id_metadata_document_supported: true
  revocation_endpoint: https://demo.backstage.io/api/auth/v1/revoke
scopes:
  - name: openid
    description: >-
      The only scope advertised in scopes_supported by both the authorization server metadata and
      the MCP Actions protected-resource metadata. It carries OIDC identity, not per-resource
      permission.
    source: /.well-known/oauth-authorization-server
scope_count: 1
authorization_model_note: >-
  Fine-grained access is enforced by the Backstage Permissions framework rather than OAuth scopes.
  See https://backstage.io/docs/permissions/overview — permissions are named
  (<plugin>.<resource>.<action>) and resolved by a policy that can attach conditional rules.

Work with this as data

Every scope set 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 oauth scopes

4 MCP tools reach this
  • find_scopesBrowse and filter every scope set 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 scope set
curl "https://apis.io/api/v1/scopes/backstage-scopes"
All oauth scopes
curl "https://apis.io/api/v1/scopes?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.