Console Initial Setup
Prerequisites
- Access to Keycloak Master Realm
- SSO has been setup for:
SSO setup for tools that are disabled is not required.
Keycloak
Create Keycloak Client
- In the
smoothglue
realm, click onClients
underManage
in the left pane. - Click
Create client
. - Ensure the
Client type
isOpenId Connect
. - Enter a unique client name (e.g.,
console
) forClient ID
. - Click on the
Next
button. - Leave
Client authentication
toggled off, and ensureDirect access grants
is unchecked. - Click on the
Next
button. - Set
Valid Redirect URIs
tohttps://console.${DOMAIN}/api/auth/callback/keycloak
. - Set
Valid post logout redirect URIs
tohttps://console.${DOMAIN}
. - Click on the
Save
button. - In the
Settings
tab and in theCapability config
section, ensureStandard flow
is enabled. - In the
Advanced
tab and in theOpenID Connect Compatibility Modes
section, ensureUse refresh tokens
isOn
. - Click
Save
at the bottom of the screen.
Configure Dedicated Mapper
- Go to the
console
client and click on theClient scopes
tab. - Click on the
console-dedicated
client scope. - Click
Configure a new mapper
. - Select
User Attribute
. - Enter
tools
forName
,User Attribute
andToken Claim Name
. - Set
Claim JSON Type
toString
. - Ensure
Add to ID token
isOFF
. - Ensure
Add to access token
andAdd to userinfo
isON
. - Ensure
Multivalued
andAggregate attribute values
isON
. - Click
Save
.
Configure _structsureAdmins
Group
Console assigns SmoothGlue admins configured in Console to the _structsureAdmins
group in Keycloak. It is important that this group has the realm-admin
role mapping so that admins can manage users in Keycloak via Console:
- In the
smoothglue
realm, clickGroups
in the left-hand panel. - Select
_structsureAdmins
. - Go to
Role mapping
tab. - Click
Assign role
. - Ensure the drop-down filter in the top left is set to
Filter by clients
. - Search for and enable the
realm-admin
role. - Click
Assign
.
Create Initial Admin User
Console needs an initial Keycloak user with the realm-admin
role in order to be able to fully initialize. This initial Keycloak user will be able to create other users and admin users with Keycloak. This user will also be used to setup access keys and permissions within tools Console supports integrations for.:
- In the
smoothglue
realm, clickUsers
in the left-hand panel. - Click
Add user
. - Fill in following information for the initial user:
- Email verified: Enabled.
- Username:
console-initial-admin
. - Email:
console-initial-admin@<your-domain>.com
- First name:
Console
- Last name:
SmoothGlue
- Groups:
_structsureAdmins
- Click
Create
.
Set a password for the console-initial-admin
user:
- From the
smoothglue
realm, go toUsers
>console-initial-admin
. - Go to the
Credentials
tab. - Click
Set password
. - Enter a password.
- Disable
Temporary
.
It is recommended to remove the password for this user once the initial setup is complete for Console.
Configure Console for Keycloak
Console uses the permissions of the logged-in user to interact with Keycloak. As such, a client secret is not required. However, Console will need be configured with a client ID.
If Keycloak is using non-publically trusted or self-signed certificates, Console will need to be configured with additional CAs in order for Console to talk to Keycloak.
Add the following to bigbang-values.yaml
:
packages:
console:
values:
keycloak:
host: keycloak.<DOMAIN>
envs:
# Keycloak Client ID configured above
KEYCLOAK_ID: console
extraCACerts: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Configure Console Integrations
Console has integrations with the following tools for managing users and access to resources:
- GitLab
- Mattermost
- Jira
- Confluence
If Console is to be deployed without one or more of these tools, Console needs to be configured to disable the integration. The following shows example bigbang-values.yaml
that could be used to disable any of the integrations:
packages:
console:
values:
mattermost:
enable: false
gitlab:
enable: false
confluence:
enable: false
jira:
enable: false
Failing to disable unused integrations can lead to initialization failures.
GitLab
Users are dynamically created upon login to GitLab, so the System Integrator needs to login to GitLab as the console-initial-admin
user in order to create the user within GitLab.
After logging in as console-initial-admin
logout of GitLab and log in as the default admin user for GitLab.
Assign admin privileges to the console-initial-admin
user:
- Go to the admin panel by clicking
Admin
near the bottom-left of the screen or by going tohttps://{{GitLab_Hostname}}/admin
. - Go to
Users
. - Click
Edit
for theconsole-initial-admin
user. - Change
Access level
toAdministrator
- Click
Save changes
.
Create Personal Access Token
:
- Impersonate or log in as the
console-initial-admin
user. - Click the user icon in the top-left corner, and select
Preferences
. - Click
Access Tokens
on the left-hand panel. - Click a
Add a new token
:- Name:
console-admin-integration
. - Remove the expiration date.
- Scopes:
api
andadmin_mode
. - Click
Create personal access token
.
- Name:
- Save the value for the token.
To configure Console to use the access token, the following config should be placed into the bigbang-secrets.yaml
:
packages:
console:
values:
gitlab:
accessToken: '<Personal Access Token Value>'
host: 'gitlab.<DOMAIN>'
Jira/Confluence
Users are dynamically created upon login to Jira, so the System Integrator needs to login to Jira as the console-initial-admin
before proceeding.
Assign admin privileges to console-initial-admin
user:
- Log in to Jira with an admin-level account.
- Click on the Settings gear icon in the top-right corner.
- Click
User management
. - Edit user groups for
console-initial-admin
by clicking the kebab icon (3 vertical dots) to add the following groups: a.jira-administrators
b.confluence-users
c.confluence-administrators
Create Jira Personal Access Token
:
- Log into Jira as the
console-initial-admin
user. - Click the user icon in the top right corner, and go to
Profile
. - Click
Personal Access Tokens
in the left-hand panel. - Click
Create token
:- Token name:
console-admin-integration
. - Disable
Automatic expiry
.
- Token name:
- Click
Create
. - Save token value.
Create Confluence Personal Access Token
:
- Log into Confluence as the
console-initial-admin
user. - Click the user icon in the top right corner, and go to
Settings
. - Click
Personal Access Tokens
in the left-hand panel. - Click
Create token
:- Token name:
console-admin-integration
. - Disable
Automatic expiry
.
- Token name:
- Click
Create
. - Save token value.
To configure Console to use the access tokens, the following config should be placed into the bigbang-secrets.yaml
:
packages:
console:
values:
jira:
host: 'jira.<DOMAIN>'
accessToken: '<Jira Access Token Value>'
confluence:
host: 'confluence.<DOMAIN>'
accessToken: '<Confluence Access Token Value>'
envs:
JIRA_USERNAME: 'console-initial-admin'
Mattermost
Enable Personal Access Tokens for Admins:
- Login to Mattermost with an admin-level account
- Click the 9 dot symbol in the top-left (left of the Mattermost logo).
- Click
System Console
. - Click
Integration Management
in the left-hand panel. - Enable Personal Access Tokens:
True
- Click
Save
. - Leave
System Console
by clickingBack to <team name>
.
Create Personal Access Token
- Login to Mattermost with an admin-level account
- Click profile icon in the top-right.
- Click
Profile
. - Click
Security
. - Click
Edit
forPersonal Access Tokens
. - Click
Create Token
:- Token Description:
console-admin-integration
. - Click
Yes, Create
.
- Token Description:
- Save
Access Token
value.
packages:
console:
values:
mattermost:
host: 'chat.<DOMAIN>'
accessToken: 'Access Token Value'
Initialize Console
After a fresh installation of SmoothGlue Console, the application needs to perform some initialization of its database. This initialization needs to be triggered by a Keycloak user within the smoothglue
realm and the user needs to have realm-management roles/permissions in Keycloak. Assuming the steps above have been followed for Creating the Initial Admin User, the console-initial-admin
should be used for the following steps:
- Visit the
{console-url}/api/initialize
endpoint in a browser to initialize the database with the necessary tools. - Visit
{console-url}
in a browser and log in as theconsole-initial-admin
user. - Visit
{console-url}/api/initialize
again. This time, you will be established properly in SmoothGlue Console as a SmoothGlue Admin. - Restart the smoothglue console processes.
The first user to complete these initialization steps will become the default admin within SmoothGlue Console.
More information on Console capabilities can be found in the Console User Manual.
More information on available configuration options and technical descriptions of Console actions can be found in the Console Technical Manual.