OAuth2 and OpenID Connect

Last modified by Thomas Mortagne on 2026/08/20 15:13

cogVarious tools to manipulate OAuth2 and OpenID Connect protocols in XWiki
TypeProject
Last version2.25.4
Developed by

Thomas Mortagne, Clément Aubin, Raphaël Jakse

LicenseGNU Lesser General Public License 2.1

Description

Various tools to manipulate the OAuth2 and OpenID Connect protocols in XWiki.

This project main focus is making XWiki support what is becoming the most standard identity protocol on Internet both as a provider for other applications and as a client of reference identity providers.

It also provides tools to manipulate bearer/OAuth2 tokens:

  • a token system to authenticate on the XWiki instance (which is independent of OAuth2/OIDC from protocol point of view, but reuse the same storage as the OIDC Provider in practice)
  • a way to store and use OAuth2 token coming from other services

OpenID Connect

From https://openid.net/connect/:

OpenID Connect 1.0 is a simple identity layer on top of the OAuth 2.0 protocol. It allows Clients to verify the identity of the End-User based on the authentication performed by an Authorization Server, as well as to obtain basic profile information about the End-User in an interoperable and REST-like manner.

OpenID Connect allows clients of all types, including Web-based, mobile, and JavaScript clients, to request and receive information about authenticated sessions and end-users. The specification suite is extensible, allowing participants to use optional features such as encryption of identity data, discovery of OpenID Providers, and session management, when it makes sense for them.

See http://openid.net/connect/faq/ for a set of answers to Frequently Asked Questions about OpenID Connect.

This project is relying on Nimbus OAuth 2.0 SDK with OpenID Connect extensions (which among other things offers parsers and processors for OpenID Connect request/responses in Java) for its implementation.

See also OpenID Connect Core Specifications 1.0 and this overview of the OpenID Connect Protocol:

The OpenID Connect protocol, in abstract, follows the following steps.

1. The RP (Client) sends a request to the OpenID Provider (OP).
2. The OP authenticates the End-User and obtains authorization.
3. The OP responds with an ID Token and usually an Access Token.
4. The RP can send a request with the Access Token to the UserInfo Endpoint.
5. The UserInfo Endpoint returns Claims about the End-User.

These steps are illustrated in the following diagram:

+--------+                                   +--------+
|        |                                   |        |
|        |---------(1) AuthN Request-------->|        |
|        |                                   |        |
|        |  +--------+                       |        |
|        |  |        |                       |        |
|        |  |  End-  |<--(2) AuthN & AuthZ-->|        |
|        |  |  User  |                       |        |
|   RP   |  |        |                       |   OP   |
|        |  +--------+                       |        |
|        |                                   |        |
|        |<--------(3) AuthN Response--------|        |
|        |                                   |        |
|        |---------(4) UserInfo Request----->|        |
|        |                                   |        |
|        |<--------(5) UserInfo Response-----|        |
|        |                                   |        |
+--------+                                   +--------+

Extensions

This project contains the following Extensions.

per page of Page
Warning
The environment prevents the table from loading data.
 
Page

Versions

Get Connected