Docs for Google Workspace OIDC (#3102)

This commit is contained in:
Hugo Baraúna 2025-11-28 16:27:04 -03:00 committed by GitHub
parent df6ec464e7
commit 1ccfa94951
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 81 additions and 9 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View file

@ -23,7 +23,7 @@ Before configuring OIDC groups authorization, ensure you have:
2. **Configured your OIDC identity provider** to include group information in the ID tokens: 2. **Configured your OIDC identity provider** to include group information in the ID tokens:
- **Okta**: [Customize tokens with a groups claim](https://developer.okta.com/docs/guides/customize-tokens-groups-claim/main/) - **Okta**: [Customize tokens with a groups claim](https://developer.okta.com/docs/guides/customize-tokens-groups-claim/main/)
- **Google Workspace**: Group-membersghip data is included by a mechanism that's specific to Google Workspace - **Google Workspace**: No additional configuration is required; just ensure you've already followed [these instructions](oidc_sso.html#1-oidc-configurations)
- **Others**: Search your identity provider's documentation for how to add a groups claim to the ID token - **Others**: Search your identity provider's documentation for how to add a groups claim to the ID token
## Configuration ## Configuration

View file

@ -2,10 +2,10 @@
Livebook Teams supports OpenID Connect (OIDC) Single Sign-On, allowing you to authenticate users through your existing Identity Provider (IdP) when they access your app servers and Livebook apps. Livebook Teams supports OpenID Connect (OIDC) Single Sign-On, allowing you to authenticate users through your existing Identity Provider (IdP) when they access your app servers and Livebook apps.
![](images/auth_via_teams.png) ![](images/auth_via_teams_oidc.png)
> #### Livebook version requirement {: .info} > #### Livebook version requirement {: .info}
> Requires Livebook v0.15 or newer. > Requires Livebook v0.18 or newer.
## Demo ## Demo
@ -13,17 +13,23 @@ Here's a quick demo of the feature working.
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/rG6OKethdJg?si=qofGf8M10F21IWd5" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/rG6OKethdJg?si=qofGf8M10F21IWd5" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
## Configuration ## 1. OIDC configurations
To integrate Livebook Teams with your OIDC SSO provider, follow these steps. To integrate Livebook Teams with your OIDC SSO provider, follow these steps.
### 1. Register with your OIDC Provider <!-- tabs-open -->
### OIDC IdPs
Follow these instructions if you're using Okta, Microsoft Entra, Keycloak or any other OIDC-compliant Identity Provider.
#### 1.1 Register with your OIDC provider
Go to your IdP admin, and register Livebook Teams as a Relying Party (client/app). This is the info youll need from Livebook Teams: Go to your IdP admin, and register Livebook Teams as a Relying Party (client/app). This is the info youll need from Livebook Teams:
- **Redirect URI**: The Livebook Teams sign-in callback URL that must be registered with your IdP: ` https://teams.livebook.dev/identity/callbacks/oidc` - **Redirect URI**: The Livebook Teams sign-in callback URL that must be registered with your IdP: ` https://teams.livebook.dev/identity/callbacks/oidc`
- **Post Logout Redirect URI**: The Livebook Teams URL that must be registered with your IdP to redirect users after logout: `https://teams.livebook.dev/identity/logout` - **Post Logout Redirect URI**: The Livebook Teams URL that must be registered with your IdP to redirect users after logout: `https://teams.livebook.dev/identity/logout`
- **Required OIDC scopes**: the OIDC scopes Livebook Teams requires: `openid`, `profile`, `email`, `offline_access` - **Required OIDC scopes**: The OIDC scopes Livebook Teams requires: `openid`, `profile`, `email`, `offline_access`
Once thats done, you should retrieve the following information from the registration process: Once thats done, you should retrieve the following information from the registration process:
@ -31,7 +37,7 @@ Once thats done, you should retrieve the following information from the regis
- **Client Secret**: A confidential key assigned to Livebook Teams by your IdP - **Client Secret**: A confidential key assigned to Livebook Teams by your IdP
- **Discovery URL**: This is the OIDC metadata URL provided by your IdP. Usual format: `https://YOUR_IDP/.well-known/openid-configuration` - **Discovery URL**: This is the OIDC metadata URL provided by your IdP. Usual format: `https://YOUR_IDP/.well-known/openid-configuration`
### 2. Configure OIDC in Livebook Teams #### 1.2 Configure OIDC in Livebook Teams
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/dNUcRD0A6kU?si=eNQ55-Aeg4I8PPgy" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/dNUcRD0A6kU?si=eNQ55-Aeg4I8PPgy" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
@ -45,13 +51,79 @@ Once thats done, you should retrieve the following information from the regis
- **Enable this SSO provider**: Make sure this option is enabled - **Enable this SSO provider**: Make sure this option is enabled
4. Save 4. Save
### 3. Configure your deployment group to authenticate via Livebook Teams ### Google Workspace
To configure OIDC SSO with Google Workspace, follow the steps below. You'll need a Google Workspace account with the super admin role.
#### 1.1 Enable Cloud Identity API
1. Go to the [Google Cloud Console](https://console.cloud.google.com/)
2. Select your project or create a new one if needed
3. Navigate to **APIs & Services** > **Library**
4. Search for **Cloud Identity**
5. Select **Cloud Identity** from the results
5. Click **Enable**
#### 1.2 Create service account
1. Navigate to **IAM & Admin** > **Service Accounts**
2. Click **Create Service Account**
3. Configure the service account:
- **Service account name**: `livebook-teams` (or your preferred name)
- **Service account description**: Service account for Livebook Teams to access Google Workspace groups
4. Click **Create and Continue**
5. Skip the optional steps by clicking **Continue** and then **Done**
#### 1.3 Get the unique ID of the service account
1. In the **Service Accounts** list, click on the service account you just created
2. In the **Details** tab, locate the **Unique ID** under the service account details
3. Copy this **Unique ID** (you'll need it in the next step)
#### 1.4 Create a JSON key for the service account
1. While still on your service account page, go to the **Keys** tab
2. Click **Add Key** > **Create new key**
3. Select **JSON** as the key type
4. Click **Create**
5. The JSON key file will be downloaded automatically (save it securely)
#### 1.5 Enable domain-wide delegation
1. Go to your [Google Workspace Admin Console](https://admin.google.com/) (requires super administrator access)
2. Navigate to **Main menu** > **Security** > **Access and data control** > **API controls**
3. In the **Domain wide delegation** section, click **Manage Domain Wide Delegation**
4. Click **Add new**
5. Configure the delegation:
- **Client ID**: Paste the unique ID from step 1.3
- **OAuth scopes**: Enter the following scope (this grants read-only access to group information): `https://www.googleapis.com/auth/cloud-identity.groups.readonly`
6. Click **Authorize**
#### 1.6 Configure Google Workspace OIDC in Livebook Teams
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/dNUcRD0A6kU?si=eNQ55-Aeg4I8PPgy" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
1. Log in to Livebook Teams
2. Go to the **Authentication** panel (requires "admin" role in the organization)
3. Click **Add OIDC SSO** and provide the following details:
- **Name**: A display name for your OIDC provider (e.g., Google Workspace)
- **Discovery URL**: `https://accounts.google.com/.well-known/openid-configuration`
- **Admin E-mail**: Email address of a Super Admin user of your Google Workspace (e.g., `admin@yourcompany.com`). This user will be impersonated by the
service account to read group memberships, but access is limited to the scopes authorized in step 1.5.
- **Allowed domains**: Your Google Workspace domain(s), one per line if multiple (e.g., `yourcompany.com`)
- **Service Account JSON Key**: Paste the entire contents of the JSON key file from step 1.4
- **Enable this SSO provider**: Make sure this option is enabled
4. Save
<!-- tabs-close -->
### 2. Configure your deployment group to authenticate via Livebook Teams
To enable OIDC authentication, your deployment group must be configured to use authentication via Livebook Teams. To enable OIDC authentication, your deployment group must be configured to use authentication via Livebook Teams.
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/27GImleM3MQ?si=jlsa7cGvIgnM4xmN" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/27GImleM3MQ?si=jlsa7cGvIgnM4xmN" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
In order to do so, follow these steps: To do so, follow these steps:
1. Log in to Livebook Teams 1. Log in to Livebook Teams
2. Navigate to the **Deployments** panel 2. Navigate to the **Deployments** panel