FAPI in a Nutshell
Financial-grade API (FAPI) is a highly secured OAuth profile that provides specific implementation guidelines that aim to improve the security and interoperability of your APIs. It is more strict than traditional OAuth and OIDC profiles. FAPI compliance is also an important factor for all participants of the Open Banking environments, such as Open Banking UK, Open Banking Brazil, and more.
Cloudentity FAPI Compliance
Cloudentity is an certified financial-grade API (FAPI) OpenID provider.
Its compliant with the FAPI 1.0 guidelines on how to:
Obtain OAuth tokens in a secure manner for access to protected data
Use OIDC to identify the user
Use tokens to access REST APIs
FAPI 1.0 Compliant Flow
-
The user tries to access the application.
-
The client redirects the user to the authorize endpoint.
Note
The request must include a request object either using the
request
parameter or therequest_uri
parameter. FAPI requires the request objects to be signed with either PS256 or ES256 signing algorithm. -
Cloudentity authenticates the user and displays a consent screen if there is an authorization scope to be granted.
-
The user gives their consent.
-
Cloudentity issues an authorization code.
Note
After Cloudentity generates the authorization code, Cloudentity is redirected to the redirection endpoint configured for the registered client. The client must have at least one registered redirection URI. If there are multiple registered redirection URIs, the request to the
authorize
endpoint must always include theredirect_uri
parameter. -
The client requests authentication to the token endpoint using authorization code provided in the previous step.
Note
The client application must be configured to use any of the mutual TLS client authentication methods.
-
Cloudentity validates the request.
-
Cloudentity returns a certificate-bound access token.
Tip
Having certificate-bound access tokens ensures that only a client that has the private key corresponding to the client’s certificate can access the resources. The binding of an access token to the client’s certificate prevents the resources from being accessed with the use of stolen tokens.
-
The client requests protected resources from the resource server and submits the certificate-bound token it received in the previous step.
-
The resource server validates the token and responds the requested resources.
Cloudentity Compliance in Depth
Cloudentity’s authorization servers (workspaces) can be configured to be fully compliant with FAPI’s guidelines for authorization servers. Additionally, while creating a workspace you can choose one of the preconfigured workspace profiles that already are FAPI compliant: Open Banking UK, Open Banking Brazil, CDR Australia, and Fintech and mission-critical applications.
Enabling FAPI
To make your workspace FAPI compliant, you should:
-
Optionally, use certificate bound access tokens as an additional security layer. To learn more about such tokens, see the OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens documentation.
-
All Cloudentity’s authorization servers (workspaces) support JWT Secured Authorization Response Mode for OAuth 2.0 (JARM) if requested, causing all response parameters defined for a given response type to be conveyed in a JWT. To achieve further security hardening, you can encrypt the JWT.