docs/content/integration/openid-connect/clients/stalwart/index.md
{{% oidc-common %}}
This example makes the following assumptions:
https://example.{{< sitevar name="domain" nojs="example.com" >}}/https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}/stalwartinsecure_secretSome of the values presented in this guide can automatically be replaced with documentation variables.
{{< sitevar-preferences >}}
{{< callout context="tip" title="Did you know?" icon="outline/rocket" >}} This client is created as an example but Stalwart doesn't use this client directly, it just queries the Introspection or User Info Endpoint given an Access Token. This means you must procure the relevant Access Token yourself in order to use it. In this example we issue it to an application that has a URI different to Stalwart which allows that application to leverage OAuth 2.0 to authenticate on a users behalf. {{< /callout >}}
The following YAML configuration is an example Authelia client configuration for use with Stalwart 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: 'stalwart'
client_name: 'Stalwart'
client_secret: '$pbkdf2-sha512$310000$c8p78n7pUMln0jzvd4aK4Q$JNRBzwAo0ek5qKn50cFzzvE9RXV88h1wJn5KGiHrD0YKtZaR/nCb2CJPOsKaPK0hjf.9yHxzQGZziziccp6Yng' # The digest of 'insecure_secret'.
public: false
authorization_policy: 'two_factor'
require_pkce: true
pkce_challenge_method: 'S256'
redirect_uris:
- 'https://example.{{< sitevar name="domain" nojs="example.com" >}}'
scopes:
- 'openid'
- 'profile'
- 'email'
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'
To configure Stalwart there are two methods, using the Configuration File, or using the Web GUI.
{{< callout context="tip" title="Did you know?" icon="outline/rocket" >}}
Generally the configuration file is named config.toml.
{{< /callout >}}
To configure Stalwart to utilize Authelia as an OpenID Connect 1.0 Provider, use the following configuration:
[directory."authelia"]
type = "oidc"
timeout = "15s"
endpoint.url = "https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}/api/oidc/userinfo"
endpoint.method = "userinfo"
fields.email = "email"
fields.username = "preferred_username"
fields.full-name = "name"
To configure Stalwart to utilize Authelia as an OpenID Connect 1.0 Provider, use the following instructions:
autheliaOpenID Connecthttps://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}/api/oidc/userinfoOpenID Connect Userinfo15 secondsemailpreferred_usernamenameSave & Reload at the bottom.