Connect2id server 6.16
Improved DevOps support
DevOps engineers will love the new Connect2id server release:
-
The server JWK set for signing the issued tokens and performing other cryptographic operations can now be passed via a Java system property, just like the rest of the configuration. This means that the server WAR package can be distributed and deployed onto Apache Tomcat without any secrets (keys, master API tokens, database credentials) included in it. These can be applied at startup time, from a script or a secure configuration vault.
-
The server can optionally load configuration properties from a local file, an Amazon S3 object or an Amazon DynamoDB table. The external properties location is specified by a URL like
https://s3-us-west-2.amazonaws.com/loh0uuji/c2id-config/6.16
. -
A new /config/check endpoint was added. It can be used as part of a DevOps pipeline, to perform quick online validation of a set of server configuration properties.
Token events and SETs
The new Connect2id server release also exposes two Java SPIs for installing listeners for ID and access token issue events.
The events can be passed to a message queue, time-series database or some other service to monitor sign-in activity and OAuth 2.0 authorisations in real time, for purposes such as security audit logging and usage metering.
The events can optionally be turned into Security Event Tokens (SET), to protect their integrity and cryptographically assert their origin.
Sample SET claims for an ID token issue event:
{
"iss" : "https://c2id.com",
"sub" : "alice@wonderland.net",
"iat" : 1458496404,
"jti" : "cuiqu8isaixo6Ien",
"aud" : [ "https://risk.c2id.com" ],
"events" : { "urn:com:c2id:op:id_token_issue": { "client_id" : "doh9Kool",
"acr" : "0",
"amr" : [ "pwd" ] } }
}
Updated login UI
The sample login page that comes with the Connect2id server is now more capable, thanks to a contribution from Para:
- The UI can also handle logout requests initiated by client applications.
- The session cookie is now set as HTTP-only to guard against XSS attacks.
Download
To download a ZIP package of Connect2id server 6.16:
https://c2id-downloads.s3.eu-central-1.amazonaws.com/server/6.16/Connect2id-server.zip
SHA-256: d2e38dee9acc71e83fc23c16ab047c25b00a4dd31686d565261bb7d3c77251df
As WAR package only:
https://c2id-downloads.s3.eu-central-1.amazonaws.com/server/6.16/c2id.war
SHA-256: 762c96b84d3423f4e93060ad6220912e263ccb3163a1bc46143bacf43d1375c5
Questions?
Get in touch with Connect2id support.
Release notes
6.16 (2017-12-08)
Configuration
-
The Connect2id server JWK set can be alternatively passed via a
jose.jwkSet
Java system property, overriding the content of/WEB-INF/jwkSet.json
. The JWK set can be passed in its standard JSON string format, or with additional BASE64URL encoding (to work around the need to escape special characters in the shell). -
Adds support for loading Java system properties at Connect2id server startup from a local file, an AWS S3 object or an AWS DynamoDB item. The properties location is specified by a URL passed via a
systemPropertiesURL
Java system property, for examplefile:////etc/c2id/server.properties
to retrieve them from a local file orhttp://s3-us-west-2.amazonaws.com/loh0uuji/ieg1koik
to retrieve them from an S3 object.The AWS credentials for accessing the S3 bucket or DynamoDB table must be configured in way that the default AWS credentials provider chain can look them up, ideally via IAM instance profile roles. See http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html
The loaded Java system properties can be used to override Connect2id server configuration properties found in the
/WEB-INF/*.properties
and/WEB-INF/*.xml
configuration files.
Web API
- /config/check – New endpoint for online validation of a Connect2id server
configuration property set, consisting of the combined properties specified
in
/WEB-INF/oidcProvider.properties
,/WEB-INF/sessionStore.properties
,/WEB-INF/authzStore.properties
and/WEB-INF/monitor.properties
. The properties are validated by a HTTP POST request to the endpoint. The endpoint is not protected by an access token. Upon successful validation a204 No Content
status code is returned, else a400 Bad Request
with a JSON object body with the name of the invalid property and additional information to aid debugging.
SPI
-
com.nimbusds.openid.connect.provider.spi.config.SystemPropertiesSource – Adds new optional SPI for loading system properties from alternative sources such as databases and cloud stores.
-
com.nimbusds.openid.connect.provider.spi.events.IDTokenIssueEventListener – Adds new SPI for listening to ID token issue events.
-
com.nimbusds.openid.connect.provider.spi.events.AccessTokenIssueEventListener – Adds new SPI for listening to access token issue events.
-
com.nimbusds.openid.connect.provider.spi.claims.AdvancedClaimsSource – Adds the OpenID Provider Issuer URI to the ClaimsRequestContext.
-
com.nimbusds.openid.connect.provider.spi.ServiceContext – Adds a new getJWTIssuer method to the service context interface. Intended for issuing JWTs created by SPI implementations, for example security events (SET).
Resolved Issues
-
Switches to shadowed AWS SDK dependency to prevent transient dependency conflicts with other packages. The issue was observed in AWS Elastic Beanstalk deployments (issue hosted-server/20).
-
Logs loading of monitor API servlets at Connect2id server startup (issue server/316).
-
Adds trace logging of first 16 characters of submitted bearer access token at the client registration endpoint for debugging purposes (issue server/337).
Dependency Changes
-
Adds com.nimbusds:c2id-server-property-source:1.0.1 dependency
-
Upgrades to com.nimbusds:c2id-server-sdk:3.16
-
Upgrades to com.nimbusds:nimbus-jwkset-loader:1.4
-
Upgrades to org.bouncycastle:bcprov-jdk15on:1.58
-
Upgrades to org.bouncycastle:bcpkix-jdk15on:1.58
-
Upgrades to com.nimbusds:oauth2-authz-store:5.22
-
Upgrades to com.nimbusds:oidc-session-store:5.2.14
-
Upgrades to com.nimbusds:common:com.nimbusds:2.18
-
Upgrades to com.nimbusds:infinispan-cachestore-dynamodb:1.5.3
-
Upgrades to com.nimbusds:jgroups-dynamodb-ping:1.2.2
-
Upgrades to com.amazonaws:aws-java-sdk-bundle:1.11.235