Managing user access to Workbench

Overview

This page explains, at a high level, how key concepts work together to allow users to access a Posit Workbench session.

Key concepts

Concept Purpose
Authentication Verify user identity
User provisioning Create system accounts automatically or manually
PAM sessions Set up server-side environment

How user access works

Workbench needs to do three things before a user can start an IDE session:

  1. Authenticate the user
  2. Map the user to a system account
  3. Set up the user’s Linux session

A diagram of how Workbench grants users access to a session with the key concepts described on this page.


Choosing an authentication method

Where possible, Posit recommends using OIDC with Workbench to enable the most features (for example, integration with Azure and AWS Managed Credentials).

Workbench supports the following authentication methods:

Your situation Recommended method
Organization uses Microsoft Entra ID, Okta, or another OIDC provider OIDC
Organization uses SAML SSO SAML
Authentication handled by a reverse proxy (Shibboleth, SPNEGO/Kerberos SSO) Proxied authentication
Users have LDAP or Active Directory accounts PAM authentication via pam_sss (or pam_ldap on older systems)
Users have local accounts on the server PAM authentication via pam_unix
Users authenticate via Kerberos PAM authentication via pam_sss (or pam_krb5 on older systems)
Client-server protocols (RADIUS, smart cards) Supported through PAM modules

Choosing a provisioning method

Every authenticated user must correspond to a Linux account on the server, either local or networked. These accounts can be provisioned through several methods:

Method When to use Supports groups? Setup
SCIM Using Okta, Microsoft Entra ID, or another IdP for full user and group sync Yes, synced from the IdP IdP sends account and group data to Workbench via SCIM API. See Configuration for user provisioning.
Just-in-Time (JIT) provisioning Recommended for most SSO deployments: simple, automatic account creation on first sign-in Yes, synced from your IdP at sign-in Enable: user-provisioning-register-on-first-login=1. See Just-in-Time Provisioning.
LDAP / Active Directory (SSSD) Existing on-premises directory service Yes, from the directory SSSD connects to LDAP/AD; PAM creates accounts on first sign-in via pam_mkhomedir. See Provisioning with sssd.
Manual account creation Small deployments or strict IT control over accounts Local groups only IT admins manually create accounts with useradd before users sign in (for example: sudo useradd -m username).
Important

SCIM provisioning requires HTTPS with a CA-signed certificate. Self-signed certificates are not supported. You can configure SSL directly on Workbench or terminate TLS at a reverse proxy in front of it.

Linux session management with PAM

While PAM sessions are technically optional, Posit recommends enabling them for most deployments. Even when PAM is not used for authentication (for example, when using OIDC or SAML instead), PAM sessions handle critical server-side setup tasks for IDE sessions. These tasks include setting environment variables and resource limits, creating home directories, and acquiring Kerberos tickets (optional).

The majority of organizations rely on PAM sessions for automatic home directory creation. Without PAM sessions, home directories must be provisioned through another method before users can successfully launch sessions. You can safely omit PAM sessions only when home directories are guaranteed to already exist.

Important

PAM sessions are disabled by default.

  • Enable PAM sessions by setting auth-pam-sessions-enabled=1 in /etc/rstudio/rserver.conf.
  • For full details and guidance, see PAM Sessions & Kerberos.
Your situation PAM sessions needed?
Dynamic account provisioning (LDAP/SSSD, JIT, SCIM) Yes. pam_mkhomedir (or pam_oddjob_mkhomedir on RHEL) creates home directories on first sign-in.
Filesystem-bound features in IDE sessions: Kerberos tickets, encrypted or remote mounts Yes. Enable with password forwarding; modules run per session.
All user accounts and home directories pre-provisioned manually No. There is no first-time sign-in to set up.
Workbench running in single-user mode without root privileges No. Must be disabled; PAM sessions require root to open and close.
Note

For SCIM and JIT provisioning, Workbench installs a Name Service Switch (NSS) module at install time. This module allows the Linux OS to look up users and groups stored in the Workbench database, making provisioned users visible to PAM and other system tools. With AD/LDAP, the NSS module from SSSD is used instead.

Back to top