HAAPI Data Model

The Curity Hypermedia Authentication API (HAAPI) allows OAuth clients to request tokens from the Curity Identity Server in an API-driven way, i.e., without requiring a browser to perform the user authentication and consent interactions.

This document specifies a schema for the data model of the responses provided by the server. The schema is defined based on concepts described in the JSON Schema specification.

Clients consuming the HAAPI can be programmed against the data model described in this schema. Any response that is valid according to this schema should be handled graciously by a compliant HAAPI Client.

JSON Schemas

If you need the actual JSON schemas, you can get them from the links below:

The JSON schemas, while not being very easy to read, can be used with automation tools to, among other things, generate client source code and validate server/plugins responses to make sure it's conforming to the contract.

Schema version: http://json-schema.org/draft-07/schema#

Model Root (allOf)

Model Root > Step (object)

Properties

name type default examples required
type type true
metadata Metadata Object false

Model Root > Step > type (string)

The type of a step, which defines the schema for the step.

Details

format pattern minLength maxLength allowed values
["authentication-step","redirection-step","registration-step","polling-step","continue-same-step","oauth-authorization-response","consentor-step","user-consent-step","https://curity.se/problems/authentication-failed","https://curity.se/problems/invalid-input","https://curity.se/problems/incorrect-credentials","https://curity.se/problems/error-authorization-response","https://curity.se/problems/unexpected","https://curity.se/problems/too-many-attempts","https://curity.se/problems/generic-user-error","https://curity.se/problems/mismatch-between-session-and-access-token"]

Model Root > Step > Metadata Object (object)

Object with additional information about the response. A client may ignore the information present in this object.

Properties

name type default examples required
templateArea templateArea false
viewName viewName false

Model Root > Step > Metadata Object > templateArea (string)

The value for a custom template area defined for the client or authenticator

Model Root > Step > Metadata Object > viewName (string)

The name for the view that produced the response

Model Root > Authentication Step (if)

Model Root > Redirection Step (if)

Model Root > Registration Step (if)

Model Root > Polling Step (if)

Model Root > Continue Same Step (if)

Model Root > OAuth Authorization Response (if)

Model Root > User Consent Step (if)

Model Root > Consentor Step (if)

Model Root > Authentication Failed (if)

Model Root > Invalid Input (if)

Model Root > Incorrect Credentials (if)

Model Root > Error Authorization Response (if)

Model Root > Unexpected Problem (if)

Model Root > Too Many Attempts (if)

Model Root > User Error (if)

Model Root > Mismatch Between Session and Token (if)