SMART Permission Tickets
0.1.0 - ci-build
SMART Permission Tickets, published by . This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/jmandel/smart-permission-tickets-wip/ and changes regularly. See the Directory of published versions
A Permission Ticket is a JWT minted by a Trusted Issuer. It acts as a self-contained authorization grant.
Patient, PractitionerRole, Organization) to define identities, making integration with existing EHR logic seamless.sequenceDiagram
participant Trigger as Trigger Event
participant Issuer as Trusted Issuer
participant Client as Client App
participant Server as Data Holder (FHIR)
Note over Trigger, Client: 1. Context Established
Trigger->>Issuer: Event (e.g. Referral, Case Report)
Issuer->>Issuer: Verify Context & Identity
Issuer->>Client: Mint Permission Ticket (JWT)
Note over Client, Server: 2. Redemption
Client->>Client: Generate Client Assertion (JWT)
Client->>Client: Embed Ticket in Assertion
Client->>Server: POST /token (client_credentials + assertion)
Note over Server: 3. Validation
Server->>Server: Verify Client Signature
Server->>Server: Verify Ticket Signature (Issuer Trust)
Server->>Server: Enforce Ticket Constraints
Server-->>Client: Access Token (Down-scoped)
Note over Client, Server: 4. Access
Client->>Server: GET /Patient/123/Immunization
Server-->>Client: FHIR Resources
To make this work, we rely on OIDC Federation principles.
actor from the ticket (e.g., "Alice @ FoodBank") into the Audit Log.capability block.