diff --git a/.mkdocs.yml b/.mkdocs.yml index 3e90eec17..60f15352d 100644 --- a/.mkdocs.yml +++ b/.mkdocs.yml @@ -71,6 +71,8 @@ nav: - reference/auth/dovecot_sasl.md - reference/auth/plain_separate.md - reference/auth/netauth.md + - reference/auth/tls.md + - reference/auth/oauth.md - reference/config-syntax.md - Integration with software: - third-party/dovecot.md diff --git a/Dockerfile b/Dockerfile index 2da6211f4..dec3e4a72 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23-alpine AS build-env +FROM golang:1.25-alpine AS build-env ARG ADDITIONAL_BUILD_TAGS="" diff --git a/docs/reference/auth/oauth.md b/docs/reference/auth/oauth.md new file mode 100644 index 000000000..b1e3388d5 --- /dev/null +++ b/docs/reference/auth/oauth.md @@ -0,0 +1,172 @@ +# OAuth Bearer Token Authentication + +`auth.oauth` implements OAuth Bearer Token authentication as defined +in [RFC 7628][rfc7628] and [RFC 6750][rfc6750]. + +It is not compatible with non-standard XOAUTH2 implementations, such as those +used by Google and Microsoft. + +The provided token can be validated either by the server directly by decoding +JWT, or by making an introspection request ([RFC 7662][rfc7662]) to the +authorization server to validate the token and retrieve associated metadata. + +## Configuration directives + +``` +auth.oauth [] { + [debug yes | no] + [introspection auth | get | post | local] + [introspection_url ] + [http_header ] + [http_header ...] + [introspection_timeout 5s] + [scopes ] + [username_attribute ] + [active_attribute active] + [active_value true] + [jwt_key_id_template