Newer
Older
# The issuer url to be used. MUST point to this server
# Details about the service operator. Will be displayed in the privacy page.
service_operator:
# The name of the service operator
name: "Example Foundation"
homepage: "https://example.com"
# An email address where users can contact the service operator. It is recommend to use a email list for this
mail_contact: "mytoken@example.com"
# A dedicated email address for privacy related topics can be given. If you do not have a dedicated mail for privacy, it can be omitted.
mail_privacy: "mytoken-privacy@example.com"
# Configuration for the mytoken server
# If TLS is not enabled, mytoken will listen on this port, default: 8000
port: 8000
tls:
# Unless false TLS is enabled if 'cert' and 'key' are given
enabled: true
# Unless false port 80 is redirected to 443
redirect_http: true
# The TLS certificate file
cert:
# The TLS certificate key file
key:
# If behind a load balancer or reverse proxy, set this option. Mytoken will read the client's ip address from this header.
# proxy_header: "X-FORWARDED-FOR"
# Configure the request limits (these are per IP)
request_limits:
# Unless false request limits are enabled
enabled: true
# The number of requests that are allowed within the specified time window, e.g. 10/1s 100/5min 1000/1h
max_requests: 100
# The time window in which the maximum number of requests is allowed, i.e. the quota is reseted after this time.
# The time is given in seconds.
window: 300
# Use the list to exclude hosts from the request limit. You can specify single IP addresses as well as subnets.
always_allow:
- "127.0.0.1"
# The database file for ip geo location. Will be installed by setup to this location.
geo_ip_db_file: "/IP2LOCATION-LITE-DB1.IPV6.BIN"
# Configuration of the mytoken API
api:
# Mytoken can support multiple api versions at the same time; this is the minimal version that is supported; older version won't be supported. Currently only 0 is supported.
min_supported_version: 0
hosts:
- "localhost"
# The interval (in seconds) in which mytoken tries to reconnect to db nodes that are down
try_reconnect_interval: 60
# Configuration for token signing
# If an RSA-based algorithm is used, this is the key len. Only needed when generating a new rsa key.
# The directory where the log file should be placed
# Indicates if mytoken should log additionally to stderr
# The directory where the log file should be placed
# Indicates if mytoken should log additionally to stderr
# The minimal log level that should be logged
# URL with documentation about the service
service_documentation: "https://mytoken-docs.data.kit.edu/"
# Configuration and enabling/disabling for different features
features:
# The supported oidc flows
oidc_flows:
- "authorization_code" # Always enabled
# Specify restriction keys to disable support for them; on default all restriction keys are supported.
unsupported_restrictions:
# - nbf
# - exp
# - scope
# - audience
# - ip
# - geoip_allow
# - geoip_disallow
# - usages_AT
# - usages_other
# Revocation for tokens issued by mytoken. Only disable this if you have good reasons for it.
token_revocation:
enabled: true
# Endpoint to obtain different information about mytokens issued by this instance.
# Basic mytoken introspection (token-content useful when using short mytokens). Also gives information about validity and how often the token was used before.
# Must be enabled for usage with the web interface.
introspect:
enabled: true
# If enabled allows to query the tokeninfo endpoint to obtain the history of events for a given mytoken
# If enabled allows to query the tokeninfo endpoint for a list (tree) of all subtokens for a given mytoken
# If enabled allows a user to query the tokeninfo endpoint for a list of all its mytokens (the mytoken itself won't be returned)
list_mytokens:
# Support for transfer codes for mytokens; transfer codes have the same len as polling codes and expire after the same time
transfer_codes:
enabled: true
# Support for polling codes that are used by native applications. Only disable this if you have good reasons for it.
polling_codes:
enabled: true
len: 8 # Default 8, max 64, MUST be different from short_tokens len
expires_after: 300 # The time in seconds how long a polling code can be used
polling_interval: 5 # The interval in seconds the native application should wait between two polling attempts
# Support for rotation mytokens; users can enable rotation/disable rotation for their mytokens; if enabled a new mytoken will be returned after each usages and old mytokens can no longer be used.
token_rotation:
enabled: true
# Support for the access_token grant, i.e. a user can use an AT to obtain an ST.
access_token_grant:
enabled: true
# Support for the private_key_jwt grant, i.e. a user can use an signed jwt to obtain an ST.
signed_jwt_grant:
enabled: true
# Provides a web interface for in browser usage
web_interface:
enabled: true
# The list of supported providers
providers:
- issuer: "https://example.provider.com/"
client_id: "clientid"
client_secret: "clientsecret"
scopes:
- openid
- profile
# Maximum lifetime for mytokens for this issuer, given in seconds. On default the lifetime of mytokens is not restricted.
# Setting this value to 0, means that there is no maximum lifetime.
mytokens_max_lifetime: 0