Here's a video showing how SSO based on Keycloak can be used.
server:
  type: pixilab_server
  auth:
    urlResolver: null
    ajaxRequestResolver: null
    callbackUrl: http://[BLOCKS-IP-OR-DOMAIN]/rest/auth/callback
    rolesOwner: claims
    rolesPath: realm_access.roles
    clients:
      - org.pac4j.oidc.client.OidcClient:
          configuration:
            discoveryURI: https://[KEYCLOAK-IP]/realms/[REALM-NAME]/.well-known/openid-configuration
            clientId: [CLIENT-ID]
            secret: [CLIENT-SECRET]
            clientAuthenticationMethod: client_secret_basic
            scope: openid profile
    servlet:
      security:
        - matchers: internalMatcher
          clients: OidcClient
          authorizers: isAuthenticated
If the roles you've added to Keycloak does not match the roles used by blocks, or if you have set up roles on Keycloak already and would like to re-use them, you can add role mapping to the Blocks configuration file. You do this by defining a server.auth.rolesMapping parameter where the keys are the roles of your Keycloak configuration and the values the roles Blocks know about. For example:
rolesMapping: KeycloakAdmin: Admin KeycloakManager: Manager KeycloakCreator: Creator KeycloakEditor: Editor KeycloakContributor: Contributor KeycloakStaff: Staff