Delegation
Full Title or Meme
Delegation allows the owner of access to a resource to give some subset of that ability to another party.
Context
- The wiki page is focused on the need for a digital entity on the web to give some other party the ability to exercise some of the capability to some other digital entity.
- In the case of human users the web they will have a User Agent through which they can express their intents on the web.
- Some examples of delegation include:
- A manager goes on vacation and provide with a temporary replacement the ability to control access to the division web site repository.
- A person is declared unfit to manage their affairs by a court of competent jurisdiction and a guardian is appointed.
- A parent and a child have the reversed case where the parent gives the child some ability to visit web sites are have age restrictions.
- The president of the United States goes into surgery and passes control of the nuclear deterrent to the vice president.
- A husband and wife grant each other authority to make medical decisions for the other with a defined set of limitations.
- I add medical conditions to my smartphone so that any authorized EMT can view them if i am found comatose.
Use Cases
- Delegate Credentials Use Case
- Delegate Credentials Use Case
- Delegated Authentication Use Case
- Delegated Authentication for User Managed Access
- Delegated to Trusted Assistant Use Case.
Actors
- A valuable Resource that is hosted on a Resource Server. (Typically data, but it could also be a service API.)
- The Resource Owner that controls access to the Resource.
- The user of the Resource that receives the delegation token from the Resource Owner.
- The Relying Party that requests access to the Resource from the user.
Solutions
- For this wiki the solution will be some sort of digital token that identifies the subject and is signed by the subject private key.
- The follows shows the elements in json format that are included in the token.
- The best practice for this token is to send it as a signed, but not encrypted jose formatted string with a JWS signature. This will allow the token to be embedded in the grant that is sent to a relying party by the user; and then on to the resource owner.
Element Name | Contents | Explanation for category | Cat |
sub | identifier of the RO | the grantor of access | MUST |
puid | Persistent Identifier of RO | to handle recovery operation | MAY |
user | Identifier of the recipient of this grant | Must be link to a signing key | MUST |
aud | Identifier of the resource server | Must be link to a decryption key | MUST |
scope | Identifier of the resource to be shared | MAY | |
stipulation | structure | limits the scope of the grant | MAY |
jwk | key of the sub (the signer) | include by value or by ref | MAY |
signature | JWS | created by the sub's key | MUST |
If a puid is used, there must be some mechanism to bind the puid to the sub that is outside the scope of this document.