Connect2id server 16.1
This Connect2id server release updates the web-based single sign-on (SSO), the management of tokens, the JWT claims codec for access tokens and the database connector for AWS DynamoDB.
Custom web SSO eligibility checks
Identity providers that wish to add custom conditions whether an authorisation request qualifies for SSO can do so via a new plugin interface (SPI). These can be executed after the Connect2id server has completed its own standard checks, the main being the presence of a web session for the user.
The ability to specify additional conditions for web SSO can solve cases that demand a class of client applications to always have the user authenticated when sign-in is requested, while keeping the original web session.
Revocation timestamps
The internal revocation
API can now
support use cases that require exact control over which tokens and
authorisations are to be revoked, based on their iat
(issued-at time). To
support this a new optional timestamp
parameter was added, expressing the
revocation time as Unix epoch seconds.
Example request to revoke any tokens and authorisations for user alice
issued
before the specified timestamp
:
POST /authz-store/rest/v3/revocation HTTP/1.1
Host: c2id.com
Authorization: Bearer ztucZS1ZyFKgh0tUEruUtiSTXhnexmd6
Content-Type: application/x-www-form-urlencoded
subject=alice×tamp=1729496043
Claim names compression in access JWT codecs
The Connect2id server utilises a highly efficient bit-field algorithm to compress the names of consented OpenID Connect claims in JWT-encoded access tokens. Up until now this compression could only be utilised when using the default (built-in) codec that ships with the server. Starting with this release, the codec SPI exposes a new TokenCodecContext.getClaimNamesCompressor method to enable a plugin to compress / decompress the claim names.
Example JSON array of claim names for release at the UserInfo endpoint:
"clm": [ "email", "email_verified", "name", "given_name", "family_name", "middle_name", "nickname", "preferred_username", "profile", "picture", "website", "gender", "birthdate", "zoneinfo", "updated_at", "locale" ]
Compressed into a single string:
clm": [ "!5v8H" ]
Deletion protection for DynamoDB tables
The database connector for AWS
DynamoDB was updated
and now includes a new optional dynamodb.enableDeletionProtection
configuration property which the Connect2id server will pick up at startup and
flag the tables for deletion
protection.
Tables with this flag cannot be deleted, unless the flag is first cleared,
via the DynamoDB console, API or CLI. This is intended to prevent accidental
deletion of the tables.
The connector update also fixes two issues that affected the
dynamodb.enableContBackups
configuration property.
Download 16.1
For the signature validation: Public GPG key
Standard Connect2id server edition
Apache Tomcat package with Connect2id server 16.1: Connect2id-server.zip
GPG signature: Connect2id-server.zip.asc
SHA-256: 5cc1d42e6e355fd4e22c4d41cd1c3e1245c4e0820d2faab4231bf4baddd2357a
Connect2id server 16.1 WAR package: c2id.war
GPG signature: c2id.war.asc
SHA-256: 4fd1661ad1d9893d8bd8aee1c40cde1e53f31774c4d8cb696eb64230579354cc
Multi-tenant edition
Apache Tomcat package with Connect2id server 16.1: Connect2id-server-mt.zip
GPG signature: Connect2id-server-mt.zip.asc
SHA-256: 2ea1b9a88265c4c92c17654556cbe70cce15b5c35156701ba521cc1701454d7a
Connect2id server 16.1 WAR package: c2id-mt.war
GPG signature: c2id-mt.war.asc
SHA-256: a609343977fc36e8520853d9608095b7bac9a21952bca96f1314ce1122395129
Questions?
For technical questions about this new release contact Connect2id support. To purchase a production license for the Connect2id server, renew or upgrade your support and updates subscription, email our sales.
Release notes
16.1 (2024-10-17)
Summary
-
New plugin interface for adding custom checks whether an OAuth 2.0 authorisation / OpenID authentication request is eligible for web single sign-on (SSO), after the Connect2id server has completed its own checks.
-
It is now possible to specify a timestamp when posting a revocation event to the revocation API of the Connect2id server. This is intended for use cases that require exact control over which tokens and authorisations are to be revoked, based on their
iat
(issued-at time). -
Connect2id server deployments with an AWS DynamoDB database can now enable deletion protection for the tables in the database configuration.
Configuration
-
/WEB-INF/oidcProvider.properties
- op.sso.disableForSelectedClients – Deprecated for removal, use the new
WebSSOEligibilityChecker
SPI instead.
- op.sso.disableForSelectedClients – Deprecated for removal, use the new
-
/WEB-INF/infinispan-*-dynamodb.xml
-
Upgrades the dynamodb schema to v3.0.
-
New
dynamodb.enableDeletionProtection
configuration property of type boolean (true
|false
). Iftrue
deletion protection will be enabled
for all DynamoDB tables. Iffalse
this configuration has no effect on
tables with already enabled deletion protection, so that their protection cannot be accidentally lifted by a change in the Connect2id server configuration. To lift the deletion protection for a table use the AWS console or another method.
-
Web API
-
/authz-sessions/rest/v3/
- Adds a
WebSSOEligibilityChecker
SPI for plug-in of additional custom checks whether an OAuth 2.0 authorisation / OpenID authentication request is eligible for web single sign-on (SSO), after the Connect2id server has completed its own checks.
- Adds a
-
/authz-store/rest/v3/
- The
revocation
resource receives a new optionaltimestamp
(revocation timestamp, as seconds since the Unix epoch) form parameter. When posting a new revocation for asubject
,client_id
oractor
this form parameter can be used to specify the time of the revocation event. The defaulttimestamp
value is the current time.
- The
-
/session-store/rest/v2/
- The
sessions
resource receives a new optionalctx
(session context) query parameter for requests to retrieve the sessions for a specifiedsubject
. Can be used to filter the returned sessions according to their context, for exampleweb
ordevice
.
- The
SPI
-
Upgrades the Connect2id server SDK to com.nimbusds:c2id-server-sdk:5.10
-
WebSSOEligibilityChecker – New SPI for plugging additional checks whether an OAuth 2.0 authorisation / OpenID authentication request is eligible for web single sign-on (SSO), after the Connect2id server has completed its own checks.
Prior to calling this SPI the Connect2id server ensures the following conditions are met for a request to be eligible for SSO:
-
A subject (end-user) session is present.
-
The subject session authentication lifetime (
auth_life
), if specified for the session, has not expired. -
If the request is an OpenID authentication request with a maximum authentication age (
max_age
) or an ACR level (acr_values
), that the subject session satisfies them. -
If a particular user identity is required (via an
id_token_hint
), that it matches session subject. -
The request doesn’t specify a prompt
login
,select_account
orcreate
. -
A Connect2id server configuration doesn’t trigger an authentication prompt.
If the OAuth 2.0 authorisation / OpenID authentication request is eligible for SSO the
isEligible
check method returnstrue
. Else the method returnsfalse
, to cause the Connect2id server to prompt the end-user for authentication. -
-
Updates the
SelfContainedAccessTokenClaimsCodec
SPI. TheTokenCodecContext
interface receives a newgetClaimNamesCompressor()
method that returns aClaimNamesCompressor
intended to reduce the size of the consented claims array in self-contained (JWT-encoded) access tokens. The exposedClaimNamesCompressor
has been used by the default SPI implementation included in the Connect2id server to compress the strings in theclm
(claim names) JSON array, by employing a highly efficient bitfield-based algorithms which uses the dictionary configured byclaimsCompression.properties
.
-
Resolved issues
-
Enabling DynamoDB continuous backups (point-in-time recovery, PITR) for a table may require the request to be retried due to a transient
ContinuousBackupsUnavailableException
with a message suggesting retrial. This DynamoDB behaviour is observed at times when enabling continuous backups after new table creation, despite the priorwaitForActive
call. The request will be retried 5 times, with a wait time increasing by 1 second (issue dynamodb/25). -
Fixes a bug to ensure DynamoDB continuous-backups (PITR) is applied to a table that was left in an incomplete PITR state after a
ContinuousBackupsUnavailableException
without retrial when DynamoDB reported enabled continuous backups and disabled PITR (issue dynamodb/25). -
Authorisation requests with an invalid
response_type
,max_age
ordisplay
parameter that include illegal characters according to RFC 6749, section 4.1.2.1, must produce aninvalid_request
error and not result in an HTTP 500 in the authorisation session web API (issues server/1027, oidc-sdk/482, oidc-sdk/483, oidc-sdk/484).
Dependency changes
-
Upgrades to com.nimbusds:c2id-server-sdk:5.10
-
Upgrades to com.nimbusds:oauth2-oidc-sdk:11.20.1
-
Updates to com.nimbusds:oauth2-authz-store:26.7
-
Updates to com.nimbusds:oidc-session-store:20.5
-
Updates to Infinispan 14.0.32.Final