Access Control (0.0.9)
Download OpenAPI specification:Download
The Access Control API provides a comprehensive set of endpoints designed to manage authentication and authorization, specifically focusing on OAuth 2.0 standards. By utilizing this API, developers can seamlessly integrate secure access control mechanisms into their applications and services, ensuring adherence to industry best practices.
This API documentation outlines the supported OAuth 2.0 endpoints, detailing the required input parameters, expected response structures, and applicable error messages. This enables developers to effectively manage user authentication, resource access, and permissions within their applications.
JWKs Endpoint
The JWKs (JSON Web Key Set) endpoint provides a set of public keys used by the authorization server. These keys are essential for clients and other entities to verify the digital signatures of tokens issued by the server.
By accessing this endpoint, client applications can retrieve the current public keys and use them to validate the JWT (JSON Web Token) signatures, ensuring the tokens' authenticity and integrity. This dynamic retrieval ensures that clients can adapt to key rotations and other security measures implemented by the authorization server.
The returned JWKS is in a standard format, making it compatible with many JWT libraries and tools.
Authorizations:
Responses
Request samples
- Shell + Curl
curl --request GET \ --url https://api-marco.finboot.com/v1/auth/certs \ --header 'ApplicationToken: REPLACE_KEY_VALUE'
Response samples
- 200
{- "keys": [
- {
- "e": "AQAB",
- "kid": "stage-key-002",
- "kty": "RSA",
- "n": "tO6QhANKPb4esV_9ChKyJf19ri9KultYlxTACaI...",
- "use": "sig"
}, - {
- "e": "AQAB",
- "kid": "stage-key-001",
- "kty": "RSA",
- "n": "nomJXQrPFTBZjpYx3-cGC3QVft3ODaPq0ayXyEA...",
- "use": "sig"
}
]
}
Obtain an access token
Use this endpoint to obtain an access token. The required parameters vary based on the grant type:
Authorization Code Grant with PKCE:
grant_type
: Must be set toauthorization_code
.code
: The authorization code received from the authorization server.redirect_uri
: The same redirect URI that was used to obtain the authorization code.client_id
: The Marpp ID.code_verifier
: The original code verifier used to generate the code challenge.
Client Credentials Grant using Service Account:
grant_type
: Must be set toclient_credentials
.service_account
: The identifier of the service account.client_id
: The Marpp ID.client_secret
: The service account's apiKey.
Client Credentials with JWT Bearer Token:
grant_type
: Must be set toclient_credentials
.client_assertion_type
: Must be set tourn:ietf:params:oauth:client-assertion-type:jwt-bearer
.client_assertion
: The JWT Bearer token.client_id
: The Marpp ID.
Request Body schema: application/x-www-form-urlencoded
client_assertion | string The JWT Bearer token (required for JWT Bearer token). |
client_assertion_type | string Assertion type (required for JWT Bearer token). |
client_id | string The Marpp ID for the Application requesting the token. |
client_secret | string The secret used for requesting a token (not required if using JWT Bearer token). |
code | string The authorization code (required for |
code_verifier | string The original code verifier used for PKCE in the |
grant_type | string The type of grant being used. |
redirect_uri | string The redirect URI (required for |
service_account | string The identifier of the service account being used to authenticate the client. |
Responses
Request samples
- Payload
- Shell + Curl
client_id=Marpp12345&code=ABC123&code_verifier=XYZ789&grant_type=authorization_code&redirect_uri=https%3A%2F%2Fexample.com%2Fcallback
Response samples
- 200
- 401
{- "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
- "expires_in": 3600,
- "token_type": "Bearer"
}
User Login Endpoint
This endpoint facilitates user authentication. Clients send user credentials (username and password) to this
endpoint to establish an authenticated session. Upon successful authentication, the server sets an HTTP-only
cookie named FINBOOTSESSIONID
. This cookie represents the authenticated session and allows for immediate
redirections without the need for re-authentication.
Authorizations:
Request Body schema: application/json
A JSON object containing the user's username and password.
password required | string The user's password. |
username required | string The email for the user. |
Responses
Request samples
- Payload
- Shell + Curl
{- "password": "string",
- "username": "string"
}
User Logout Endpoint
This endpoint allows authenticated users to log out, effectively ending their session. When a user logs out,
the associated FINBOOTSESSIONID
cookie is invalidated on the server side, ensuring it can't be used for further
authenticated requests.
Clients should call this endpoint when users explicitly choose to log out or when refreshing authentication tokens to ensure a clean session state.
Authorizations:
Responses
Request samples
- Shell + Curl
curl --request POST \ --url https://api-marco.finboot.com/v1/auth/logout \ --header 'ApplicationToken: REPLACE_KEY_VALUE'
Init new user
Initializes the identity after they have been sent the onboarding email
Authorizations:
Request Body schema: application/json
acceptTnC | boolean Indicates whether the user accepts the Terms and Conditions. |
UserDetails (object) Additional user details specific to the identity type. | |
initToken | string The initialization token required to set up the identity. |
Responses
Request samples
- Payload
- Shell + Curl
{- "acceptTnC": true,
- "additional": {
- "name": "string",
- "password": "pa$$word"
}, - "initToken": "string"
}
Response samples
- 200
{- "email": "string"
}