Yes, Cloud CMS supports SSO (Single Sign On) with a variety of authentication providers. Many of these providers are offered out-of-the-box -- including providers for Keycloak, Google, CAS and more. In addition, we allow you to implement your own SSO providers and customize the authentication handshake.
To learn more about how Cloud CMS authentication providers work, check out the following documentation:
Custom Authenticators and Providers
You may want to integrate to an authentication provider that is not offered out of the box. Cloud CMS allows you to plug in a custom SSO authenticator (via a provider chain that runs in Node.js) to achieve this. This provider chain interprets headers coming from the outside world and automatically creates users, synchronizes user profile information and authenticates the request to user accounts inside of Cloud CMS.
Cloud CMS offers a Node-based Application Server that is Apache 2.0 licensed and freely available for extension. You can build your custom adapter and provider classes and plug them in to achieve a custom authentication handshake.
Suppose, for example, that you wanted to integrate to Amazon Cognito. One way to achieve this would be to take advantage of the Node Passport module and its corresponding Passport Cognito module, offered here:
With your custom code in place, the request comes from the outside world and hits the app server. The app server consists a custom header (or other request attribute) and uses that to connect to your back end provider (in this case, Cognito).
The user is asserted against this back end -- validating and loading user profile information along the way. Once the user's identity trust is asserted, the user profile is sync'd to Cloud CMS to create their account (if it doesn't exist) and authenticate them. The request then proceeds as per usual.
Most of this is provided out-of-the-box with our Node middle tier. You simply need to write a clss to implement a provider and, possibly, an adapter if the request needs to be parsed in some unusual manner.