Skip to content

Issue with providing the right granular purpose and not over-provisioning access #336

@questsin

Description

@questsin

Issue with providing the right granular purpose and not over-provisioning access

Running into a pure OAuth 2.0 scope syntax problem: need granular CAMARA permissions (“purpose” + specific operation) in a single scope token, but the separator you choose must not conflict with URL encoding or the OAuth scope grammar. More important if using 3rd party out of the box IDPs with brittle scope patterns and consent management.

Legacy Example (original 1 camara scope)
GET/authorize?response_type=code&scope=openid dpv:FraudPreventionAndDetection#sim-swap:check dpv:FraudPreventionAndDetection#sim-swap:retrieve-date offline_access&client_id=s6BhdRkqt3&state=af0ifjsldkj&redirect_uri=https://client.example.org/cbHTTP/1.1Host:server.example.com

New Example (1 camara scope)
GET/authorize?response_type=code&scope=openid dpv:FraudPreventionAndDetection sim-swap:check sim-swap:retrieve-date offline_access&client_id=s6BhdRkqt3&state=af0ifjsldkj&redirect_uri=https://client.example.org/cbHTTP/1.1Host:server.example.com

New Example (2 camara scopes)
GET/authorize?response_type=code&scope=openid dpv:FraudPreventionAndDetection sim-swap:check sim-swap:retrieve-date dpv:IdentityVerification number-verification:device-phone-number offline_access&client_id=s6BhdRkqt3&state=af0ifjsldkj&redirect_uri=https://client.example.org/cbHTTP/1.1Host:server.example.com

Original scopes had “#” like dpv:FraudPreventionAndDetection#sim-swap:check, this was one scope. But “#” isn’t url friendly

New way suggested using spaces like “ “ but this is a reserved as a scope delimiter. Causing over provisioning.

Suggestion to use another delimiter like “-“ and not “:”

Example (original 1 camara scope)
GET/authorize?response_type=code&scope=openid dpv:FraudPreventionAndDetection-sim-swap:check dpv:FraudPreventionAndDetection-sim-swap:retrieve-date offline_access&client_id=s6BhdRkqt3&state=af0ifjsldkj&redirect_uri=https://client.example.org/cbHTTP/1.1Host:server.example.com

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions