Smallstep supports Identity Provider (IdP)-initiated Single Sign-On (SSO). This feature allows authorized employees to access the Smallstep dashboard in a moderated fashion, as an alternative to creating credentials in smallstep.
To set up access to the dashboard using SSO you will need to:
- Configure an OAUTH client in your identity provider (IDP) and add a group of users to that client.
- Add the name, email, and admin type in the Dashboard Admins panel under the Settings menu in the Smallstep dashboard.
The email in the token provided by the IDP will be matched to the email in the Dashboard Admins list to authenticate access.
While we do our best to ensure that configuration instructions between Smallstep and third-party apps are up-to-date, the instructions may have changed. If you find any errors or changes to these instructions, feel free to let us know.
Identity Provider Instructions
The following instructions cover Google Workspace (G Suite), OKTA, and Azure AD (AZAD)
Google Workspace (G Suite)
STEP 1. CREATE AN OAUTH CLIENT ID
Configure the OAuth Consent Screen
- In the Google Cloud Console, visit Configure the OAuth Consent Screen
- Choose User Type: Internal
- Create
- Now give your application a name, like Smallstep SSO
- Update the support email address, if needed
- Save
STEP 2. CREATE AN OAUTH Credential
- Visit Create an OAuth Credential
- Choose Application type: Web Application
- Name it Smallstep SSO
- Add an Authorized redirect URI https://api.smallstep.com/auth/openid/callback
- Create
- Copy the Value of Your Client ID and Your Client Secret and save them.
STEP 3. ENTER YOUR OIDC SETTINGS INTO THE SMALLSTEP SSO UI
- Open a new browser tab and log in at https://smallstep.com/app/[TEAM-NAME]/settings
- In the Dashboard SSO page click “GET STARTED”
- Select G SUITE as your OpenId provider and enter the client id and client secret.
- enter the following string for the configuration endpoint https://accounts.google.com/.well-known/openid-configuration
- Click CREATE
STEP 4. Add SSO dashboard users to the SMALLSTEP UI
Dashboard admins need to be added to both the OpendId app and to the smallstep dashboard.
- Open a new browser tab or login to https://smallstep.com/app/[TEAM-NAME]/settings/admins/add
- Enter the user's information and click CREATE
Open a new browser tab or login to https://smallstep.com/app/[TEAM-NAME]/settings/admins/add
Azure AD (AZAD)
STEP 1. CREATE AN OAUTH OIDC App
- Create an App Registration
- Give your app a name like Smallstep SSO
- Under Supported account types select Accounts in this organizational directory only
- Click Register
- Now go back to your browser and go to App Registrations. and select the app you just created note the Application (client) ID and Directory (tenant) ID
- Add a redirect URI, select Authentication from the left-hand navigation
- Under Platform Configurations click Add a Platform
- Select Web Application
- Add a redirect URI ****https://api.smallstep.com/auth/openid/callback
- Select ID tokens (used for implicit and hybrid flows)
- Configure
- Add a Client Secret, select Certificates & Secrets from the left-hand navigation
- Click New Client Secret and give it a name like Smallstep SSO and expiration
- Add
- Save the Client Secret, Application (client) ID, and Directory (tenant) ID from step 6.
STEP 2. ENTER YOUR OIDC SETTINGS INTO THE SMALLSTEP SSO UI
- Open a new browser tab and log in at https://smallstep.com/app/[TEAM-NAME]/settings
- In the Dashboard SSO page click “GET STARTED”
- Select Azure as your OpenId provider and enter the client id and client secret.
- For the configuration endpoint, enter the following string replacing {tenant} with your applications Directory (tenant) ID: https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid-configuration
- Click CREATE
STEP 3. Add SSO dashboard users to the SMALLSTEP UI
Dashboard admins need to be added to both the OpendId app and the smallstep dashboard.
- Open a new browser tab or login to https://smallstep.com/app/[TEAM-NAME]/settings/admins/add
- Enter the user's information and click CREATE
Okta
STEP 1. CREATE OKTA OIDC APPLICATION (Instructions verified on 1/25/2023)
- Start at your Okta admin dashboard (access via Admin button next to + Add Apps after successful login)
- Go to Applications → Create App Integration
- In the pop up select OIDC - OpenID Connect as the sign-in method and specify Web Application for the Application type.
- Give it a name like smallstep-sso
- Under Sign-in redirect URIs, replace the default localhost with: https://api.smallstep.com/auth/openid/callback
- Under Assignments, select "Skip group assignment for now."
- Click save to continue to the next steps
- Go to the General tab → Note the Client Id and Client Secret.
- Click edit next to the General Settings section
- Under Grant Type select the Implicit (hybrid) radio button.
- Select the Allow ID Token with implicit grant type radio button.
- Save changes
STEP 2. Assign Users
- At the top of the Page, select the Assignments tab.
- Select the blue Assign button → Assign People to add the users you want to have access to the Smallstep dashboard
- Go Back to the top of the page, select the General tab, and note the client id and secret for the next step.
STEP 3. ENTER YOUR OIDC SETTINGS INTO THE SMALLSTEP SSO UI
- Open a new browser tab and log in at https://smallstep.com/app/[TEAM-NAME]/settings
- In the Dashboard SSO page click “GET STARTED”
- Select Okta as your OpenId provider and enter the client id and client secret.
- For the Configuration Endpoint, enter the following string replacing {your Okta domain} with your existing OKTA domain: https://{your Okta domain}/.well-known/openid-configuration
- Click CREATE
STEP 4. Add SSO dashboard users to the SMALLSTEP UI
Dashboard admins need to be added to both the OIDC app and to the smallstep dashboard.
- Open a new browser tab or log in to https://smallstep.com/app/[TEAM-NAME]/settings and click the "+ ADD ADMIN" button at the top of the settings page.
- Enter the user's information and click CREATE