Skip to content

Add support for scope aliases for entities #1481

Open
@matthewhartstonge

Description

@matthewhartstonge

Add support for scope aliases for entities

Problem

The permissions system and naming of scopes is very restrictive, enforcing a FusionAuth styled format for scopes which provides incompatibility with existing OAuth scopes pushed into external solutions that want to migrate to FusionAuth.

For example, given our current OAuth 2.1 implementation, we have a number of API consumers that use the Client Credentials grant and all our internal backend services talk to each other using client credentials as well to access our APIs. The new format will provide a bit of pain in migrating our current API consumers who, depending on access requirements, have quite a list of scopes based on the resource access required.

For example, given our current OAuth scopes, a request like this:

scopes=urn:hero:attendance:records urn:hero:attendance:records:delete urn:hero:schools:read

Will now become:

scopes=target-entity:b8cdfa71-6578-49ce-aa99-203e3fda83eb:urn:hero:attendance:records,urn:hero:attendance:records:delete,urn:hero:schools:read

Solution

I propose the idea of scope aliases.
This can provide a way to have globally unique scopes (permissions) that can be bound to a given scope. This also better aligns with the OAuth specification of whitespace separated scopes, for example:

urn:hero:attendance:records
  \_ resolves to _> target-entity:b8cdfa71-6578-49ce-aa99-203e3fda83eb:urn:hero:attendance:records
urn:hero:attendance:records:delete
  \_ resolves to _> target-entity:b8cdfa71-6578-49ce-aa99-203e3fda83eb:urn:hero:attendance:records:delete

Alternatives/workarounds

Inform all our API Consumers to migrate to the new scopes? haha

Additional context

I noticed a similar ask via: #1477, but this would provide a more nuanced/user customisable, more migratable approach.

Related

Community guidelines

All issues filed in this repository must abide by the FusionAuth community guidelines.

How to vote

Please give us a thumbs up or thumbs down as a reaction to help us prioritize this feature. Feel free to comment if you have a particular need or comment on how this feature should work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmigrationSomething that would help migrate off other platformspaid-featureTargeted for the paid editions of FusionAuth

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions