Toolsets security
Toolsets connect DIAL to MCP servers, and many MCP servers need users to sign in with OAuth. These static settings set how DIAL Core runs that sign-in and acts as an OAuth-protected resource for MCP clients, and how it encrypts the credentials it stores for toolsets. Toolsets themselves are dynamic configuration; see Toolsets. This page is for platform engineers who connect authenticated MCP servers.
OAuth sign-in
| Setting | Default | Description |
|---|---|---|
toolsets.security.allowedRedirectUris | [] | The redirect URIs clients can give during OAuth sign-in. A URI is accepted only if it is listed here or equals the toolset's own redirect_uri. For dynamic client registration, every URI in this list is registered with the authorization server. Required when more than one client can start a sign-in, such as DIAL Chat and DIAL Admin, because a toolset can pin only one redirect_uri of its own. |
toolsets.security.authorizationServers | — | The authorization server URLs trusted to issue access tokens for MCP clients. |
toolsets.security.resourceSchema | https | The URL scheme of the resource server, used to build the resource identifier for token validation as defined in RFC 9728. |
toolsets.security.resourceHost | — | The public, fully qualified host name of this resource server, for example dial.example.com. Used to build the resource identifier for token validation per RFC 9728. When unset, the host is taken from the incoming request. |
toolsets.security.scopesSupported | — | The OAuth 2.0 scope values used in authorization requests for access to this protected resource. |
Key management
Core encrypts toolset credentials with a content encryption key (CEK), which a key management service (KMS) protects.
| Setting | Default | Description |
|---|---|---|
toolsets.security.kms.provider | unencrypted | The KMS provider: aws, azure, gcp, or unencrypted. |
toolsets.security.kms.keyId | — | The KMS key used for encryption. |
toolsets.security.kms.region | — | The region of the KMS. Required for aws. |
toolsets.security.kms.encryptionAlgorithm | — | The encryption algorithm. Required for azure; see the Azure key wrap algorithms. The default for aws is SYMMETRIC_DEFAULT; see the AWS Encrypt API. |
toolsets.security.kms.cache.enabled | true | Whether the CEK cache is on. |
toolsets.security.kms.cache.maxSize | 10000 | The maximum number of cached CEKs. |
toolsets.security.kms.cache.expiration | 600000 | How long a cached CEK is kept, in milliseconds. |
warning
The default KMS provider is unencrypted. Choose aws, azure, or gcp for production.
Content encryption
| Setting | Default | Description |
|---|---|---|
toolsets.security.encryption.algorithm | AES | The content encryption algorithm. Other algorithms the JCE provider supports can be used. |
toolsets.security.encryption.keySize | 256 | The key size in bits. For AES: 128, 192, or 256, depending on the algorithm and provider policy. |
toolsets.security.encryption.cipherTransformation | AES/GCM/NoPadding | The cipher transformation: algorithm, mode, and padding. Must match the algorithm. |
toolsets.security.encryption.ivLengthBytes | 12 | The length of the initialization vector in bytes. NIST recommends 12 bytes (96 bits) for AES-GCM. |
toolsets.security.encryption.gcmTagLengthBits | 128 | The authentication tag length in bits for GCM mode. NIST recommends 128 bits. |
Example
{
"toolsets": {
"security": {
"allowedRedirectUris": [
"https://chat.example.com/toolsets/callback",
"https://admin.example.com/toolsets/callback"
],
"resourceHost": "dial.example.com",
"kms": {
"provider": "aws",
"keyId": "<KMS_KEY_ARN>",
"region": "eu-west-1"
}
}
}
}
Further reading
- DIAL Core configuration: Toolsets — register MCP servers in the dynamic configuration
- Security hardening — production security checklist
- Encryption — the AES settings Core uses for bucket prefixes
- DIAL Chat configuration: Authentication — OpenID Connect sign-in, sessions, and roles in Chat
- Data protection and isolation — which controls protect data and where external systems take over
- Integrate an MCP server — transport and authentication options for connecting an MCP server