Skip to content

Commit 5318c37

Browse files
Merge pull request #851 from DuendeSoftware/ka/prompts-documentation
Add OIDC Prompt documentation and deprecate silent login feature in Duende BFF.
2 parents 8f8abab + 3b1acf7 commit 5318c37

2 files changed

Lines changed: 60 additions & 0 deletions

File tree

src/content/docs/bff/fundamentals/session/management/silent-login.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ redirect_from:
1313
- /identityserver/v7/bff/session/management/silent-login/
1414
---
1515

16+
:::note
17+
Deprecated. See [OIDC Prompt support](/bff/fundamentals/session/oidc-prompts.md) instead.
18+
:::
19+
1620
**Added in v1.2.0.**
1721

1822
The */bff/silent-login* endpoint triggers authentication similarly to the login endpoint, but in a non-interactive way.
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: "OpenID Connect Prompts"
3+
description: "OpenID Connect prompt support in Duende BFF V4"
4+
date: 2024-06-11T08:22:12+02:00
5+
sidebar:
6+
label: "OIDC Prompts"
7+
order: 6
8+
badge:
9+
text: v4
10+
variant: tip
11+
---
12+
13+
OpenID Connect supports a `prompt` parameter that can be used to control the user experience as it relates to the current authentication session. Duende BFF v4 supports this parameter by forwarding it to the backing identity provider to allow for more fine-grained control during unique client interactions.
14+
15+
This documentation outlines the `prompt` parameter support and what values you might use to achieve different outcomes.
16+
17+
## Prompt parameter options
18+
19+
The [OpenID Connect specification](https://openid.net/specs/openid-connect-core-1_0.html) defines an **optional** `prompt` parameter that can be used to control the user experience as it relates to the current authentication session. The following values are supported:
20+
21+
| value | description |
22+
|------------------|---------------------------------------------------------------------------------------------------|
23+
| `none` | Must not display any authentication or consent user interface |
24+
| `login` | Should prompt the user to reauthenticate |
25+
| `consent` | Should prompt the user for consent |
26+
| `select_account` | Should prompt user to choose an account given their are multiple accounts for the current session |
27+
28+
These values can be passed to the BFF by adding them to the `prompt` query parameter to the login request URL. For example, the following request would prompt the user to reauthenticate:
29+
30+
```http
31+
/bff/login?prompt=login
32+
```
33+
34+
The inclusion of the `prompt` parameter in the login request URL will cause the BFF to forward it to the backing identity provider at which point the identity provider will determine the appropriate user experience based on the value of the `prompt` parameter. For example, if the `prompt` parameter is set to `login`, the identity provider will prompt the user to reauthenticate.
35+
36+
:::note
37+
Be aware that the exact behavior of the `prompt` parameter is not defined by the OpenID Connect specification and may vary between identity providers. Consult the documentation for your identity provider for more information.
38+
:::
39+
40+
## Scenarios and Situations
41+
42+
The `prompt` parameter can be used in situations where additional security is required, you want to reestablish the account identity, or a high-impact action is about to be taken. For example, the following hypothetical scenarios might require the use of the `prompt` parameter:
43+
44+
- Attempting to transfer funds from a bank account to another
45+
- A destructive action such as deleting an account
46+
- Performing an action that alters a high-value account setting such as an email address
47+
48+
## Silent Login Deprecation (v3 to v4)
49+
50+
When migrating from Duende BFF v3 to v4, you may notice deprecation warnings regarding the [silent login](/bff/fundamentals/session/management/silent-login.md) feature found at the user endpoint of `/silent-login`. You should discontinue use of the silent login feature and instead use the `prompt=none` parameter to achieve the same result.
51+
52+
53+
54+
55+
56+

0 commit comments

Comments
 (0)