Configure Domino Rest API IdP
About this task
Domino REST API implements an OAuth2 provider. The following is a guide for setting up and configuring Domino REST API's OAuth2 provider.
Before you begin
The oauth.nsf database exists in your Domino data directory. The Domino IdP uses the oauth.nsf to store content and refresh information.
Note
- If you are using Domino+Domino REST API docker image, the
oauth.nsfshould already be in the image but may not be fully configured. - If for some reason you need to create the
oauth.nsf, see Set up oauth.nsf, and save it in your Domino data directory.
Client Ids
When configuring an external identity provider using OpenID Connect (OIDC) or OIDC-idpcat with HCL Domino and the Domino REST API, you must specify a client ID. The default recommendation is to use Domino as the client ID for the Domino REST API server. However, your identity provider administrator might require a different value depending on your organization’s configuration.
Separate client IDs (application registrations) are required to support the Admin UI and Office Forms Based Authentication (OFBA). To support these features, configure at least the following clients in your identity provider:
- A client used by the Domino REST API server. You can name the client
Dominoor any descriptive name. The client secret might be managed throughidpcat.nsf. - A client used by the Domino REST API Admin UI. You can name the client
keepadminuior any descriptive name. Configure this client if you want administrators to authenticate through the external identity provider. - A client used for OFBA round-trip editing of Office documents. You can name the client
keepofbaor any descriptive name.
You should also create separate clients for each custom application that connects to the Domino REST API.
Procedure
-
Configure Domino REST API to access the
oauth.nsf.- Create an
oauth.jsonfile using a text editor. -
Copy the following JSON object to the JSON file.
{ "oauth": { "active": true, "database": "oauth.nsf", "url": "https://sample.keep.io:8880", "authCodeExpiresIn": 120, "accessTokenExpiresIn": 3600, "refreshTokenExpiresIn": 525600 } }For more information, see the following table:
Property Description activeRequired
It has a boolean value indicating if the provided token is now active. If the token is issued by this authorization server, it isn't revoked by the user, and it's not yet expired, the value should betrue.databaseThe nsffile where the authorization details are stored.urlServer URL authCodeExpiresInThe code expiration time in seconds. accessTokenExpiresInThe access token expiration time in seconds. refreshTokenExpiresInThe refresh token expiration time in seconds. -
Change the value of the
urlparameter to match your Domino REST API host.The indicated
urlvalue in the JSON object above is just an example value. -
(Optional) Adjust the expiration time values as needed.
-
Save the JSON file in the
keepconfig.ddirectory located in your Domino data directory.You need to create the
keepconfig.ddirectory if not yet existing. -
Restart Domino REST API.
- Create an
-
Add the
OAuthAdminrole for the ACL entry.Be sure to thoroughly examine the ACL.
- By default, the configured access level is
Authorwith the capability to create information but unable to remove it. - All servers involved must have at least an
Editoraccess level and theOAuthAdminrole assigned. If you DON'T have this role, you'll only see your documents or records. -
Administrators requiring troubleshooting capabilities should have
Editoraccess level and theOAuthAdminrole assigned. - Ensure the database is copied to all servers involved.
- By default, the configured access level is