JanssenProject / JanssenProject/jans
feat(jans-auth-server): update end_session according to major changes in [RP-initiated logout spec] (introduced at 12 Sep )
@yuriyz is already working on this.
Since Sep 20, 2022.
- Dominant language
- Java
- Stars
- 648
- Forks
- 174
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 110
Description
-------------------
### Description
End Session implementation has to be revisited according to latest [RP-initiated logout spec](https://openid.net/specs/openid-connect-rpinitiated-1_0.html)
Outdated parameters:
- session_id
- sid
New parameters:
- logout_hint - OPTIONAL. Hint to the Authorization Server about the End-User that is logging out. The value and meaning of this parameter is left up to the OP's discretion. For instance, the value might contain an email address, phone number, username, or session identifier pertaining to the RP's session with the OP for the End-User. (This parameter is intended to be analogous to the login_hint parameter defined in Section 3.1.2.1 of [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-rpinitiated-1_0.html#OpenID.Core) [OpenID.Core] that is used in Authentication Requests; whereas, logout_hint is used in RP-Initiated Logout Requests.)
- client_id - OPTIONAL. OAuth 2.0 Client Identifier valid at the Authorization Server. When both client_id and id_token_hint are present, the OP MUST verify that the Client Identifier matches the one used when issuing the ID Token. The most common use case for this parameter is to specify the Client Identifier when post_logout_redirect_uri is used but id_token_hint is not. Another use is for symmetrically encrypted ID Tokens used as id_token_hint values that require the Client Identifier to be specified by other means, so that the ID Tokens can be decrypted by the OP.
UI requirements
- When an id_token_hint parameter is present, the OP MUST validate that it was the issuer of the ID Token. The OP SHOULD accept ID Tokens when the RP identified by the ID Token's aud claim and/or sid claim has a current session or had a recent session at the OP, even when the exp time has passed. If the ID Token's sid claim does not correspond to the RP's current session or a recent session at the OP, the OP SHOULD treat the logout request as suspect, and MAY decline to act upon it.
- At the Logout Endpoint, the OP SHOULD ask the End-User whether to log out of the OP as well. Furthermore, the OP MUST ask the End-User this question if an id_token_hint was not provided or if the supplied ID Token does not belong to the current OP session with the RP and/or currently logged in End-User. If the End-User says "yes", then the OP MUST log out the End-User.
-------------------
### Prepare
- [x] Read contribution guidelines
- [x] Read license information
-------------------
### Test cases and code coverage
- [ ] Write unit test to cover added/changed code
- [ ] Update integration tests to cover added/changed code
-------------------
### Document the changes
- [ ] task for updating user guides if needed
- [ ] task for updating installation and configuration guides if needed
- [ ] task for updating developer documentation if needed
- [ ] task for updating technical documentation if needed
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.