mirror of
https://github.com/clearml/clearml-docs
synced 2025-01-31 14:37:18 +00:00
Add identity provider settings (#745)
This commit is contained in:
parent
e636e07785
commit
db231f50fb
BIN
docs/img/settings_sso_provider_test.png
Normal file
BIN
docs/img/settings_sso_provider_test.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
@ -19,6 +19,7 @@ The Settings page consists of the following sections:
|
|||||||
vaults to apply ClearML client settings to all members of the user groups
|
vaults to apply ClearML client settings to all members of the user groups
|
||||||
* [Users & Groups](#users--groups) - Manage the users that have access to a workspace
|
* [Users & Groups](#users--groups) - Manage the users that have access to a workspace
|
||||||
* [Access Rules](#access-rules) (ClearML Enterprise Server) - Manage per-resource access privileges
|
* [Access Rules](#access-rules) (ClearML Enterprise Server) - Manage per-resource access privileges
|
||||||
|
* [Identity Providers](#identity-providers) (ClearML Enterprise Server) - Manage server identity providers
|
||||||
* [Usage & Billing](#usage--billing) (ClearML Hosted Service) - View current usage information and billing details
|
* [Usage & Billing](#usage--billing) (ClearML Hosted Service) - View current usage information and billing details
|
||||||
|
|
||||||
## Profile
|
## Profile
|
||||||
@ -340,6 +341,147 @@ The access rules table can be filtered by resource type and by target resource a
|
|||||||
* **To filter by target resource or users / groups**, click <img src="/docs/latest/icons/ico-filter-off.svg" alt="Filter" className="icon size-md" />
|
* **To filter by target resource or users / groups**, click <img src="/docs/latest/icons/ico-filter-off.svg" alt="Filter" className="icon size-md" />
|
||||||
on the respective column and select the users / groups to view from the list that appears.
|
on the respective column and select the users / groups to view from the list that appears.
|
||||||
|
|
||||||
|
## Identity Providers
|
||||||
|
|
||||||
|
:::important Enterprise Feature
|
||||||
|
This feature is available under the ClearML Enterprise plan
|
||||||
|
:::
|
||||||
|
|
||||||
|
Administrators can connect identity service providers to the server. Once an identity provider connection is configured and enabled,
|
||||||
|
the option appears in your server login page.
|
||||||
|
|
||||||
|
**To create a new connection**:
|
||||||
|
1. Click **+ New Connection**
|
||||||
|
2. In the **New Provider Connection** modal, select a protocol (OIDC or SAML) and a provider
|
||||||
|
* OIDC providers:
|
||||||
|
* Auth0
|
||||||
|
* AWS Cognito
|
||||||
|
* Google
|
||||||
|
* Keycloak
|
||||||
|
* Microsoft AD
|
||||||
|
* Microsoft Azure
|
||||||
|
* Okta
|
||||||
|
* Ping
|
||||||
|
* Custom
|
||||||
|
* SAML providers
|
||||||
|
* Duo
|
||||||
|
* Google
|
||||||
|
* Jumpcloud
|
||||||
|
* Microsoft AD
|
||||||
|
* Custom
|
||||||
|
3. Click **Next**
|
||||||
|
4. Provide the **Provider Connection Configuration**:
|
||||||
|
|
||||||
|
<Collapsible title="OIDC Providers" type="configuration">
|
||||||
|
|
||||||
|
* ClearML WebApp URL - The external URL for the ClearML WebApp. Used to construct the Callback URL used by the
|
||||||
|
identity provider
|
||||||
|
* Callback URL - Copy the field's content into the `Callback URL` field in your provider's ClearML App / integration
|
||||||
|
(sometimes the field is called `Redirect URL`). Used by the identity provider to redirect the session back to the ClearML
|
||||||
|
Server.
|
||||||
|
* Display name - Unique name to be used in the ClearML Login screen. Make sure no two
|
||||||
|
connections have the same name.
|
||||||
|
* Client ID - The Client ID of your identity provider's ClearML App. Copy this value from your identity provider's
|
||||||
|
ClearML App settings
|
||||||
|
* Client Secret - The client secret generated by your identity provider for the ClearML App. Copy this value from your identity
|
||||||
|
provider's ClearML App settings
|
||||||
|
* Authorization Endpoint - Used to authorize each user login. Copy this value from your identity provider's ClearML App settings
|
||||||
|
* Access Token Endpoint - Used to obtain an access token as part of the login process. Copy this value from your
|
||||||
|
identity provider's ClearML App settings
|
||||||
|
* Revocation Endpoint - Used to revoke an access token. Copy this value from your identity provider's
|
||||||
|
ClearML App settings
|
||||||
|
* Obtain user information from Identity Token - Select to retrieve user information from the identity token generated
|
||||||
|
by the provider. If not selected, provide a **User Info Endpoint** which is used to obtain additional user information
|
||||||
|
as part of the login process. Copy this value from your identity provider's ClearML App settings
|
||||||
|
* Email verification - Only allow signup/login to users with a verified email address. If selected, make sure that
|
||||||
|
your identity provider returns an `email_verified` claim in generated tokens.
|
||||||
|
* Create new users on first login - Select to automatically create a ClearML user for new users logging in using
|
||||||
|
this connection. If not selected,
|
||||||
|
only existing ClearML users or users who were invited using their email address can log in using this connection.
|
||||||
|
* Verify token signature - Select to verify
|
||||||
|
signatures for tokens returned by the identity provider. This requires the `JWKS URI` to be configured. Make sure your
|
||||||
|
identity provider's ClearML App is set up to sign tokens.
|
||||||
|
* Additional Settings
|
||||||
|
* Code challenge method - Select one of the methods from the dropdown menu (`None`, `Plain`, or `S256`). This setting
|
||||||
|
should match the one defined in your identity provider's ClearML App settings
|
||||||
|
* Standard Userinfo scopes - Comma-separated list of scopes. Used to control access to user information. In case
|
||||||
|
you need to add another scope, use the `Additional scopes` field below.
|
||||||
|
* Additional scopes - Comma-separated list of any additional scopes required by your identity provider
|
||||||
|
* Claims mappings - Maps ClearML claim names to the names defined in your identity provider's ClearML App settings
|
||||||
|
* user id - The user's unique ID
|
||||||
|
* email - The user's email address
|
||||||
|
* name - The user's full name
|
||||||
|
* given name - The user's given name (optional if **name** is specified)
|
||||||
|
* family name - The user's family name (surname, optional if **name** is specified)
|
||||||
|
* picture - The user's avatar or picture URL
|
||||||
|
* User Groups Synchronization - Supports synchronizing group membership. If enabled, and the groups claim is returned
|
||||||
|
by the provider, the server will attempt to match each group to an existing ClearML group and assign the ClearML user
|
||||||
|
to the matched ClearML group. The server will also make sure the ClearML user is removed from the group if
|
||||||
|
a previous membership has been revoked.
|
||||||
|
|
||||||
|
</Collapsible>
|
||||||
|
|
||||||
|
<Collapsible title="SAML Providers" type="configuration">
|
||||||
|
|
||||||
|
* ClearML Webapp URL - The external URL for the ClearML WebApp. This is used to construct the Callback URL used by
|
||||||
|
the identity provider
|
||||||
|
* Reply/ACS URL - Copy this field's content into the `Assertion Consumer Service URL` field in your provider's
|
||||||
|
ClearML App. Used by the identity provider to redirect the session back to the ClearML Server.
|
||||||
|
* Display name - Unique name to be used in the ClearML Login screen. Make sure no two
|
||||||
|
connections have the same name.
|
||||||
|
* Entity ID - The Entity ID of your identity provider's ClearML App. Copy this value from your identity provider's
|
||||||
|
ClearML App settings
|
||||||
|
* IDP metadata file - Provided by the identity provider and contains SAML configuration details used by the ClearML
|
||||||
|
Server to set up the connection. Download this from your identity provider's ClearML App settings.
|
||||||
|
* Security Settings
|
||||||
|
* Require signed assertions - Assume IDP assertions or responses are signed by the identity provider. If enabled,
|
||||||
|
make sure your identity provider's ClearML App is configured to sign assertions or responses.
|
||||||
|
* Sign client requests - The ClearML Server will sign requests sent to the identity provider. Make sure your
|
||||||
|
identity provider's ClearML App is configured to accept signed client requests and its Client Certificate section
|
||||||
|
there is set up with the same value for the Public Key.
|
||||||
|
1. Sign requests sent to the identity provider. Use the following shell commands to generate a public/private key pair:
|
||||||
|
|
||||||
|
```
|
||||||
|
openssl genrsa -out server.key 2048
|
||||||
|
chmod 600 server.key
|
||||||
|
openssl req -new -key server.key -out server.csr
|
||||||
|
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.cer
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Paste the content of the `server.cer` file into the `Public Key` field below and the content of the `server.key`
|
||||||
|
file into the `Private Key` field below. Make sure your identity provider's ClearML App is configured to accept
|
||||||
|
signed client requests and its `Client Certificate` section there is set up with the same value for the `Public Key`.
|
||||||
|
|
||||||
|
* Claims mappings - Maps ClearML Claim names to the names defined in your identity provider's ClearML App settings
|
||||||
|
* user id - The user's unique ID
|
||||||
|
* email - The user's email address
|
||||||
|
* name - The user's full name
|
||||||
|
* given name - The user's given name (optional if **name** is specified)
|
||||||
|
* family name - The user's family name (surname, optional if **name** is specified)
|
||||||
|
* picture - The user's avatar or picture URL
|
||||||
|
* User Groups Synchronization - Supports synchronizing group membership. If enabled, and the groups claim is returned
|
||||||
|
by the provider, the server will attempt to match each group to an existing ClearML group and assign the ClearML user
|
||||||
|
to the matched ClearML group. The server will also make sure the ClearML user is removed from the group if
|
||||||
|
a previous membership has been revoked.
|
||||||
|
|
||||||
|
</Collapsible>
|
||||||
|
|
||||||
|
1. Click **Test Provider** to make sure that the connection is working. This calls the identity provider, and displays
|
||||||
|
the returned information, so you can verify that the information was mapped correctly. An error will be displayed, if the provider fails to connect.
|
||||||
|
|
||||||
|
![Test provider window](../img/settings_sso_provider_test.png)
|
||||||
|
2. Click **Save**
|
||||||
|
|
||||||
|
The **Provider Connections** table lists all currently defined connections, and the following details:
|
||||||
|
* Active - Toggle to enable / disable the provider connection
|
||||||
|
* Name - Connection name
|
||||||
|
* Provider - Connection's provider
|
||||||
|
* Protocol - Connection's protocol
|
||||||
|
* ID - Connection's ID (click to copy)
|
||||||
|
* Last Update - Last update time
|
||||||
|
|
||||||
|
Hover over a connection in the table to **Edit** or **Delete** it.
|
||||||
|
|
||||||
## Usage & Billing
|
## Usage & Billing
|
||||||
|
|
||||||
The **USAGE & BILLING** section displays your ClearML workspace usage information including:
|
The **USAGE & BILLING** section displays your ClearML workspace usage information including:
|
||||||
|
Loading…
Reference in New Issue
Block a user