# Reverse Authorization Push (RAP) This proposal introduces grant notifications, pushed from the AS to the RqP's Client, for [UMA Grant](https://docs.kantarainitiative.org/uma/wg/rec-oauth-uma-grant-2.0.html). Possibly using [RAR](https://datatracker.ietf.org/doc/html/rfc9396). It is inspired on [Open Cloud Mesh](https://cs3org.github.io/OCM-API/docs.html?branch=new-multi&repo=OCM-API&user=cs3org#/paths/~1shares/post) ## Use cases * social web: requesting party received a federated @-mention * collaborative editing: requesting party was invited to co-edit some resource * Sharing Intents: like on mobile OS, when RP=RO, * select a photo from camera app * select chat app and give it access to it, * redirect to chat app, post the photo in some channel ## How it works A HTTP POST Notification to the client, informing that it is affected by some new UMA policy conditions. ``` requesting authorization resource resource party client server server owner | | | | | | | |Set policy| | | | |conditions (anytime)| | | |<- - - - - - - - - -| | | NOTIFY (UMA-RAR-PUSH) | | | | |<--------------------------| | | | |Resource request (no access token) | | | |------------------------------------->| | | | | | | [Etc., rest of UMA Grant] ``` # Issues * `shareWith`: How to point the Client to the RqP(s) (OCM uses`RqP@client.com` with type 'user' or 'group' but this feels too rigid) * bilateral agreement between AS and Client? * format for `owner` and `sender` (`RO@AS.com`) * bilateral agreement between AS and Client? * `resourceType` and `protocol` -> this is basically client config. * Does it fit into RAR? * Do we need RAR or is `code` enough? * Require `code` and make RAR optional? sender verification access token not sending access tokens unsolicited (confusing client to use a stolen access token?) [ciba push mode ciba-fapi: should not](https://openid.net/specs/openid-financial-api-ciba.html) send a shortlived thing first "start a transaction, use this identifier when you do"; no other details. specify a specific API [Directed Access Tokens](https://github.com/ietf-wg-gnap/gnap-core-protocol/issues/69) (early GNAP)