Skip to main content

Auth and access control

This section shows DevOps and platform engineers how to authenticate callers and control what they can reach in DIAL. It assumes you operate a running DIAL Core instance and can edit its configuration files. For the conceptual model behind these tasks, see Access Control in DIAL.

Two questions DIAL answers on every request​

  • Authentication — who is calling? DIAL Core accepts two credential types: API keys for server-to-server calls, and JWT access tokens for end users who log in through an identity provider (IdP).
  • Authorization — what may they reach? Both credential types resolve to one or more roles. Roles grant access to deployments (models, applications, toolsets, routes) and carry usage limits.

Where the configuration lives​

Most of this configuration sits in two DIAL Core files:

  • settings.json — static settings, loaded once at startup. The path is named by the AIDIAL_SETTINGS environment variable; the Docker Compose setups mount it at /opt/settings/settings.json. See settings.json — File location.
  • config.json — dynamic settings, reloaded roughly every 60 seconds. The path comes from the config.files static setting; the Docker Compose setups mount it at /opt/config/config.json. See config.json — File location.

DIAL Chat reads its login-provider settings from environment variables. The table below maps each concern to its file and the reference page that documents every option.

ConcernFileReloadReference
API keysconfig.json (keys section)Dynamic, ~60 sKeys reference
Roles, limits, sharingconfig.json (roles section)Dynamic, ~60 sRoles reference
Resource access (userRoles)config.json (models, applications, etc.)Dynamic, ~60 sconfig.json overview
IdP / JWT validationsettings.json (identityProviders section)At startupIdentity providers reference
Admin privilegessettings.json (access.admin.rules)At startupAccess control reference
DIAL Chat login providersenvironment variablesAt startupDIAL Chat configuration

How-to guides​