Updated Api (markdown)
parent
ded17913f2
commit
f7ac6622b4
345
Api.md
345
Api.md
|
@ -1,25 +1,344 @@
|
|||
# Clients
|
||||
The MITREid Connect server has a robust RESTful API that is used to manage various aspects of the server's configuration. In fact, the administration UI is really just a JavaScript application that uses this RESTful API to do its job.
|
||||
|
||||
`/api/clients`
|
||||
## Clients
|
||||
|
||||
## GET /api/clients
|
||||
Endpoint: `/api/clients`
|
||||
|
||||
*Note:* This method will return different information depending on whether or not the authorized user is an administrator.
|
||||
Manages all registered clients on the system, both statically and dynamically registered.
|
||||
|
||||
## POST /api/clients
|
||||
### GET /api/clients
|
||||
|
||||
## GET /api/clients/{id}
|
||||
Get a list of all clients on the system, returns results in `application/json`.
|
||||
|
||||
*Note:* This method will return different information depending on whether or not the authorized user is an administrator.
|
||||
```
|
||||
[
|
||||
|
||||
## PUT /api/clients/{id}
|
||||
{
|
||||
"id": 1,
|
||||
"clientId": "client",
|
||||
"clientSecret": "secret",
|
||||
"redirectUris": [
|
||||
"http://localhost/",
|
||||
"http://localhost:8080/"
|
||||
],
|
||||
"clientName": "Test Client",
|
||||
"clientUri": null,
|
||||
"logoUri": null,
|
||||
"contacts": [ ],
|
||||
"tosUri": null,
|
||||
"tokenEndpointAuthMethod": null,
|
||||
"scope": [
|
||||
"phone",
|
||||
"openid",
|
||||
"offline_access",
|
||||
"address",
|
||||
"email",
|
||||
"profile"
|
||||
],
|
||||
"grantTypes": [
|
||||
"implicit",
|
||||
"authorization_code",
|
||||
"urn:ietf:params:oauth:grant_type:redelegate",
|
||||
"refresh_token"
|
||||
],
|
||||
"responseTypes": [ ],
|
||||
"policyUri": null,
|
||||
"jwksUri": null,
|
||||
"applicationType": null,
|
||||
"sectorIdentifierUri": null,
|
||||
"subjectType": null,
|
||||
"requestObjectSigningAlg": null,
|
||||
"userInfoSignedResponseAlg": null,
|
||||
"userInfoEncryptedResponseAlg": null,
|
||||
"userInfoEncryptedResponseEnc": null,
|
||||
"idTokenSignedResponseAlg": null,
|
||||
"idTokenEncryptedResponseAlg": null,
|
||||
"idTokenEncryptedResponseEnc": null,
|
||||
"defaultMaxAge": null,
|
||||
"requireAuthTime": null,
|
||||
"defaultACRvalues": [ ],
|
||||
"initiateLoginUri": null,
|
||||
"postLogoutRedirectUri": null,
|
||||
"requestUris": [ ],
|
||||
"authorities": [ ],
|
||||
"accessTokenValiditySeconds": 3600,
|
||||
"refreshTokenValiditySeconds": null,
|
||||
"resourceIds": [ ],
|
||||
"clientDescription": null,
|
||||
"reuseRefreshToken": true,
|
||||
"dynamicallyRegistered": false,
|
||||
"allowIntrospection": true,
|
||||
"idTokenValiditySeconds": 600,
|
||||
"createdAt": null
|
||||
}
|
||||
|
||||
## DELETE /api/clients/{id}
|
||||
]
|
||||
```
|
||||
*Note:* This method will return different information depending on whether or not the authorized user is an administrator. A non-administrator will get a limited set of information back:
|
||||
|
||||
# Whitelists
|
||||
```
|
||||
[
|
||||
|
||||
# Blacklists
|
||||
{
|
||||
"id": 1,
|
||||
"clientId": "client",
|
||||
"clientName": "Test Client",
|
||||
"logoUri": null,
|
||||
"scope": [
|
||||
"phone",
|
||||
"openid",
|
||||
"offline_access",
|
||||
"address",
|
||||
"email",
|
||||
"profile"
|
||||
],
|
||||
"clientDescription": null
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
# System Scopes
|
||||
### POST /api/clients
|
||||
|
||||
# User Site Approvals
|
||||
Create a new client on the system. Message body is an `application/json` object with all client parameters:
|
||||
|
||||
```
|
||||
{
|
||||
"id": 1,
|
||||
"clientId": "client",
|
||||
"clientSecret": "secret",
|
||||
"redirectUris": [
|
||||
"http://localhost/",
|
||||
"http://localhost:8080/"
|
||||
],
|
||||
"clientName": "Test Client",
|
||||
"clientUri": null,
|
||||
"logoUri": null,
|
||||
"contacts": [ ],
|
||||
"tosUri": null,
|
||||
"tokenEndpointAuthMethod": null,
|
||||
"scope": [
|
||||
"phone",
|
||||
"openid",
|
||||
"offline_access",
|
||||
"address",
|
||||
"email",
|
||||
"profile"
|
||||
],
|
||||
"grantTypes": [
|
||||
"implicit",
|
||||
"authorization_code",
|
||||
"urn:ietf:params:oauth:grant_type:redelegate",
|
||||
"refresh_token"
|
||||
],
|
||||
"responseTypes": [ ],
|
||||
"policyUri": null,
|
||||
"jwksUri": null,
|
||||
"applicationType": null,
|
||||
"sectorIdentifierUri": null,
|
||||
"subjectType": null,
|
||||
"requestObjectSigningAlg": null,
|
||||
"userInfoSignedResponseAlg": null,
|
||||
"userInfoEncryptedResponseAlg": null,
|
||||
"userInfoEncryptedResponseEnc": null,
|
||||
"idTokenSignedResponseAlg": null,
|
||||
"idTokenEncryptedResponseAlg": null,
|
||||
"idTokenEncryptedResponseEnc": null,
|
||||
"defaultMaxAge": null,
|
||||
"requireAuthTime": null,
|
||||
"defaultACRvalues": [ ],
|
||||
"initiateLoginUri": null,
|
||||
"postLogoutRedirectUri": null,
|
||||
"requestUris": [ ],
|
||||
"authorities": [ ],
|
||||
"accessTokenValiditySeconds": 3600,
|
||||
"refreshTokenValiditySeconds": null,
|
||||
"resourceIds": [ ],
|
||||
"clientDescription": null,
|
||||
"reuseRefreshToken": true,
|
||||
"dynamicallyRegistered": false,
|
||||
"allowIntrospection": true,
|
||||
"idTokenValiditySeconds": 600,
|
||||
"createdAt": null
|
||||
}
|
||||
```
|
||||
|
||||
Any omitted values will be filled in with appropriate defaults in the following manner:
|
||||
|
||||
- If `clientId` is empty, a new client id will be generated by the server
|
||||
- If `clientSecret` is empty and a field named `generateSecret` is sent and set to `true`, then a new client secret will be generated by the server
|
||||
- If `scope` is omitted or null, all system scopes marked as "default" will be assigned to the client
|
||||
|
||||
The server will return an updated copy of the object in `application/json` format as described under **GET /api/clients/{id}**.
|
||||
|
||||
### GET /api/clients/{id}
|
||||
|
||||
Get information about a specific client identified by {id} in the url, in `application/json` format.
|
||||
|
||||
For example, the call to `/api/clients/1` would return:
|
||||
|
||||
```
|
||||
{
|
||||
"id": 1,
|
||||
"clientId": "client",
|
||||
"clientSecret": "secret",
|
||||
"redirectUris": [
|
||||
"http://localhost/",
|
||||
"http://localhost:8080/"
|
||||
],
|
||||
"clientName": "Test Client",
|
||||
"clientUri": null,
|
||||
"logoUri": null,
|
||||
"contacts": [ ],
|
||||
"tosUri": null,
|
||||
"tokenEndpointAuthMethod": null,
|
||||
"scope": [
|
||||
"phone",
|
||||
"openid",
|
||||
"offline_access",
|
||||
"address",
|
||||
"email",
|
||||
"profile"
|
||||
],
|
||||
"grantTypes": [
|
||||
"implicit",
|
||||
"authorization_code",
|
||||
"urn:ietf:params:oauth:grant_type:redelegate",
|
||||
"refresh_token"
|
||||
],
|
||||
"responseTypes": [ ],
|
||||
"policyUri": null,
|
||||
"jwksUri": null,
|
||||
"applicationType": null,
|
||||
"sectorIdentifierUri": null,
|
||||
"subjectType": null,
|
||||
"requestObjectSigningAlg": null,
|
||||
"userInfoSignedResponseAlg": null,
|
||||
"userInfoEncryptedResponseAlg": null,
|
||||
"userInfoEncryptedResponseEnc": null,
|
||||
"idTokenSignedResponseAlg": null,
|
||||
"idTokenEncryptedResponseAlg": null,
|
||||
"idTokenEncryptedResponseEnc": null,
|
||||
"defaultMaxAge": null,
|
||||
"requireAuthTime": null,
|
||||
"defaultACRvalues": [ ],
|
||||
"initiateLoginUri": null,
|
||||
"postLogoutRedirectUri": null,
|
||||
"requestUris": [ ],
|
||||
"authorities": [ ],
|
||||
"accessTokenValiditySeconds": 3600,
|
||||
"refreshTokenValiditySeconds": null,
|
||||
"resourceIds": [ ],
|
||||
"clientDescription": null,
|
||||
"reuseRefreshToken": true,
|
||||
"dynamicallyRegistered": false,
|
||||
"allowIntrospection": true,
|
||||
"idTokenValiditySeconds": 600,
|
||||
"createdAt": null
|
||||
}
|
||||
```
|
||||
*Note:* This method will return different information depending on whether or not the authorized user is an administrator. A non-administrator will get a limited set of information back:
|
||||
|
||||
```
|
||||
{
|
||||
"id": 1,
|
||||
"clientId": "client",
|
||||
"clientName": "Test Client",
|
||||
"logoUri": null,
|
||||
"scope": [
|
||||
"phone",
|
||||
"openid",
|
||||
"offline_access",
|
||||
"address",
|
||||
"email",
|
||||
"profile"
|
||||
],
|
||||
"clientDescription": null
|
||||
}
|
||||
```
|
||||
|
||||
### PUT /api/clients/{id}
|
||||
|
||||
Update the information for the client identified by {id} in the URL. The request body must be `application/json` describing the entire client object:
|
||||
|
||||
```
|
||||
{
|
||||
"id": 1,
|
||||
"clientId": "client",
|
||||
"clientSecret": "secret",
|
||||
"redirectUris": [
|
||||
"http://localhost/",
|
||||
"http://localhost:8080/"
|
||||
],
|
||||
"clientName": "Test Client",
|
||||
"clientUri": null,
|
||||
"logoUri": null,
|
||||
"contacts": [ ],
|
||||
"tosUri": null,
|
||||
"tokenEndpointAuthMethod": null,
|
||||
"scope": [
|
||||
"phone",
|
||||
"openid",
|
||||
"offline_access",
|
||||
"address",
|
||||
"email",
|
||||
"profile"
|
||||
],
|
||||
"grantTypes": [
|
||||
"implicit",
|
||||
"authorization_code",
|
||||
"urn:ietf:params:oauth:grant_type:redelegate",
|
||||
"refresh_token"
|
||||
],
|
||||
"responseTypes": [ ],
|
||||
"policyUri": null,
|
||||
"jwksUri": null,
|
||||
"applicationType": null,
|
||||
"sectorIdentifierUri": null,
|
||||
"subjectType": null,
|
||||
"requestObjectSigningAlg": null,
|
||||
"userInfoSignedResponseAlg": null,
|
||||
"userInfoEncryptedResponseAlg": null,
|
||||
"userInfoEncryptedResponseEnc": null,
|
||||
"idTokenSignedResponseAlg": null,
|
||||
"idTokenEncryptedResponseAlg": null,
|
||||
"idTokenEncryptedResponseEnc": null,
|
||||
"defaultMaxAge": null,
|
||||
"requireAuthTime": null,
|
||||
"defaultACRvalues": [ ],
|
||||
"initiateLoginUri": null,
|
||||
"postLogoutRedirectUri": null,
|
||||
"requestUris": [ ],
|
||||
"authorities": [ ],
|
||||
"accessTokenValiditySeconds": 3600,
|
||||
"refreshTokenValiditySeconds": null,
|
||||
"resourceIds": [ ],
|
||||
"clientDescription": null,
|
||||
"reuseRefreshToken": true,
|
||||
"dynamicallyRegistered": false,
|
||||
"allowIntrospection": true,
|
||||
"idTokenValiditySeconds": 600,
|
||||
"createdAt": null
|
||||
}
|
||||
```
|
||||
|
||||
Any omitted values will be filled in with appropriate defaults in the following manner:
|
||||
|
||||
- If `clientId` is empty, a new client id will be generated by the server
|
||||
- If `clientSecret` is empty and a field named `generateSecret` is sent and set to `true`, then a new client secret will be generated by the server
|
||||
- If `scope` is omitted or null, all system scopes marked as "default" will be assigned to the client
|
||||
|
||||
The server will return an updated copy of the object in `application/json` format as described under **GET /api/clients/{id}** on success.
|
||||
|
||||
### DELETE /api/clients/{id}
|
||||
|
||||
Deletes the client with the {id} in the URL.
|
||||
|
||||
Returns HTTP 200 with an empty page on success.
|
||||
|
||||
## Whitelists
|
||||
|
||||
## Blacklists
|
||||
|
||||
## System Scopes
|
||||
|
||||
## User Site Approvals
|
Loading…
Reference in New Issue