Auth configuration
authentication_method
authentication_method (String)
Default value 'unvalidated'
- authentication_method
unvalidated : Accepts user id and password. Does not validate password. none: Does not ask for user id or password. Authenticated as admin. openid: Users OpenID Connect provider for authentication. See additional OpenID settings below. oidc: Renewed OpenID Connect authentication using authorization code flow. See additional OpenID settings below. pam: Accepts user id and password. Validates user with operating system. ldap: Accepts user id and password. Validates against an ldap server. Look
for additional settings under LDAP settings.
local: Accepts a user id and password. Validated against an htpasswd file provided in local_htpasswd_file. ibm_spectrum_conductor: Authenticate with IBM conductor auth api. tls_certificate: Authenticate with Driverless by providing a TLS certificate. jwt: Authenticate by JWT obtained from the request metadata.
additional_authentication_methods
additional_authentication_methods (List)
Default value []
Additional authentication methods that will be enabled for for the clients.Login forms for each method will be available on the``/login/<authentication_method>`` path.Comma separated list.
authentication_default_timeout_hours
authentication_default_timeout_hours (Float)
Default value 72.0
The default amount of time in hours before a user is signed out and must log in again. This setting is used when a default timeout value is not provided by authentication_method
.
authentication_gui_polling_prolongs_session
authentication_gui_polling_prolongs_session (Boolean)
Default value False
When enabled, the user’s session is automatically prolonged, even when they are not interacting directly with the application.
auth_openid_provider_base_uri
auth_openid_provider_base_uri (String)
Default value ''
- OpenID Connect Settings:
Refer to the OpenID Connect Basic Client Implementation Guide for details on how OpenID authentication flow works https://openid.net/specs/openid-connect-basic-1_0.html base server URI to the OpenID Provider server (ex: https://oidp.ourdomain.com
auth_openid_configuration_uri
auth_openid_configuration_uri (String)
Default value ''
- URI to pull OpenID config data from (you can extract most of required OpenID config from this url)
usually located at: /auth/realms/master/.well-known/openid-configuration
auth_openid_auth_uri
auth_openid_auth_uri (String)
Default value ''
URI to start authentication flow
auth_openid_token_uri
auth_openid_token_uri (String)
Default value ''
URI to make request for token after callback from OpenID server was received
auth_openid_userinfo_uri
auth_openid_userinfo_uri (String)
Default value ''
URI to get user information once access_token has been acquired (ex: list of groups user belongs to will be provided here)
auth_openid_logout_uri
auth_openid_logout_uri (String)
Default value ''
URI to logout user
auth_openid_redirect_uri
auth_openid_redirect_uri (String)
Default value ''
- callback URI that OpenID provide will use to send ‘authentication_code’
This is OpenID callback endpoint in Driverless AI. Most OpenID providers need this to be HTTPs. (ex. https://driverless.ourdomin.com/openid/callback)
auth_openid_grant_type
auth_openid_grant_type (String)
Default value ''
OAuth2 grant type (usually authorization_code for OpenID, can be access_token also)
auth_openid_response_type
auth_openid_response_type (String)
Default value ''
OAuth2 response type (usually code)
auth_openid_client_id
auth_openid_client_id (String)
Default value ''
Client ID registered with OpenID provider
auth_openid_client_secret
auth_openid_client_secret (String)
Default value ''
Client secret provided by OpenID provider when registering Client ID
auth_openid_scope
auth_openid_scope (String)
Default value ''
- Scope of info (usually openid). Can be list of more than one, space delimited, possible
values listed at https://openid.net/specs/openid-connect-basic-1_0.html#Scopes
auth_openid_userinfo_auth_key
auth_openid_userinfo_auth_key (String)
Default value ''
What key in user_info JSON should we check to authorize user
auth_openid_userinfo_auth_value
auth_openid_userinfo_auth_value (String)
Default value ''
What value should the key have in user_info JSON in order to authorize user
auth_openid_userinfo_username_key
auth_openid_userinfo_username_key (String)
Default value ''
Key that specifies username in user_info JSON (we will use the value of this key as username in Driverless AI)
auth_openid_urlencode_quote_via
auth_openid_urlencode_quote_via (String)
Default value 'quote'
Quote method from urllib.parse used to encode payload dict in Authentication Request
auth_openid_access_token_expiry_key
auth_openid_access_token_expiry_key (String)
Default value 'expires_in'
Key in Token Response JSON that holds the value for access token expiry
auth_openid_refresh_token_expiry_key
auth_openid_refresh_token_expiry_key (String)
Default value 'refresh_expires_in'
Key in Token Response JSON that holds the value for access token expiry
auth_openid_token_expiration_secs
auth_openid_token_expiration_secs (Number)
Default value 3600
Expiration time in seconds for access token
auth_openid_use_objectpath_match
auth_openid_use_objectpath_match (Boolean)
Default value False
Enables advanced matching for OpenID Connect authentication.
When enabled ObjectPath (<http://objectpath.org/>) expression is used to evaluate the user identity.
auth_openid_use_objectpath_expression
auth_openid_use_objectpath_expression (String)
Default value ''
- ObjectPath (<http://objectpath.org/>) expression that will be used
to evaluate whether user is allowed to login into Driverless.
Any expression that evaluates to True means user is allowed to log in.
Examples:
Simple claim equality: $.our_claim is “our_value” List of claims contains required value: “expected_role” in @.roles
auth_openid_token_introspection_url
auth_openid_token_introspection_url (String)
Default value ''
Sets token introspection URL for OpenID Connect authentication. (needs to be an absolute URL) Needs to be set when API token introspection is enabled. Is used to get the token TTL when set and IDP does not provide expires_in field in the token endpoint response.
auth_openid_end_session_endpoint_url
auth_openid_end_session_endpoint_url (String)
Default value ''
Sets an URL where the user is being redirected after being logged out when set. (needs to be an absolute URL)
auth_openid_default_scopes
auth_openid_default_scopes (String)
Default value ''
If set, server will use these scopes when it asks for the token on the login. (space separated list)
auth_oidc_identity_source
auth_oidc_identity_source (String)
Default value 'userinfo'
Specifies the source from which user identity and username is retrieved.
- Currently supported sources are:
user_info: Retrieves username from UserInfo endpoint response id_token: Retrieves username from ID Token using
auth_openid_id_token_username_key claim
auth_oidc_username_claim
auth_oidc_username_claim (String)
Default value ''
Claim of preferred username in a message holding the user identity, which will be used as a username in application. The user identity source is specified by auth_oidc_identity_source, and can be e.g. UserInfo endpoint response or ID Token
auth_oidc_issuer_url
auth_oidc_issuer_url (String)
Default value ''
OpenID-Connect Issuer URL, which is used for automatic provider infodiscovery. E.g. https://login.microsoftonline.com/<client-id>/v2.0
auth_oidc_token_endpoint_url
auth_oidc_token_endpoint_url (String)
Default value ''
OpenID-Connect Token endpoint URL. Setting this is optional and if it’s empty, it’ll be automatically set by provider info discovery.
auth_oidc_introspection_endpoint_url
auth_oidc_introspection_endpoint_url (String)
Default value ''
OpenID-Connect Token introspection endpoint URL. Setting this is optional and if it’s empty, it’ll be automatically set by provider info discovery.
auth_oidc_post_logout_url
auth_oidc_post_logout_url (String)
Default value ''
Absolute URL to which user is redirected, after they log out from the application, in case OIDC authentication is used. Usually this is absolute URL of DriverlessAI Login page e.g. https://1.2.3.4:12345/login
auth_oidc_authorization_query_params
auth_oidc_authorization_query_params (Dict)
Default value {}
Key-value mapping of extra HTTP query parameters in an OIDC authorization request.
auth_oidc_skip_cert_verification
auth_oidc_skip_cert_verification (Boolean)
Default value False
When set to True, will skip cert verification.
auth_oidc_ca_cert_location
auth_oidc_ca_cert_location (String)
Default value ''
When set will use this value as the location for the CA cert, this takes precedence over auth_oidc_skip_cert_verification.
api_token_introspection_enabled
api_token_introspection_enabled (Boolean)
Default value False
Enables option to use Bearer token for authentication with the RPC endpoint.
api_token_introspection_method
api_token_introspection_method (String)
Default value 'OAUTH2_TOKEN_INTROSPECTION'
Sets the method that is used to introspect the bearer token.
- OAUTH2_TOKEN_INTROSPECTION: Uses OAuth 2.0 Token Introspection (RPC 7662)
endpoint to introspect the bearer token. This useful when ‘openid’ is used as the authentication method. Uses ‘auth_openid_client_id’ and ‘auth_openid_client_secret’ and to authenticate with the authorization server and auth_openid_token_introspection_url to perform the introspection.
api_token_oauth2_scopes
api_token_oauth2_scopes (String)
Default value ''
- Sets the minimum of the scopes that the access token needs to have
in order to pass the introspection. Space separated./ This is passed to the introspection endpoint and also verified after response for the servers that don’t enforce scopes. Keeping this empty turns any the verification off.
api_token_oauth2_username_field_name
api_token_oauth2_username_field_name (String)
Default value 'username'
Which field of the response returned by the token introspection endpoint should be used as a username.
oauth2_client_tokens_client_id
oauth2_client_tokens_client_id (String)
Default value ''
Sets up client id that will be used in the OAuth 2.0 Authorization Code Flow to obtain the tokens. Client needs to be public and be able to use PKCE with S256 code challenge.
oauth2_client_tokens_authorize_url
oauth2_client_tokens_authorize_url (String)
Default value ''
Sets up the absolute url to the authorize endpoint.
oauth2_client_tokens_token_url
oauth2_client_tokens_token_url (String)
Default value ''
Sets up the absolute url to the token endpoint.
oauth2_client_tokens_introspection_url
oauth2_client_tokens_introspection_url (String)
Default value ''
Sets up the absolute url to the token introspection endpoint.It’s displayed in the UI so that clients can inspect the token expiration.
oauth2_client_tokens_redirect_url
oauth2_client_tokens_redirect_url (String)
Default value ''
Sets up the absolute to the redirect url where Driverless handles the redirect part of the Authorization Code Flow. this <Driverless base url>/oauth2/client_token
oauth2_client_tokens_scope
oauth2_client_tokens_scope (String)
Default value 'openid profile ai.h2o.storage'
Sets up the scope for the requested tokens. Space seprated list.
ldap_server
ldap_server (String)
Default value ''
ldap server domain or ip
ldap_port
ldap_port (String)
Default value ''
ldap server port
ldap_bind_dn
ldap_bind_dn (String)
Default value ''
Complete DN of the LDAP bind user
ldap_bind_password
ldap_bind_password (String)
Default value ''
Password for the LDAP bind
ldap_tls_file
ldap_tls_file (String)
Default value ''
Provide Cert file location
ldap_use_ssl
ldap_use_ssl (Boolean)
Default value False
use true to use ssl or false
ldap_search_base
ldap_search_base (String)
Default value ''
the location in the DIT where the search will start
ldap_search_filter
ldap_search_filter (String)
Default value ''
A string that describes what you are searching for. You can use Pythonsubstitution to have this constructed dynamically.(only {{DAI_USERNAME}} is supported)
ldap_search_attributes
ldap_search_attributes (String)
Default value ''
ldap attributes to return from search
ldap_user_name_attribute
ldap_user_name_attribute (String)
Default value ''
specify key to find user name
ldap_recipe
ldap_recipe (String)
Default value '0'
When using this recipe, needs to be set to “1”
ldap_user_prefix
ldap_user_prefix (String)
Default value ''
Deprecated do not use
ldap_search_user_id
ldap_search_user_id (String)
Default value ''
Deprecated, Use ldap_bind_dn
ldap_search_password
ldap_search_password (String)
Default value ''
Deprecated, ldap_bind_password
ldap_ou_dn
ldap_ou_dn (String)
Default value ''
Deprecated, use ldap_search_base instead
ldap_dc
ldap_dc (String)
Default value ''
Deprecated, use ldap_base_dn
ldap_base_dn
ldap_base_dn (String)
Default value ''
Deprecated, use ldap_search_base
ldap_base_filter
ldap_base_filter (String)
Default value ''
Deprecated, use ldap_search_filter
auth_tls_crl_file
auth_tls_crl_file (String)
Default value ''
Path to the CRL file that will be used to verify client certificate.
auth_tls_subject_field
auth_tls_subject_field (String)
Default value 'CN'
What field of the subject would used as source for username or other values used for further validation.
auth_tls_field_parse_regexp
auth_tls_field_parse_regexp (String)
Default value '(?P<username>.*)'
Regular expression that will be used to parse subject field to obtain the username or other values used for further validation.
auth_tls_user_lookup
auth_tls_user_lookup (String)
Default value 'REGEXP_ONLY'
- Sets up the way how user identity would be obtained
- REGEXP_ONLY: Will use ‘auth_tls_subject_field’ and ‘auth_tls_field_parse_regexp’
to extract the username from the client certificate.
- LDAP_LOOKUP: Will use LDAP server to lookup for the username.
‘auth_tls_ldap_server’, ‘auth_tls_ldap_port’, ‘auth_tls_ldap_use_ssl’, ‘auth_tls_ldap_tls_file’, ‘auth_tls_ldap_bind_dn’, ‘auth_tls_ldap_bind_password’ options are used to establish the connection with the LDAP server. ‘auth_tls_subject_field’ and ‘auth_tls_field_parse_regexp’ options are used to parse the certificate. ‘auth_tls_ldap_search_base’, ‘auth_tls_ldap_search_filter’, and ‘auth_tls_ldap_username_attribute’ options are used to do the lookup.
auth_tls_ldap_server
auth_tls_ldap_server (String)
Default value ''
Hostname or IP address of the LDAP server used with LDAP_LOOKUP with ‘tls_certificate’ authentication method.
auth_tls_ldap_port
auth_tls_ldap_port (String)
Default value ''
Port of the LDAP server used with LDAP_LOOKUP with ‘tls_certificate’ authentication method.
auth_tls_ldap_use_ssl
auth_tls_ldap_use_ssl (Boolean)
Default value False
Whether to SSL to when connecting to the LDAP server used with LDAP_LOOKUP with ‘tls_certificate’ authentication method.
auth_tls_ldap_tls_file
auth_tls_ldap_tls_file (String)
Default value ''
Path to the SSL certificate used with LDAP_LOOKUP with ‘tls_certificate’ authentication method.
auth_tls_ldap_bind_dn
auth_tls_ldap_bind_dn (String)
Default value ''
Complete DN of the LDAP bind user used with LDAP_LOOKUP with ‘tls_certificate’ authentication method.
auth_tls_ldap_bind_password
auth_tls_ldap_bind_password (String)
Default value ''
Password for the LDAP bind used with LDAP_LOOKUP with ‘tls_certificate’ authentication method.
auth_tls_ldap_search_base
auth_tls_ldap_search_base (String)
Default value ''
Location in the DIT where the search will start used with LDAP_LOOKUP with ‘tls_certificate’ authentication method.
auth_tls_ldap_search_filter
auth_tls_ldap_search_filter (String)
Default value ''
- LDAP filter that will be used to lookup for the user
with LDAP_LOOKUP with ‘tls_certificate’ authentication method.
Can be built dynamically using the named capturing groups from the ‘auth_tls_field_parse_regexp’ for substitution.
- Example:
auth_tls_field_parse_regexp="\w+ (?P<id>\d+)"
auth_tls_ldap_search_filter="(&(objectClass=person)(id={{id}}))"
auth_tls_ldap_username_attribute
auth_tls_ldap_username_attribute (String)
Default value ''
Specified what LDAP record attribute will be used as username with LDAP_LOOKUP with ‘tls_certificate’ authentication method.
auth_tls_ldap_authorization_lookup_filter
auth_tls_ldap_authorization_lookup_filter (String)
Default value ''
- Sets optional additional lookup filter that is performed after the
user is found. This can be used for example to check whether the is member of particular group. Filter can be built dynamically from the attributes returned by the lookup. Authorization fails when search does not return any entry. If one ore more entries are returned authorization succeeds. Example:
auth_tls_field_parse_regexp="\w+ (?P<id>\d+)"
ldap_search_filter="(&(objectClass=person)(id={{id}}))"
auth_tls_ldap_authorization_lookup_filter="(&(objectClass=group)(member=uid={{uid}},dc=example,dc=com))"
If this option is empty no additional lookup is done and just a successful user lookup is enough to authorize the user.
auth_tls_ldap_authorization_search_base
auth_tls_ldap_authorization_search_base (String)
Default value ''
Base DN where to start the Authorization lookup. Used when ‘auth_tls_ldap_authorization_lookup_filter’ is set.
auth_jwt_token_source
auth_jwt_token_source (String)
Default value 'HEADER'
- Sets up the way how the token will picked from the request
- COOKIE: Will use ‘auth_jwt_cookie_name’ cookie content parsed with
‘auth_jwt_source_parse_regexp’ to obtain the token content.
- HEADER: Will use ‘auth_jwt_header_name’ header value parsed with
‘auth_jwt_source_parse_regexp’ to obtain the token content.
auth_jwt_cookie_name
auth_jwt_cookie_name (String)
Default value ''
Specifies name of the cookie that will be used to obtain JWT.
auth_jwt_header_name
auth_jwt_header_name (String)
Default value ''
Specifies name http header that will be used to obtain JWT
auth_jwt_source_parse_regexp
auth_jwt_source_parse_regexp (String)
Default value '(?P<token>.*)'
Regular expression that will be used to parse JWT source. Expression is in Python syntax and must contain named group ‘token’ with capturing the token value.
auth_jwt_username_claim_name
auth_jwt_username_claim_name (String)
Default value 'sub'
Which JWT claim will be used as username for Driverless.
auth_jwt_verify
auth_jwt_verify (Boolean)
Default value True
Whether to verify the signature of the JWT.
auth_jwt_algorithm
auth_jwt_algorithm (String)
Default value 'HS256'
Signature algorithm that will be used to verify the signature according to RFC 7518.
auth_jwt_secret
auth_jwt_secret (String)
Default value ''
Specifies the secret content for HMAC or public key for RSA and DSA signature algorithms.
auth_jwt_exp_leeway_seconds
auth_jwt_exp_leeway_seconds (Number)
Default value 0
Number of seconds after JWT still can be accepted if when already expired
auth_jwt_required_audience
auth_jwt_required_audience (List)
Default value []
List of accepted ‘aud’ claims for the JWTs. When empty, anyaudience is accepted
auth_jwt_required_issuer
auth_jwt_required_issuer (String)
Default value ''
Value of the ‘iss’ claim that JWTs need to have in order to be accepted.
local_htpasswd_file
local_htpasswd_file (String)
Default value ''
Local password file
Generating a htpasswd file: see syntax below
htpasswd -B '<location_to_place_htpasswd_file>' '<username>'
note: -B forces use of brcypt, a secure encryption method
authorization_service
Authorization service name (String)
Default value 'local'
Authorization service name: * local: Authorization is based on config.toml settings such as local_administrator_list
local_administrator_list
List of usernames with admin rights (List)
Default value []