• Documentation
  • Tutorials
  • Blogs
  • Product

What's on this Page

  • Ldap setup (optional)
  • Open id connect setup (optional)
    • Debug OpenId errors
  • Step
  • Set up Step
  • Configuration
  • Identity management
Categories: CONFIGURATION
This article references one of our previous releases, click here to go to our latest version instead.

Identity management

Ldap setup (optional)

You can use LDAP to authenticate to Step by uncommenting the following properties is step.properties:

# Authenticator configuration - example for LDAP
ui.authenticator=step.core.access.LdapAuthenticator
# url of your LDAP server
ui.authenticator.ldap.url=<url>
# root named context for searching for users
ui.authenticator.ldap.base=dc=<>,dc=<>
# search filter - {user} will be replaced with the username
ui.authenticator.ldap.filter=(cn={user})
# user used for connecting to the LDAP server
ui.authenticator.ldap.techuser=cn=<>,dc=<>,dc=<>
ui.authenticator.ldap.techpwd=<PWD>
# Use following flag to manage users from LDAP (authenticated user will be created automatically in Step)
#ui.authenticator.as.user.manager=true
# Define which default role is used to create users
ui.authenticator.user.creation.default.role=guest

LDAP authentication with Step user management (ui.authenticator.as.user.manager=false)

  • You should create a Step’s user existing in your ldap before configuring your ldap connection as only the users registered in Step will be able to connect

LDAP authentication with LDAP user management (ui.authenticator.as.user.manager=true)

  • User will be automatically created in Step if they can authenticate with LDAP. They are created with the default role configured (e.g. ui.authenticator.user.creation.default.role=guest)
  • You will need to have at least one user with the admin role to be able to manage roles and project memberships of other users within Step

Open id connect setup (optional)

You can integrate with your OpenId Connect Identity Provider by adding following configuration to your step.properties. Depending on the configuration used, you may delegate the user and role management to the Identity Provider

Note: make sure the below properties are not set elsewhere

# The following is used by different plugins (oidc, notification, alm, etc) to define the URL under which the controller is reachable
controller.url=http://localhost:8080

# Authenticator configuration - example for OIDC
ui.authenticator=step.core.access.OidcAuthenticator
# Use following flag to manage users from OIDC (authenticated user will be created automatically in Step)
ui.authenticator.as.user.manager=true
# Define which default role is used to create users (when ui.authenticator.as.role.manager=false)
ui.authenticator.user.creation.default.role=guest
# Define the json path to extract the username for the JWT token (default preferred_username)
# authenticator.jwt.oidc.user-claim-name=preferred_username
# Define the source to extract the user name, one of access_token, id_token, userinfo (default access_token)
# authenticator.jwt.oidc.user-claim-name.source=id_token

# Use following flag to manage roles from OIDC (extracted role will be assigned to the user in Step)
ui.authenticator.as.role.manager=true
# Define the source to extract the role, one of access_token, id_token, userinfo (default access_token)
# authenticator.jwt.oidc.roles.source=access_token
# List of json path to extract the role and map them to Step's roles
authenticator.jwt.oidc.roles.jsonpath.admin=$.resource_access.step-local.roles[?(@ =~ /admin/)]
authenticator.jwt.oidc.roles.jsonpath.developer=$.resource_access.step-local.roles[?(@ =~ /developer/)]
authenticator.jwt.oidc.roles.jsonpath.tester=$.resource_access.step-local.roles[?(@ =~ /tester/)]
authenticator.jwt.oidc.roles.jsonpath.guest=$.resource_access.step-local.roles[?(@ =~ /guest/)]
# Ordering (priority of roles) is required in case the user was assigned multiple Step roles in IDM.
# From left to right: lowest to the highest priority (roles not defined in this list have the lower priority)
authenticator.jwt.oidc.roles.order=guest,tester,developer,admin

# Open Id Connect configurations
authenticator.oidc.client_id=<your-client-id>
authenticator.oidc.client_secret=<your-client-secret>
# Define your Oidc issuer path, the well-known endpoint must be available at <your-issuer-path>/.well-known/openid-configuration
authenticator.oidc.issuer=<your-issuer-path>
# Define the length of the state query parameter (default 12, 0 to not send this parameter)
#authenticator.oidc.state.length=12

authenticator.oidc.scope=openid email profile
# turn off if you don't want or cannot validate the audience during the access token validation (default true)
authenticator.jwt.oidc.audience.check=true
authenticator.jwt.oidc.audience=<audience-name>
# turn off if you don't want or cannot validate the issuer provided in the JWT tokens (for instance if the one in id_token is different from the specified one in authenticator.oidc.issuer)
#authenticator.jwt.oidc.issuer.check=false  

OIDC authentication with Step user management (ui.authenticator.as.user.manager=false)

  • You should create a Step’s user existing in your Identity Provider before configuring your OIDC connection as only the users already registered in Step will be able to connect

OIDC authentication with OIDC user management (ui.authenticator.as.user.manager=true)

  • User will be automatically created in Step if they can authenticate with OIDC.
  • If you keep the role management withing Step (ui.authenticator.as.role.manager=false):
    • Users are created with the default role configured (e.g. ui.authenticator.user.creation.default.role=guest)
    • You will need to have at least one user with the admin role to be able to manage roles
  • If roles are configured in our OIDC Identity Provider, you should still make sure you have at least one admin users to manage project memberships within Step

Debug OpenId errors

While no detailed error message will be returned to the client for security reason, system administrator may enable following debug logs (including received JWT tokens):

<logger name="step.core.access" level="debug" />

See how to change the log verbosity

  • Home
  • Whats new?
  • Set up
    • Requirements
    • Download
    • Installation
    • Configuration
      • Important settings
      • Logging
      • Identity management
      • Licensing settings
      • SSL settings
      • Time Series Configuration
      • Customization
      • Encryption Manager
      • Agent configuration
      • Agent provisioning configuration
  • Administration
  • SaaS guide
  • User guide
  • Developer guide
  • DevOps
  • Plugins
  • Libraries
Step Logo
    • Documentation
    • Tutorials
    • Blogs
    • Product
    • Home
    • Whats new?
    • Set up
      • Requirements
      • Download
      • Installation
      • Configuration
        • Important settings
        • Logging
        • Identity management
        • Licensing settings
        • SSL settings
        • Time Series Configuration
        • Customization
        • Encryption Manager
        • Agent configuration
        • Agent provisioning configuration
    • Administration
    • SaaS guide
    • User guide
    • Developer guide
    • DevOps
    • Plugins
    • Libraries