Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Privileged Session Manager (PSM) is an application cluster used to access, record, and monitor privileged sessions. It can be hosted as a Docker Swarm on local or cloud service locations. It launches when users with Login Session Access to a managed computer check out the credentials for that computer. You can configure PSM to record session activity, allowing Access Managers and other administrators to view what users do on the computer during a session.
This topic walks you through the process of setting up PSM. To completely set up PSM, you need to do the following:
Install Docker and Docker-Compose on a Linux server. The Linux server is the PSM server.
Create an OAuth application for PSM in EmpowerID.
Configure EmpowerID System Settings for PSM.
Generate a X509 certificate for the PSM OAuth application and upload it to the local machine and EmpowerID certificate stores.
Create a service account (EmpowerID Person) for PSM and map the certificate to that service account.
Use OpenSSL to extract the private and public key from the certificate.
Create Docker secrets on the PSM server.
Copy the psm.yml file you receive from EmpowerID to the root directory of the Linux server.
Initiate Docker swarm mode on the Linux server.
Pull the PSM Docker images from Dockerhub.
Deploy the stack.
Note |
---|
To comply with European Union GDPR (General Data Protection Regulation) that was implemented on May 25, 2018, you must do one of two things:
|
Info |
---|
To set up PSM, you must have a good understanding of containerization technologies and their advantages, the Docker Command Line and Docker Container Management System. If you are not familiar with Docker, the following resources may be helpful: What is Docker? What is Docker Hub? What is Docker swarm? In addition to understanding Docker, you must have access to the below PSM Docker images:
OpenSSL OpenSSL is needed to extract the KEY from the certificate you will generate and map the Service Account used for PSM. If you do not have OpenSSL installed, you can do so by following the instructions provided here: |
PSM Server Installation Instructions
PSM Server requires a Linux instance (Amazon AMI/Ubuntu preferred). Follow the below instructions to install Docker and Docker-Compose on the server.
Ubuntu — Run the following commands one after the other:
Code Block language text sudo apt-get remove docker docker-engine docker.io containerd runc curl =fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-get add - sudo apt-get update sudo apt-get install -y docker-ce sudo systemctl status docker
Amazon AMI — If you are running Linux on Amazon AMI, please follow the instructions provided by Amazon at the following link: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html#install_docker
EmpowerID Server Setup Instructions
In order to implement PSM for your environment, there are a number of tasks you must complete on your EmpowerID server. These include:
Creating an OAuth Application for PSM
Configuring EmpowerID System Settings for PSM
Generating a self-signed X509 certificate for PSM
Creating a PSM service account (EmpowerID Person)
Mapping the PSM certificate to PSM service account
Step 1 – Create an OAuth Application for PSM
On the navbar, expand Apps and Authentication and click Applications.
From the Actions pane, click Create OAuth Application.
Image Modified
Image Modified
This opens the OAuth Provider Application Details form.In the OAuth Application Details section of the form, do the following:
Fill in the Name, Display Name, and Description fields with values that reflect the purpose of the application.
Select Web Application from the Application Type drop-down.
Search for and select an owner for the application from the Application Owner drop-down. By default, the creator of the application is selected as the owner.
In the JWT Details section of the form, do the following:
Leave the Issuer as EmpowerID
Select the certificate used to sign assertions in your environment from the Signing Certificate drop-down.
Click Save.
Image Modified
After EmpowerID creates the OAuth Provider application, your browser should be directed to the View One page for it.
Step 2 – Add the Callback URLs to the app
On the View One page for the application, expand the Callback URLs accordion and click the Add button.
Image ModifiedEnter the FQDN of your EmpowerID server in the Callback URL field, formatted as
https://yourserver/ui
, and then click Save.Click the Add button again and add a second callback URL, formatted as
Image Modifiedhttps://yourserver/WebIdPForms/OAuth/v2
.
Step 3 – Add a client secret to the app
OnExpand the Client Secrets accordion on the View One page for the application
and click the Add button.
Image ModifiedIn the General dialog that appears, do the following:
Name – Name of the secret
Expires – Select one of the below options:
I year
2 years
Never
Client Secret – Copy and save this value as you will use it when creating Docker secrets later in this article.
Image ModifiedInsert excerpt IL:Callouts IL:Callouts name ClientSecret nopanel true
Save the secret.
On the View One page for the application, copy the values for the Client ID, API Key and OAuthProviderApplicationID. You will use these when creating Docker secrets later in this topic.
Image Modified
Step 4 – Configure EmpowerID System Settings for PSM
On the navbar, expandExpand Infrastructure Admin > EmpowerID Servers and Settings
on the navbar and select EmpowerID System Settings.
On the EmpowerID System Settings page, search for psm.
Image ModifiedFor each setting relevant to your implementation of PSM, click the Edit button and specify the value for your environment.
Image ModifiedThe table below
shows the EmpowerID Systems Settings for PSM.
Insert excerpt IL:PSM Settings Table IL:PSM Settings Table nopanel true
Step 5 – Generate a self-signed certificate for PSM
On the navbar, expandExpand Apps and
Authentication> SSO Connectionson the navbar and select SSO Components.
Select the Certificates tab and then click the Add button in the grid header.
Image ModifiedSelect Generate Self-Signed Certificate and enter the following information:
Certificate Owner – Search for and select an EmpowerID Person
Prefer Local Machine Store – Select this option
Subject Name – Enter something suitable to the purpose of the certificate, such as CN=PSM_Certificate
Requires Password – Select this option
Certificate Password – Enter a password for the certificate
Click Save to create the certificate.
Image Modified
Step 6 – Create the PSM Service Account
On the navbar, expand Identity Administration and click People.
Click the Create Person Simple Mode action link.
Image ModifiedIn the Create Person Request form that appears, do the following:
Enter a First Name and Last Name for the Person account. As a best practice, the name should reflect the purpose of the Person account.
Click the Select a Role and Location link.
Search for and select the desired Business Role from the Business Role tree.
Click the Location - link and then search for and select the desired location from the Location tree.
Click Select to select the Business Role and Location.
Click Save to save the new Person account.
Image Modified
Image Modified
After EmpowerID creates the Person object, your browser should be directed to the View Page for the person.
Next, map the PSM certificate to the Person as outlined below.
Step 7 – Map the PSM Certificate
OnExpand the Roles, Accounts, and Login Security accordion on the View page for the Person you just created
.
Click the Edit link in the Mapped Login Certificates pane.
Image ModifiedSearch for and select the PSM certificate you generated earlier and then click Save.
Extract the Key from the PFX File
To extract the private key, run the below OpenSSL command:
Code Block openssl pkcs12 -in <filename>.pfx -nocerts -nodes -out key.pem
To extract the certificate (public key), run the OpenSSL command:
Code Block openssl pkcs12 -in <filename>.pfx -nokeys -out cert.pem
Create Docker Secrets and Keys on the PSM Server
You will need to create the following secrets and keys:
Secrets
Description
PSM_EID_OAUTH_CLIENT_SECRET
The OAuth Client Secret of the OAuth application used to authenticate the PSM Uploader application
PSM_EID_OAUTH_CLIENT_ID
The OAuth Client ID of the OAuth application used to authenticate the PSM Uploader application
PSM_EID_OAUTH_API_KEY
The OAuth API Key of the OAuth application used to authenticate the PSM Uploader application
PSM_EID_SRV_ACCT_CERT_THMB
The Thumbprint of the certificate attached to the service user(Uploader Service account) for PSM in EmpowerID
PSM_EID_OAUTH_JWT_PFX
The Pfx of the certificate attached to the service user(Uploader Service account) for PSM in EmpowerID
PSM_EID_OAUTH_JWT_KEY
The JWT Key used to sign the payload with (Uploader)
PSM_EID_OAUTH_JWT_KEY_PASSPHRASE
Passphrase to the JWT Key used to sign the request payload with (Uploader)
PSM_SSL_PUB_CERT
PSM Application server SSL certificate (Public Cert)
PSM_SSL_PRIV_PEM
PSM Application server SSL certificate (Private Key)
PSM_SSL_PRIV_PEM_PW
PSM Application server SSL Private Key password
PSM_DAEMON_SERVER_CRYPTKEY
PSM Application – Daemon communication Cryptkey (needs to be the same as the PSM_GUAC_SERVER_CRYPTKEY)
PSM_GUAC_SERVER_CRYPTKEY
PSM Application – Daemon communication Cryptkey (needs to be the same as the PSM_ DAEMON_SERVER_CRYPTKEY)
PSM_AWS_ACCESS_KEY_ID
AWS Access Key ID for S3 recording storage
Step 8 – Create a computer object for the PSM Server
In order to include your PSM server as a PSM Gateway option when configuring computers for PSM, you need to create a computer object for it in EmpowerID and add it to the Computers for RDP account store. This account store is internal to EmpowerID and is used for managing non-inventoried computers. EmpowerID adds all computers located in this directory to the list of available PSM Gateways.
On the navbar, expand Privileged Access and select PAM Workflows.
Click Create Computer and Credential.
Image AddedThis opens the Onboard Computer wizard workflow.
Image AddedEnter the following information in the Computer Form section of the workflow:
DNS Host Name – DNS of the computer
Display Name – Display name of the computer
Description – Description of the computer
Publish in IAM Shop – Select this option if you want users to be able to request access to the computer in the IAM Shop; Not recommended for PSM Gateway
Computing Platform – Select one of the available options or leave the default setting of Unknown
Operating System Type – OS of the computer
Computer Type – Type of computer, such as Windows Workstation
Private Address – Private IP address of the computer
Public Address – Public IP address of the computer
Click Next to progress to the Select Creation Location configuration step.
In the Creation Location Selection lookup that appears, search for and select Computers for RDP.
Image AddedClick Submit to progress to the Access Request Settings configuration step.
Under Owners and Policies, configure the following settings:
Access Request Policy – Select the Access Request policy appropriate for the credential. For computers, the following policies are pertinent. Each is linked to the Owner Approval Approval Flow policy, which means the owner of the computer must approve access requests.
Default Access Request Policy – Select this option when creating a computer without vaulting credentials for it in EmpowerID
Computer Creds - Allow Multi-Check-Out - No Password Reset – Select this policy when creating a computer and simultaneously vaulting credentials that initiate an RDP or SSH session where more than one session (credential check out) is allowed and you do not want EmpowerID to reset the password for the account when a user checks in the credentials. This policy is configured with the Owner Approval Approval Flow policy.
Computer Creds - No Multi-Check-Out - Password Reset – Select this policy when creating a computer and simultaneously vaulting credentials that initiate an RDP or SSH session where more than one session is not allowed, and you do want EmpowerID to reset the password for the account when the user checks in the credentials.
MFA - Computer Creds - Allow Multi- Check-Out - No Password Reset – Select this policy when creating a computer and simultaneously vaulting credentials that initiate an RDP or SSH session where multi-factor authentication is required, more than one session (credential check out) is allowed, and you do want EmpowerID to reset the password for the account when the user checks in the credentials.
Responsible Party – Search for and select the person responsible for the computer.
Computer Owners – Search for and select one or more persons as owners of the computer and then click Add.
Computer Deputies – Search for and select one or more persons as deputy owners of the computer and then click Add.
Under Configure Eligibility, optionally add any eligible users for the computer as needed. Users must have a form of eligibility to request access to the computer in the IAM Shop. If you are not publishing the computer to the IAM shop, you can skip this and proceed to the next step.
Click Next to progress to the Select Gateway (Optional) configuration.
Optionally, search for and select the gateway computer used for PSM sessions and click Next to progress to the Select Credentials (optional) setting. If this setting is not applicable, simply click Next.
Optionally, search for and select the vaulted credentials for the computer and click Next to create the computer. If this setting is not applicable, simply click Next.
Extract the Key from the PFX File
To extract the private key, run the below OpenSSL command:
Code Block openssl pkcs12 -in <filename>.pfx -nocerts -nodes -out key.pem
To extract the certificate (public key), run the OpenSSL command:
Code Block openssl pkcs12 -in <filename>.pfx -nokeys -out cert.pem
Create Docker Secrets and Keys on the PSM Server
You will need to create the following secrets and keys:
Secrets | Description |
---|---|
PSM_EID_OAUTH_CLIENT_SECRET | The OAuth Client Secret of the OAuth application used to authenticate the PSM Uploader application |
PSM_EID_OAUTH_CLIENT_ID | The OAuth Client ID of the OAuth application used to authenticate the PSM Uploader application |
PSM_EID_OAUTH_API_KEY | The OAuth API Key of the OAuth application used to authenticate the PSM Uploader application |
PSM_EID_SRV_ACCT_CERT_THMB | The Thumbprint of the certificate attached to the service user(Uploader Service account) for PSM in EmpowerID |
PSM_EID_OAUTH_JWT_PFX | The Pfx of the certificate attached to the service user(Uploader Service account) for PSM in EmpowerID |
PSM_EID_OAUTH_JWT_KEY | The JWT Key used to sign the payload with (Uploader) |
PSM_EID_OAUTH_JWT_KEY_PASSPHRASE | Passphrase to the JWT Key used to sign the request payload with (Uploader) |
PSM_SSL_PUB_CERT | PSM Application server SSL certificate (Public Cert) |
PSM_SSL_PRIV_PEM | PSM Application server SSL certificate (Private Key) |
PSM_SSL_PRIV_PEM_PW | PSM Application server SSL Private Key password |
PSM_DAEMON_SERVER_CRYPTKEY | PSM Application – Daemon communication Cryptkey (needs to be the same as the PSM_GUAC_SERVER_CRYPTKEY) |
PSM_GUAC_SERVER_CRYPTKEY | PSM Application – Daemon communication Cryptkey (needs to be the same as the PSM_ DAEMON_SERVER_CRYPTKEY) |
PSM_AWS_ACCESS_KEY_ID | AWS Access Key ID for S3 recording storage |
PSM_AWS_ACCESS_KEY_SECRET | AWS Access Key Secret for S3 recording storage |
PSM_AZURE_STORAGE_ACCOUNT | Azure Storage account name for recording storage |
PSM_AZURE_STORAGE_ACCESS_KEY | Azure Storage account access key for recording storage |
PSM_AZURE_CONTAINER_NAME | Azure container name where recordings are stored |
REMOTE_UNC_USERNAME | Remote UNC location (Shared Folder) Credential Username (For local UNC storage of session recordings) |
REMOTE_UNC_DOMAIN | Remote UNC location (Shared Folder) Credential Domain |
REMOTE_UNC_PASSWORD | Remote UNC location (Shared Folder) Credential Password |
Keys | Default Value | Description | ||
---|---|---|---|---|
PSM_UPLOADER_SERVICE_URL | https://uploader.{your eid dns name}.co | The URL to the uploader service | ||
PSM_EID_OAUTH_GRANT_TYPE | urn:ietf:param s:oauth:granttype:jwtbearer | The OAuth Grant Type used to authenticate the uploader with EID. Do not change the value | ||
PSM_EID_OAUTH_CALLBACK_URL | https/ | The EmpowerID Server URL | ||
PSM_UPLOAD_TYPE | AZURE | The cloud storage service option (AZURE/AWS)PSM_EID_SERVER_AUTHENTICATION) | ||
PSM_EID_SERVER_AUTHENTICATION_URL | https://{dns_of_your_empowerid_server}/oauth/v2 /token | Temporary local storage for recordings on the Application Server | ||
PSM_STORAGE_SHARE_LOCATION | /recording | |||
OAUTH_AUTHENTICATION_SERVICE_URL | https://{dns_of_your_empowerid_server}/oauth/v2 /token | Temporary local storage for recordings on the Application Server | PSM_STORAGEuserinfo | |
FAILURE_RETRIES_INTERVAL | 5000 | Retry interval for a failed session recording upload (milliseconds) | ||
FAILURE_RETRIES_COUNT | 5 | Number of retries for a failed session recording upload | ||
PSM_DAEMON_SERVER_PORT | 4822 | Daemon port | ||
REMOTE_UNC_SHARE_LOCATION | /{IP}/recording | OAUTH_AUTHENTICATION_SERVICE_URL | https://{dns_of_your_empowerid_server}/oauth/v2 /userinfo | |
FAILURE_RETRIES_INTERVAL | 5000 | Retry interval for a failed session recording upload (milliseconds) | ||
FAILURE_RETRIES_COUNT | 5 | Number of retries for a failed session recording upload | ||
PSM_DAEMON_SERVER_PORT | 4822 | Daemon port | ||
REMOTE_UNC_SHARE_LOCATION | /{IP}/recording | Shared folder location for remote UNC Storage | ||
REMOTE_UNC_PORT | 445 | Remote UNC port number to the shared folder location | ||
PSM_UNC_SHARE_LOCATION | /recording | Temporary local storage on the Uploader service container | PSM_AZURE_CONTAINER_NAME | Azure Storage container name | PSM_AWS_REGION | AWS region | PSM_AWS_BUCKET_NAME | AWS storage bucket name |
title | How to create a Docker secret |
---|
The below examples demonstrate how to create Docker secrets for each of the types used by PSM.
Shared folder location for remote UNC Storage | ||
REMOTE_UNC_PORT | 445 | Remote UNC port number to the shared folder location |
PSM_UNC_SHARE_LOCATION | /recording | Temporary local storage on the Uploader service container |
PSM_AZURE_CONTAINER_NAME | Azure Storage container name | |
PSM_AWS_REGION | AWS region | |
PSM_AWS_BUCKET_NAME | AWS storage bucket name |
Expand | |||
---|---|---|---|
| |||
The below examples demonstrate how to create Docker secrets for each of the types used by PSM.
|
Edit the Docker Stack YAML File
Copy the psm.yml file you received from EmpowerID to the root directory of the Linux server.
Edit the values as needed for your implementation.
Save the psm.yml file.
Deploy the Docker Stack
Initiate swarm mode by running
docker swarm init
.Pull the PSM Docker images from Docker Hub using the account EmpowerID support provisioned for you.
Run the following command to deploy the stack:
Code Block docker stack deploy --with-registry-auth -c psm.yml psm
Verify the Docker containers are running by using the command
docker ps
.
import | https://docs.empowerid.com/new_docs.css |
---|
|
Edit the Docker Stack YAML File
Copy the psm.yml file you received from EmpowerID to the root directory of the Linux server.
Edit the values as needed for your implementation.
Save the psm.yml file.
Deploy the Docker Stack
Initiate swarm mode by running
docker swarm init
.Pull the PSM Docker images from Docker Hub using the account EmpowerID support provisioned for you.
Run the following command to deploy the stack:
Code Block docker stack deploy --with-registry-auth -c psm.yml psm
Verify the Docker containers are running by using the command
docker ps
.
Macrosuite divider macro | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Computer and Service Management
Checking Out Credentials and Initiating an RDP Session
Div | ||||||
---|---|---|---|---|---|---|
| ||||||
IN THIS ARTICLE
|