Back to Authelia

BookStack

docs/content/integration/openid-connect/clients/bookstack/index.md

4.39.193.7 KB
Original Source

Tested Versions

{{% oidc-common bugs="client-credentials-encoding" %}}

Assumptions

This example makes the following assumptions:

  • Application Root URL: https://bookstack.{{< sitevar name="domain" nojs="example.com" >}}/
  • Authelia Root URL: https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}/
  • Client ID: bookstack
  • 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 BookStack which will operate with the application example:

yaml
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: 'bookstack'
        client_name: 'BookStack'
        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://bookstack.{{< sitevar name="domain" nojs="example.com" >}}/oidc/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'

Application

To configure BookStack there is one method, using the Environment Variables.

Environment Variables

To configure BookStack to utilize Authelia as an OpenID Connect 1.0 Provider, use the following environment variables:

Standard
shell
AUTH_METHOD=oidc
AUTH_AUTO_INITIATE=false
OIDC_NAME=Authelia
OIDC_ISSUER=https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}
OIDC_ISSUER_DISCOVER=true
OIDC_CLIENT_ID=bookstack
OIDC_CLIENT_SECRET=insecure_secret
OIDC_ADDITIONAL_SCOPES=groups
OIDC_DISPLAY_NAME_CLAIMS=name
OIDC_GROUPS_CLAIM=groups
OIDC_USER_TO_GROUPS=true
OIDC_REMOVE_FROM_GROUPS=true
OIDC_END_SESSION_ENDPOINT=false
Docker Compose
yaml
services:
  bookstack:
    environment:
      AUTH_METHOD: 'oidc'
      AUTH_AUTO_INITIATE: 'false'
      OIDC_NAME: 'Authelia'
      OIDC_ISSUER: 'https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}'
      OIDC_ISSUER_DISCOVER: 'true'
      OIDC_CLIENT_ID: 'bookstack'
      OIDC_CLIENT_SECRET: 'insecure_secret'
      OIDC_ADDITIONAL_SCOPES: 'groups'
      OIDC_DISPLAY_NAME_CLAIMS: 'name'
      OIDC_GROUPS_CLAIM: 'groups'
      OIDC_USER_TO_GROUPS: 'true'
      OIDC_REMOVE_FROM_GROUPS: 'true'
      OIDC_END_SESSION_ENDPOINT: 'false'

See Also