Auth Bearer Service Configuration
The auth
Service Family
Infinite Scale uses several authentication services for different use cases. All services that start with auth-
are part of the authentication service family. Each member authenticates requests with different scopes.
As of now, these auth services exist |
|
---|---|
Handles basic authentication. |
|
Handles OIDC authentication. |
|
Handles interservice authentication when a user is impersonated. |
|
Handles interservice authentication when using service accounts. |
Built in OpenID Connect Identity Provider
A default Infinite Scale deployment will start a built-in OpenID Connect identity provider but can be configured to use an external one as well.
Scalability
There is no persistance or caching. The proxy caches verified auth bearer tokens. Requests will be forwarded to the identity provider. Therefore, multiple instances of the auth-bearer
service can be started without further configuration. Currently, the auth
registry used by the gateway service can only use a single instance of the service. To use more than one auth provider per deployment, you need to scale the gateway.
This will change over time and be documented when available.
Configuration
Environment Variables
The auth-bearer
service is configured via the following environment variables. Read the Environment Variable Types documentation for important details.
Name | Type | Default Value | Description |
---|---|---|---|
|
bool |
false |
Activates tracing. |
|
string |
|
The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now. |
|
string |
|
The endpoint of the tracing agent. |
|
string |
|
The HTTP endpoint for sending spans directly to a collector, i.e. http://jaeger-collector:14268/api/traces. Only used if the tracing endpoint is unset. |
|
string |
|
The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'. |
|
bool |
false |
Activates pretty log output. |
|
bool |
false |
Activates colorized log output. |
|
string |
|
The path to the log file. Activates logging to this file if set. |
|
string |
127.0.0.1:9149 |
Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed. |
|
string |
|
Token to secure the metrics endpoint. |
|
bool |
false |
Enables pprof, which can be used for profiling. |
|
bool |
false |
Enables zpages, which can be used for collecting and viewing in-memory traces. |
|
string |
127.0.0.1:9148 |
The bind address of the GRPC service. |
|
string |
tcp |
The transport protocol of the GRPC service. |
|
string |
|
The secret to mint and validate jwt tokens. |
|
string |
com.owncloud.api.gateway |
The CS3 gateway endpoint. |
|
string |
|
TLS mode for grpc connection to the go-micro based grpc services. Possible values are 'off', 'insecure' and 'on'. 'off': disables transport security for the clients. 'insecure' allows using transport security, but disables certificate verification (to be used with the autogenerated self-signed certificates). 'on' enables transport security, including server certificate verification. |
|
string |
|
Path/File name for the root CA certificate (in PEM format) used to validate TLS server certificates of the go-micro based grpc services. |
|
bool |
false |
Disables the encoding of the user’s group memberships in the reva access token. This reduces the token size, especially when users are members of a large number of groups. |
|
string |
https://localhost:9200 |
URL of the OIDC issuer. It defaults to URL of the builtin IDP. |
|
bool |
false |
Allow insecure connections to the OIDC issuer. |
|
string |
preferred_username |
Name of the claim, which holds the user identifier. |
|
string |
|
Name of the claim, which holds the UID. |
|
string |
|
Name of the claim, which holds the GID. |
YAML Example
-
Note the file shown below must be renamed and placed in the correct folder according to the Configuration File Naming conventions to be effective.
-
See the Notes for Environment Variables if you want to use environment variables in the yaml file.
# Autogenerated
# Filename: auth-bearer-config-example.yaml
tracing:
enabled: false
type: ""
endpoint: ""
collector: ""
log:
level: ""
pretty: false
color: false
file: ""
debug:
addr: 127.0.0.1:9149
token: ""
pprof: false
zpages: false
grpc:
addr: 127.0.0.1:9148
tls: null
protocol: tcp
token_manager:
jwt_secret: ""
reva:
address: com.owncloud.api.gateway
tls:
mode: ""
cacert: ""
skip_user_groups_in_token: false
oidc:
issuer: https://localhost:9200
insecure: false
id_claim: preferred_username
uid_claim: ""
gid_claim: ""