Machine Access
These entities let applications, services, and automated agents act without a person signing in.
Entities
- Service Account: A non-human identity owned by an organization.
- API Key: A long-lived secret that authenticates a service account or application.
- OAuth Client: A registered application that can request access tokens.
- Scoped Token: A short-lived token limited to specific permissions.
- Delegated Grant: A user's consent for an application to act on their behalf.
Model
Rendering diagram…
Diagram source
erDiagram
ORGANIZATION ||--o{ SERVICE_ACCOUNT : owns
SERVICE_ACCOUNT ||--o{ API_KEY : authenticates_with
OAUTH_CLIENT ||--o{ SCOPED_TOKEN : obtains
USER ||--o{ DELEGATED_GRANT : consents
DELEGATED_GRANT }o--|| OAUTH_CLIENT : authorizes
Key Rules
- Keys are stored hashed. A key is shown once at creation, and has an identifying prefix so leaks can be detected.
- Tokens are scoped and short-lived. Each grants only what its task needs, and expires quickly.
- Delegation never exceeds the user. An application acting for a user can do no more than that user can.