
Hi, To start on the Resource Definitions profile, I've listed changes against the UMA specs. Cheers, - Alec --- # UMA Resource Definitions ## 1. Introduction This document specifies a profile of UMA Grant and UMA Fedz in order to support Resource Server discovery through AS first flows Client flows. This is enabled by general resource definitions by the Authorization Server. # Profile UMA Grant ### 1.3 Abstract Flow ``` participant "client" as client participant "authorization server" as as client -> as: Permission ticket request (PAT) as --> client: response with permission ticket ... client -> as: RPT request with permission ticket as -> as: authz assessment as --> client: Response with RPT and resource_location client -> rs: resource_location with RPT rs --> client: Protected resource ``` #### 1.3.1 Authorization Process "interactive claims gathering with an end-user requesting party" - allows the RqP to dynamically select the RS to fulfill "claims pushing" - only works if the RqP had previously setup some policy with the AS ## 2. Authorization Server Metadata uma_profiles_supported REQUIRED Include the uri to this profile #### 3.3.5 Authorization Server Response to Client on Authorization Success This endpoint can stay unchanged given - the client requested one resource or - the client requested multiple resources The authorization server MUST add the following parameters to its response: resource_location REQUIRED The uri registered by the RS during it's resource declaration OR the - another option is the RPT is a JWT and the `aud` is the resource_location? *EXTENSION TERRITORY:* If the client requested multiple resources, ideally the user can fulfill each one with a different specific RS AND the client can still be issued RS-constrained RPTs Options: - issue a PCT and let the client requests constrained access token by including a resource indicator in the request - pack the access token JWT with constrained RPTs. Allows token endpoint to conform, but additional client processing of the response (already happening for the resource_location) # Profile UMA Fedz This profile allows the AS to maintain general resource definitions that: - an RS subscribes to fulfill - an Client requests permission to ### 1.3 HTTP Usage, API Security, and Identity Context - RS has a PAT through client credentials, not associated with any user. The RS can declare supported general resources this way ### 3.2.1 Create Resource Description - type is REQUIRED and must match one of the AS resources OR - the RS POST against the AS resource path `as_rreg/_id` The RS MAY include an additional parameter: resource_location OPTIONAL The path at the RS that supports this resource type #### 3.2.5 List Resource Descriptions alt: - without the PAT, the AS returns it's resource ids - AS has a second path for it's general resource types - types are defined at an external service ## 4. Permission Endpoint The permission endpoint is opened to the client to call directly. The client has a PAT using client credentials, same as the RS - could also introduce a new scope uma_client, uma_permission ### 4.1 Resource Server (*Client*) Request to Permission Endpoint The client uses the resource_id's and resource_scopes listed at the AS's open resource endpoint ### 4.2 Authorization Server Response to Resource Server (*Client*) on Permission Request Success The ticket MAY be reused by the client. Maybe not necessary, but convenient? ### 4.3 Authorization Server Response to Resource Server (*Client*) on Permission Request Failure In addition to existing error_code, the AS may prevent specific clients from access to existing resources and scope - request_denied?