Skip to content

Commit 8f6fe07

Browse files
committed
WIP
1 parent db96590 commit 8f6fe07

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

website/docs/add-secure-apps/providers/oauth2/frontchannel_and_backchannel_logout.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: OAuth2/OpenID Connect front-channel and back-channel logout
2+
title: Front-channel and back-channel logout
33
description: Configure front-channel and back-channel logout for OAuth2/OpenID Connect providers
44
authentik_version: "2025.8.0"
55
authentik_preview: true

website/docs/add-secure-apps/providers/oauth2/index.mdx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,28 @@ This does _not_ apply to special scopes, as those are not configurable in the pr
183183
- `user:email`: Allows read-only access to `/user`, including email address
184184
- `read:org`: Allows read-only access to `/user/teams`, listing all the user's groups as teams.
185185

186+
### Email scope verification
187+
188+
In authentik releases before 2025.10 the `email` scope set the `email_verified` claim to true. As we don't have a single source of whether a users' email is verified or not, and claiming that it is verified could lead to security implications, this claim now defaults to false.
189+
190+
To successfully authenticate users, some applications may require this claim to be true, in which case you can create a custom `email` scope mapping that always returns `email_verified` as true:
191+
192+
```python
193+
return {
194+
"email": request.user.email,
195+
"email_verified": True
196+
}
197+
```
198+
199+
For greater security, verify users' email addresses and store email verification status as a user attribute (e.g. `email_verified` (True/False)). Then create this scope mapping to return it dynamically:
200+
201+
```python
202+
return {
203+
"email": request.user.email,
204+
"email_verified": request.user.attributes.get("email_verified", False)
205+
}
206+
```
207+
186208
## Signing & Encryption
187209

188210
[JWTs](https://jwt.io/introduction) created by authentik will always be signed.

0 commit comments

Comments
 (0)