RP Management API
Overview
This API is intended for Relying Parties managing their own attributes and their users.
It is not an API to manage any attribute on the user, only attributes the RP actually owns, like an employee number, subscription number or similar. RPs will never be able to administer attributes they do not own.
Terms
- Relying Party (RP) - The application consuming the API.
- DServ - Idfyed cloud service implementing the API.
Prerequisites
Since the management API is secured, it is not possible to use the API until the following artifacts has been received from Idfyed:
an API unique URL (see Changelog for URLs including versions):
Test system used for integration and test:
https://test.idfyed.com/rp-mgmt/attribute/<version>/<customerName>/<userId>
Production system used for the production application.:
https://api.idfyed.com/rp-mgmt/attribute/<version>/<customerName>/<userId>
credentials to be able to access the REST API.
Flow
- RP calls backend API with
action
,customerName
,userId
andattributes
. - A HTTP 204 status is returned.
- Next time user starts the Idfyed app
- Idfyed app fetches information.
- Show an information message to the user that the RP wants to perform the action specified by the transaction.
- User accepts change.
- User is updated.
API
Update API
The RP should do a POST to the specified URL according to documentation.
URL
The URL for the API contains:
- customerName: name of customer received from Idfyed
- userId: the userId presented to RP when authenticating using one of the authentication protocols available, like EAPI.
Request body
The body shall be sent json encoded with ContentType set to application/json.
Parameters marked with * are mandatory.
Parameter Name | Type | Description | Version |
---|---|---|---|
action* |
String | What action to perform on the user. ADD and REMOVE are valid values. |
1.0 |
attributes* |
Array | Array of attributes. | 1.0 |
attributes[].name* |
String | Name of attribute. | 1.0 |
attributes[].value* |
String | Value of attribute. | 1.0 |
Example request
{
"action": "ADD",
"attributes": [
{
"name": "acmeId",
"value": "234654-2455423"
},
{
"name": "acmeTitle",
"value": "Wizard"
}
]
}
Output
There is not data returned from the API, just a status code.
Success
A successful request returns the HTTP status code 204.
Fail
All other return values are considered errors, and can be interpreted according to RFC 1945.
Authentication
The API call is authenticated using HTTP Basic authentication as specified in RFC 1945. Credentials are provided by Idfyed.
Changelog
RP-mgmt v1.0
First version.
v1.0 URLs:
Test system used for integration and test:
https://test.idfyed.com/rp-mgmt/attribute/v1.0/<customerName>/<userId>
Production system used for the production application:
https://api.idfyed.com/rp-mgmt/attribute/v1.0/<customerName>/<userId>
References
- RFC 1945 Hypertext Transfer Protocol -- HTTP/1.0, T. Berners-Lee, R. Fielding, H. Frystyk, 1996