Skip to content

Commit 11a4228

Browse files
authored
Merge branch 'main' into mb/fix
2 parents 23a7480 + 0748008 commit 11a4228

5 files changed

Lines changed: 19 additions & 12 deletions

File tree

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,7 @@ pnpm-debug.log*
2323
.vscode/settings.json
2424
*.iml
2525

26+
# Agents and assistants
2627
.opencode/
27-
opencode.json
28+
opencode.json
29+
.idea/**/copilot.data.migration.*.xml

src/content/docs/identityserver/aspnet-identity/schemes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ IdentityServer always uses the `"idsrv.external"` scheme here, available in the
6262
IdentityServer session management requires a separate cookie to monitor the session state without sending the large authentication cookie.
6363
The [User Session Service](/identityserver/reference/services/user-session-service.md) manages this cookie.
6464

65-
- **Default Name:** `"idsrv.session"` (Constant: `IdentityServerConstants.DefaultCheckSessionCookieName`). This often remains consistent, but verify your specific configuration.
65+
- **Default Name:** `"idsrv.session"` (Constant: `IdentityServerConstants.DefaultCheckSessionCookieName`).
6666

6767
Note this cookie is not marked as `HttpOnly`, so it can be accessed in client-side code. The JavaScript code that is required to check user sessions in the background also requires access to this cookie, and needs it to be `HttpOnly`.
6868

src/content/docs/identityserver/ui/logout/external-notification.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,13 @@ clients that the user has signed out.
2020
This notification usually comes in the form of a request in an `<iframe>` from the external identity provider's "logged
2121
out" page.
2222
IdentityServer must then notify all of its clients (as discussed [here](/identityserver/ui/logout)), also typically in the form of a
23-
request in an `<iframe>` from within the external identity provider's `<iframe>`.
23+
request in an `<iframe>` (i.e. via Front-Channel Logout) from within the external identity provider's `<iframe>`.
24+
25+
:::note
26+
To configure federated sign-out from an external identity provider, please refer to the documentation for your specific
27+
external identity provider. When using an OpenID Connect identity provider, this is typically configured using the
28+
front-channel logout URI.
29+
:::
2430

2531
What makes federated sign-out a special case (when compared to a normal [logout](/identityserver/ui/logout)) is that the federated
2632
sign-out request is not to the normal sign-out endpoint in IdentityServer.
@@ -36,7 +42,7 @@ federated sign-out.
3642

3743
Fortunately IdentityServer already contains this code.
3844
When requests come into IdentityServer and invoke the handlers for external authentication providers, IdentityServer
39-
detects if these are federated signout requests and if they are it will automatically render the same `<iframe>`
45+
detects if these are federated sign-out requests and if they are it will automatically render the same `<iframe>`
4046
as [described here for logout](/identityserver/ui/logout).
4147

42-
In short, federated signout is automatically supported.
48+
In short, federated sign-out is automatically supported.

src/content/docs/identityserver/ui/server-side-sessions/inactivity-timeout.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,12 @@ These invocations can be used as the signal to the server-side session managemen
3737
In addition to refresh tokens, any client activity using an access token that originated from the user's session could also be used to extend the user's server-side session at IdentityServer.
3838
This would only work if IdentityServer were aware of this activity, but userinfo and introspection endpoint requests are examples of those types of activity.
3939

40-
Internally IdentityServer provides a `ISessionCoordinationService` which is invoked from the endpoints describes above.
41-
Its purpose is to then extend the lifetime of the server-side session.
40+
Internally IdentityServer provides a `ISessionCoordinationService` which is invoked from the endpoints describes above.
41+
Its purpose is to then extend the lifetime of the server-side session.
4242
Below is a picture of the various types of requests to do this:
4343

4444
![diagram demonstrating how to extend a session using IdentityServer](images/extending_session.svg)
4545

46-
4746
### User Inactivity Detection and Session Termination
4847

4948
When the user becomes inactive, the server-side session management system at IdentityServer can detect and remove the abandoned session.
@@ -58,7 +57,6 @@ The obvious signal would be if the refresh token request failed, then that would
5857

5958
Given this understanding, client applications can participate in this convention and IdentityServer can coordinate to achieve this system-wide "inactivity timeout" requirement.
6059

61-
6260
## Configuration
6361

6462
Configuration is needed in both IdentityServer and client applications.
@@ -71,7 +69,6 @@ To prepare IdentityServer, these features need to be enabled:
7169
2. Either the global [`CoordinateClientLifetimesWithUserSession` option](/identityserver/reference/options.md#authentication) should be enabled, or the client-specific [`CoordinateLifetimeWithUserSession` option](/identityserver/reference/models/client.md#authentication--session-management) should be enabled.
7270
3. Enable back-channel logout for [session expiration](/identityserver/ui/server-side-sessions/session-expiration.mdx) with the [`ExpiredSessionsTriggerBackchannelLogout` option](/identityserver/reference/options.md#server-side-sessions).
7371

74-
7572
### Client Applications
7673

7774
Depending on what protocol features the client is using, different approaches will need to be taken.
@@ -83,6 +80,7 @@ As the client uses the refresh token at IdentityServer, the user's session expir
8380
Be sure to configure the access token lifetime to be less than the server-side session lifetime at IdentityServer.
8481

8582
To detect inactivity:
83+
8684
* Either handle refresh token request failure, and consider the session ended.
8785
* Or implement back-channel logout.
8886

@@ -91,7 +89,8 @@ To detect inactivity:
9189
It's possible a client is using a [reference access token](/identityserver/tokens/reference.md) and no refresh token.
9290
The API would then use introspection to validate the token, which would then extend the associated user's session at IdentityServer.
9391

94-
To detect inactivity:
92+
To detect inactivity:
93+
9594
* Either handle 401 errors from the API, and then consider the session ended.
9695
* Or implement back-channel logout.
9796

src/data/banner.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"content": "<strong>Livestream:</strong> Why now's a good time to upgrade to .NET 10 and Duende IdentityServer 7. <a href=\"https://duendesoftware.com/webinars/why-upgrade-dotnet-10-and-identityserver\">Register Now!</a>"
2+
"content": "<strong>Livestream:</strong> Why now's a good time to upgrade to Duende IdentityServer and .NET 10. <a href=\"https://duendesoftware.com/webinars/why-upgrade-dotnet-10-and-identityserver\">Register Now!</a>"
33
}

0 commit comments

Comments
 (0)