Signed-off-by: Amir Zarrinkafsh <3339418+nightah@users.noreply.github.com>
6.4 KiB
title, description, summary, date, draft, images, weight, toc, aliases, support, seo
| title | description | summary | date | draft | images | weight | toc | aliases | support | seo | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MinIO | Integrating MinIO with the Authelia OpenID Connect 1.0 Provider. | 2024-03-14T06:00:14+11:00 | false | 620 | true |
|
|
|
Tested Versions
{{% oidc-common bugs="claims-hydration" %}}
Assumptions
This example makes the following assumptions:
- Application Root URL:
https://minio.{{< sitevar name="domain" nojs="example.com" >}}/ - Authelia Root URL:
https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}/ - Client ID:
minio - Client Secret:
insecure_secret
Some of the values presented in this guide can automatically be replaced with documentation variables.
{{< sitevar-preferences >}}
Configuration
Authelia
The following YAML configuration is an example Authelia client configuration for use with MinIO which will operate with the application example:
identity_providers:
oidc:
## The other portions of the mandatory OpenID Connect 1.0 configuration go here.
## See: https://www.authelia.com/c/oidc
clients:
- client_id: 'minio'
client_name: 'MinIO'
client_secret: '$pbkdf2-sha512$310000$c8p78n7pUMln0jzvd4aK4Q$JNRBzwAo0ek5qKn50cFzzvE9RXV88h1wJn5KGiHrD0YKtZaR/nCb2CJPOsKaPK0hjf.9yHxzQGZziziccp6Yng' # The digest of 'insecure_secret'.
public: false
authorization_policy: 'two_factor'
require_pkce: false
pkce_challenge_method: ''
redirect_uris:
- 'https://minio.{{< sitevar name="domain" nojs="example.com" >}}/oauth_callback'
scopes:
- 'openid'
- 'profile'
- 'email'
- 'groups'
response_types:
- 'code'
grant_types:
- 'authorization_code'
access_token_signed_response_alg: 'none'
userinfo_signed_response_alg: 'none'
token_endpoint_auth_method: 'client_secret_basic'
Configuration Escape Hatch
{{% oidc-escape-hatch-claims-hydration client_id="minio" %}}
Application
To configure MinIO there are two methods, using Environment Variables, or using the Web GUI.
Environment Variables
To configure MinIO to utilize Authelia as an OpenID Connect 1.0 Provider, use the following environment variables:
Standard
MINIO_IDENTITY_OPENID_CONFIG_URL=https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}/.well-known/openid-configuration
MINIO_IDENTITY_OPENID_CLIENT_ID=minio
MINIO_IDENTITY_OPENID_CLIENT_SECRET=insecure_secret
MINIO_IDENTITY_OPENID_SCOPES=openid,profile,email,groups
MINIO_IDENTITY_OPENID_REDIRECT_URI=https://minio.{{< sitevar name="domain" nojs="example.com" >}}/oauth_callback
MINIO_IDENTITY_OPENID_REDIRECT_URI_DYNAMIC=off
MINIO_IDENTITY_OPENID_DISPLAY_NAME=Authelia
MINIO_IDENTITY_OPENID_CLAIM_NAME=groups
MINIO_IDENTITY_OPENID_CLAIM_USERINFO=on
Docker Compose
services:
minio:
environment:
MINIO_IDENTITY_OPENID_CONFIG_URL: 'https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}/.well-known/openid-configuration'
MINIO_IDENTITY_OPENID_CLIENT_ID: 'minio'
MINIO_IDENTITY_OPENID_CLIENT_SECRET: 'insecure_secret'
MINIO_IDENTITY_OPENID_SCOPES: 'openid,profile,email,groups'
MINIO_IDENTITY_OPENID_REDIRECT_URI: 'https://minio.{{< sitevar name="domain" nojs="example.com" >}}/oauth_callback'
MINIO_IDENTITY_OPENID_REDIRECT_URI_DYNAMIC: 'off'
MINIO_IDENTITY_OPENID_DISPLAY_NAME: 'Authelia'
MINIO_IDENTITY_OPENID_CLAIM_NAME: 'groups'
MINIO_IDENTITY_OPENID_CLAIM_USERINFO: 'on'
Web GUI
To configure MinIO to utilize Authelia as an OpenID Connect 1.0 Provider, use the following instructions:
- Login to MinIO
- On the left hand menu, go to
Identity, thenOpenID - On the top right, click
Create Configuration - Configure the following options:
- Name:
authelia - Config URL:
https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}/.well-known/openid-configuration - Client ID:
minio - Client Secret:
insecure_secret - Claim Name:
groups - Display Name:
Authelia - Claim Prefix: Leave Empty
- Scopes:
openid,profile,email,groups - Redirect URI:
https://minio.{{< sitevar name="domain" nojs="example.com" >}}/oauth_callback - Role Policy: Leave Empty
- Claim User Info: Enabled
- Redirect URI Dynamic: Disabled
- Name:
- Press
Saveat the bottom - Accept the offer of a server restart at the top
- Refresh the page and sign out if not done so automatically
- Add your user to an authelia group that matches the policy name in MinIO. There are select default policies that can be used. (The group name and policy name must match.)
- When the login screen appears again, click the
Other Authentication Methodsopen, then selectAutheliafrom the list. - Login
Additional Steps
You may also want to consider adding a default policy to your user groups in Authelia.