|
1 |
| -## Authentication Overview |
| 1 | +# Authentication & Authorization |
2 | 2 |
|
3 |
| -To access Run:ai resources, you have to authenticate. The purpose of this document is to explain how authentication works at Run:ai. |
| 3 | +Run:ai Authentication & Authorization enables a streamlined experience for the user with precise controls covering the data each user can see and the actions each user can perform in the Run:ai platform. |
4 | 4 |
|
5 |
| -## Authentication Endpoints |
| 5 | +Authentication verifies user identity during login, and Authorization assigns the user with specific permissions according to the assigned access rules. |
6 | 6 |
|
7 |
| -Generally speaking, there are two authentication endpoints: |
| 7 | +Authenticated access is required to use all aspects of the Run:ai interfaces, including the Run:ai platform, the Run:ai Command Line Interface (CLI) and APIs. |
8 | 8 |
|
9 |
| -* The Run:ai control plane. |
10 |
| -* Run:ai GPU clusters. |
| 9 | +## Authentication |
11 | 10 |
|
12 |
| -Both endpoints are accessible via APIs as well as a user interface. |
| 11 | +There are multiple methods to authenticate and access Run:ai. |
13 | 12 |
|
| 13 | +### Single Sign-On (SSO) |
14 | 14 |
|
15 |
| -## Identity Service |
| 15 | +Single Sign-On (SSO) is the preferred authentication method by large organizations, as it avoids the need to manage duplicate sets of user identities. |
16 | 16 |
|
17 |
| -Run:ai includes an internal identity service. The identity service ensures users are who they claim to be and gives them the right kind of access to Run:ai. |
18 |
| - |
19 |
| -## Users |
| 17 | +Run:ai offers SSO integration, enabling users to utilize existing organizational credentials to access Run:ai without requiring dedicated credentials. |
20 | 18 |
|
21 |
| -Out of the box, The Run:ai identity service provides a way to create users and associate them with access roles. |
| 19 | +Run:ai supports three methods to setup SSO: |
22 | 20 |
|
23 |
| -It is also possible to configure the Run:ai identity service to connect to a company directory using the SAML protocol. For more information see [single sign-on](sso.md). |
| 21 | +* [SAML](sso/saml.md) |
| 22 | +* [OpenID Connect (OIDC)](sso/openidconnect.md) |
| 23 | +* [OpenShift](sso/openshift.md) |
24 | 24 |
|
25 |
| -## Authentication Method |
| 25 | +When using SSO, it is highly recommended to manage at least one local user, as a breakglass account (an emergency account), in case access to SSO is not possible. |
26 | 26 |
|
27 |
| -Both endpoints described above are protected via time-limited oauth2-like JWT authentication tokens. |
| 27 | +### Username and password |
28 | 28 |
|
29 |
| -There are two ways of getting a token: |
| 29 | +Username and password access can be used when SSO integration is not possible. |
30 | 30 |
|
31 |
| -* Using a user/password combination. |
32 |
| -* Using [client applications](../../../developer/overview-developer.md) for API access. |
| 31 | +### Secret key (for Application programmatic access) |
33 | 32 |
|
| 33 | +Secret is the authentication method for Applications. Applications use the Run:ai APIs to perform automated tasks including scripts and pipelines based on its assigned access rules. |
34 | 34 |
|
35 |
| -## Authentication Flows |
| 35 | +## Authorization |
36 | 36 |
|
37 |
| -### Run:ai control plane |
| 37 | +The Run:ai platform uses Role Base Access Control (RBAC) to manage authorization. |
38 | 38 |
|
39 |
| -You can use the Run:ai user interface to provide user/password. These are validated against the identity service. Run:ai will return a token with the right access rights for continued operation. |
| 39 | +Once a user or an application is authenticated, they can perform actions according to their assigned access rules. |
40 | 40 |
|
41 |
| -You can also use a client application to get a token and then connect directly to the [administration API endpoint](../../../developer/admin-rest-api/overview.md). |
42 |
| -### Run:ai GPU Clusters |
| 41 | +### Role Based Access Control (RBAC) in Run:ai |
43 | 42 |
|
44 |
| -The Run:ai GPU cluster is a _Kubernetes_ cluster. All communication into Kubernetes flows through the [Kubernetes API server](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/){target=_blank}. |
| 43 | +While Kubernetes RBAC is limited to a single cluster, Run:ai expands the scope of Kubernetes RBAC, making it easy for administrators to manage access rules across multiple clusters. |
45 | 44 |
|
46 |
| -To facilitate authentication via Run:ai the Kubernetes API server must be configured to use the Run:ai identity service to validate authentication tokens. For more information on how to configure the Kubernetes API server see _Kubernetes configuration_ under [researcher authentication](researcher-authentication.md#mandatory-kubernetes-configuration). |
| 45 | +RBAC at Run:ai is configured using access rules. |
47 | 46 |
|
48 |
| -## Inactivity timeout |
| 47 | +An access rule is the assignment of a role to a subject in a scope: `<Subject>` is a `<Role>` in a `<Scope>`. |
49 | 48 |
|
50 |
| -:octicons-versions-24: Version 2.10 and later. |
| 49 | +* **Subject** |
| 50 | + * A user, a group, or an application assigned with the role |
| 51 | +* **Role** |
| 52 | + * A set of permissions that can be assigned to subjects |
| 53 | + * A permission is a set of actions (view, edit, create and delete) over a Run:ai entity (e.g. projects, workloads, users) |
| 54 | + * For example, a role might allow a user to create and read Project, but not update or delete them |
| 55 | + * Roles at Run:ai are system defined and cannot be created, edited or deleted |
| 56 | +* **Scope** |
| 57 | + * A set of resources that are accessible to a subject for a specific role |
| 58 | + * A scope is a part of an organization that can be accessed based on assigned roles. Scopes include Projects, Departments, Clusters, Account (all clusters) |
51 | 59 |
|
52 |
| -Run:ai session should timeout after 1 hour of inactivity. |
| 60 | +Below is an example of an access rule: **username@company.com** is a **Department admin** in **Department: A** |
53 | 61 |
|
54 |
| -!!! Note |
55 |
| - Timeout settings are configured in minutes. |
56 | 62 |
|
57 |
| -To configure the inactivity timeout: |
58 |
| -1. Open `Settings | General`. |
59 |
| -2. Set the inactivity timeout in minutes. (Default is 60) |
60 | 63 |
|
61 |
| -## See also |
| 64 | + |
| 65 | + |
62 | 66 |
|
63 |
| -* To configure authentication for researchers [researcher authentication](researcher-authentication.md). |
64 |
| -* To configure single sign-on, see [single sign-on](sso.md). |
|
0 commit comments