Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Auth Server / Sessions -- edits / corrections #3453

Merged
merged 4 commits into from
Dec 29, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/admin/auth-server/session-management/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ is where the user can end their own session. See [OpenID Logout](../logout/READM

To end another person's session, Jans Auth Server has a [Session Revocation Endpoint](../endpoints/session-revocation.md) (`/revoke_session`).

## Session Event Interception Script
## Session Event Interception Scripts

It is possible to add custom business logic as Jans Auth Server detects
session events, see:
Expand Down
5 changes: 3 additions & 2 deletions docs/admin/auth-server/session-management/idp-v-rp.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@ This makes sense, because the RP only redirects to the IDP for authentication
if it cannot find its own local cookie. If a user has a session with many
RP's, achieving simultaneous logout across all sites is a challenge--something
which your business leaders may not appreciate. While OpenID proposes several
solutions to logout, none are idea. Fundamentally, logout is an asynchronous
solutions to logout, none are ideal. Fundamentally, logout is an asynchronous
challenge. A given RP may be disconnected from the network. Thus logout
messages sent to RP's that are not received must be replayed. The
[IETF Sec Events Workgroup](https://datatracker.ietf.org/doc/charter-ietf-secevent/01/) has been working on standards to handle logout (and other asynchronous
requirements). But adoption of this architecture is not common.

Another challenge of RP sessions is that they may have a different timeout
for inactivity. See [Planning Guide Timeout Management](../../planning/timeout-management.md) for more details.
for inactivity. See the Janssen Planning Guide page on
[Timeout Management](../../planning/timeout-management.md) for more details.
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,28 @@ tags:

## Select Account

A person may have several accounts in a single Jans Auth Server instance. For
example, you may have several diffent Gmail ids. An RP can enable a person
to choose their account by sending an [OpenID Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest) with the
parameter `prompt=select_account`.
A person may have several accounts on a single Jans Auth Server instance. For
example, it is common to have several Gmail accounts. Jans Auth Server uses two
cookies to track which accounts are associated with a browser: `session_id` and
`current_sessions`.

For example, following an initial authentication, the session cookie on a person's browser would contain the following data:
Below is an example or a person with two authenticated sessions:

```
session_id: de510ab6-b06c-4393-86d8-12a7c501aafe
current_sessions: ["de510ab6-b06c-4393-86d8-12a7c501aafe"]
current_sessions: ["de510ab6-b06c-4393-86d8-12a7c501aafe", "c691e83d-eb1b-41f0-b453-fab905681b5b"]
```

Continuing this example, if an RP sent an additional Authentication Request with `prompt=select_account`, Auth Server may return a page enabling the person
to select their account, or even to login as a different account. Once authenticated as a different user, the `current_sessions` cookie would reference
all the current sessions, like this:
An RP trigger Auth Server's built in Account Chooser feature by sending an
[OpenID Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest) with the parameter `prompt=select_account`. In
this case, Auth Server renders the default page:
`/opt/jans/jetty/jans-auth/custom/pages/selectAccount.xhtml`

This page iterates `current_sessions` and enables the person
to login as a different account, for example:

![Sample Select Account login page screenshot](../../assets/auth_server_sessions_selectAccount.png)

You can override this page if you place a `selectAccount.xhtml` in
`custom/pages`.

```
session_id: c691e83d-eb1b-41f0-b453-fab905681b5b
current_sessions: ["de510ab6-b06c-4393-86d8-12a7c501aafe", "c691e83d-eb1b-41f0-b453-fab905681b5b"]
```
12 changes: 1 addition & 11 deletions docs/admin/auth-server/tokens/openid-id-token.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,4 @@ tags:
- token
---

## This content is in progress

The Janssen Project documentation is currently in development. Topic pages are being created in order of broadest relevance, and this page is coming in the near future.

## Have questions in the meantime?

While this documentation is in progress, you can ask questions through [GitHub Discussions](https://github.com/JanssenProject/jans/discussion) or the [community chat on Gitter](https://gitter.im/JanssenProject/Lobby). Any questions you have will help determine what information our documentation should cover.

## Want to contribute?

If you have content you'd like to contribute to this page in the meantime, you can get started with our [Contribution guide](https://docs.jans.io/head/CONTRIBUTING/).
## OpenID Connect `id_token`
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.