Skip to content

Commit cd61696

Browse files
committed
after-jamie
1 parent c49049d commit cd61696

File tree

10 files changed

+258
-237
lines changed

10 files changed

+258
-237
lines changed

docs/admin/runai-setup/authentication/authentication-overview.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# Authentication & Authorization
22

3-
43
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.
54

65
Authentication verifies user identity during login, and Authorization assigns the user with specific permissions according to the assigned access rules.
@@ -17,10 +16,10 @@ Single Sign-On (SSO) is the preferred authentication method by large organizatio
1716

1817
Run:ai offers SSO integration, enabling users to utilize existing organizational credentials to access Run:ai without requiring dedicated credentials.
1918

20-
Run:ai supports three methods to set up SSO:
19+
Run:ai supports three methods to setup SSO:
2120

2221
* [SAML](sso/saml.md)
23-
* [OpenID Connect (OIDC)](sso/openidconnect.md)
22+
* [OpenID Connect (OIDC)](sso/openidconnect.md)
2423
* [OpenShift](sso/openshift.md)
2524

2625
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.
@@ -45,7 +44,7 @@ While Kubernetes RBAC is limited to a single cluster, Run:ai expands the scope o
4544

4645
RBAC at Run:ai is configured using access rules.
4746

48-
An access rule is the assignment of a role to a subject in a scope: \<Subject\> is a \<Role\> in a \<Scope\>.
47+
An access rule is the assignment of a role to a subject in a scope: `<Subject>` is a `<Role>` in a `<Scope>`.
4948

5049
* **Subject**
5150
* A user, a group, or an application assigned with the role
@@ -58,7 +57,9 @@ An access rule is the assignment of a role to a subject in a scope: \<Subject\>
5857
* A set of resources that are accessible to a subject for a specific role
5958
* A scope is a part of an organization that can be accessed based on assigned roles. Scopes include Projects, Departments, Clusters, Account (all clusters)
6059

61-
An example of an access rule: **username@company.com** is a **Department admin** in **Department: A**
60+
Below is an example of an access rule: **username@company.com** is a **Department admin** in **Department: A**
61+
62+
6263

6364
![](img/auth-rbac.png)
6465

Binary file not shown.
Binary file not shown.
Loading

docs/admin/runai-setup/authentication/sso/openidconnect.md

Lines changed: 82 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,23 @@ Single Sign-On (SSO) is an authentication scheme, allowing users to log-in with
22

33
This article explains the procedure to configure single sign-on to Run:ai using the OpenID Connect protocol.
44

5-
## **Prerequisites**
5+
## Prerequisites
66

77
Before starting, make sure you have the following available from your identity provider:
88

9-
* Discovery URL \- the OpenID server where the content discovery information is published.
10-
* ClientID \- the ID used to identify the client with the Authorization Server.
11-
* Client Secret \- a secret password that only the Client and Authorization server know.
12-
* Optional: Scopes \- a set of user attributes to be used during authentication to authorize access to a user's details.
9+
* Discovery URL - the OpenID server where the content discovery information is published.
10+
* ClientID - the ID used to identify the client with the Authorization Server.
11+
* Client Secret - a secret password that only the Client and Authorization server know.
12+
* Optional: Scopes - a set of user attributes to be used during authentication to authorize access to a user's details.
1313

14-
## **Setup**
14+
## Setup
1515

1616
Follow the steps below to setup SSO with OpenID Connect.
1717

18-
### **Adding the identity provider**
18+
### Adding the identity provider
1919

2020
1. Go to **Tools & Settings****General**
21-
1. Open the Security section and click **\+IDENTITY PROVIDER**
21+
1. Open the Security section and click **+IDENTITY PROVIDER**
2222
1. Select **Custom OpenID Connect**
2323
1. Enter the **Discovery URL**, **Client ID**, and **Client Secret**
2424
1. Copy the Redirect URL to be used in your identity provider
@@ -37,89 +37,105 @@ Follow the steps below to setup SSO with OpenID Connect.
3737
| User first name | firstName | Used as the user’s first name appearing in the Run:ai user interface |
3838
| User last name | lastName | Used as the user’s last name appearing in the Run:ai user interface |
3939

40-
### **Testing the setup**
40+
### Testing the setup
4141

4242
1. Log-in to the Run:ai platform as an admin
43-
1. Add Access Rules to an SSO user defined in the IDP
43+
1. Add [Access Rules](../accessrules.md) to an SSO user defined in the IDP
4444
1. Open the Run:ai platform in an incognito browser tab
45-
1. On the sign-in page click **CONTINUE WITH SSO.** You should be redirected to the identity provider sign in page
45+
1. On the sign-in page click **CONTINUE WITH SSO**
46+
You are redirected to the identity provider sign in page
4647
1. In the identity provider sign-in page, log in with the SSO user who you granted with access rules
4748
1. If you are unsuccessful signing-in to the identity provider, follow the Troubleshooting section below
4849

49-
### **Troubleshooting**
50+
### Editing the identity provider
51+
52+
You can view the identity provider details and edit its configuration:
53+
54+
1. Go to **Tools & Settings****General**
55+
1. Open the Security section
56+
1. On the identity provider box, click **Edit identity provider**
57+
1. You can edit either the **Discovery URL**, **Client ID**, **Client Secret**, **OIDC scopes**, or the **User attributes**
58+
59+
### Removing the identity provider**
60+
61+
You can remove the identity provider configuration:
62+
63+
1. Go to **Tools & Settings****General**
64+
1. Open the Security section
65+
1. On the identity provider card, click **Remove identity provider**
66+
1. In the dialog, click **REMOVE** to confirm the action
67+
68+
!!! Note
69+
To avoid losing access, removing the identity provider must be carried out by a local user.
70+
71+
## Troubleshooting
5072

5173
If testing the setup was unsuccessful, try the different troubleshooting scenarios according to the error you received.
5274

53-
#### **Troubleshooting scenarios**
75+
### Troubleshooting scenarios
5476

55-
**Error:** “403 \- Sorry, we can’t let you see this page. Something about permissions…”
77+
??? "403 - Sorry, we can’t let you see this page. Something about permissions…"
78+
**Description:** The authenticated user is missing permissions
5679

57-
![](img/openid-403.png)
58-
59-
**Description:** The authenticated user is missing permissions
60-
__Mitigation__:
61-
- Validate either the user or its related group/s are assigned with access rules
62-
- Validate groups attribute is available in the configured OIDC Scopes
63-
- Validate the user’s groups attribute is mapped correctly
80+
**Mitigation**:
6481

65-
__Advanced:__
66-
- Open the Chrome DevTools: Right-click on page → Inspect → Console tab
67-
- Run the following command to retrieve the user’s token: `localStorage.token;`
68-
- Paste in [https://jwt.io](https://jwt.io/)
69-
- Under the Payload section validate the value of the user’s attributes
82+
1. Validate either the user or its related group/s are assigned with [access rules](../accessrules.md)
83+
1. Validate groups attribute is available in the configured OIDC Scopes
84+
1. Validate the user’s groups attribute is mapped correctly
7085

71-
**Error:** “We’re having trouble identifying your account because your email is incorrect or can’t be found.”
72-
73-
![](img/openid-imageincorrect.png)
86+
**Advanced:**
7487

75-
**Description:** Authentication failed because email attribute was not found.
76-
**Mitigation**:
77-
- Validate email attribute is available in the configured OIDC Scopes
78-
- Validate the user’s email attribute is mapped correctly
88+
1. Open the Chrome DevTools: Right-click on page → Inspect → Console tab
89+
1. Run the following command to retrieve and paste the user’s token: `localStorage.token;`
90+
1. Paste in [https://jwt.io](https://jwt.io/)
91+
1. Under the Payload section validate the values of the user’s attributes
7992

93+
??? "401 - We’re having trouble identifying your account because your email is incorrect or can’t be found."
94+
**Description:** Authentication failed because email attribute was not found.
8095

81-
**Error:** “Unexpected error when authenticating with identity provider”
82-
**Description:** User authentication failed
83-
**Mitigation**:
84-
Validate the configured OIDC Scopes exist and match the Identity Provider’s available scopes
85-
**Advanced:**
86-
Look for the specific error message in the URL address
96+
**Mitigation**:
8797

98+
1. Validate email attribute is available in the configured OIDC Scopes
99+
1. Validate the user’s email attribute is mapped correctly
88100

89-
**Error:** “Unexpected error when authenticating with identity provider” (SSO sign-in is not available)
90-
![](img/openid-unexpected.png)
91-
92-
**Description:** User authentication failed
93-
**Mitigation**:
94-
- Validate the configured OIDC scope exists in the Identity Provider
95-
- Validate the configured Client Secret matchs the Client Secret in the Identity Provider
96-
**Advanced:**
97-
Look for the specific error message in the URL address
101+
??? "Unexpected error when authenticating with identity provider"
98102

103+
![](img/openshift-identityerror.png)
99104

100-
**Error:** “Client not found”
101-
**Description:** OIDC Client ID was not found in the Identity Provider
102-
**Mitigation**:
103-
Validate the configured Client ID matches the Identity Provider Client ID
105+
**Description:** User authentication failed
104106

105-
### **Editing the identity provider**
107+
**Mitigation**:
106108

107-
You can view the identity provider details and edit its configuration:
109+
1. Validate that the configured OIDC Scopes exist and match the Identity Provider’s available scopes
108110

109-
1. Go to **Tools & Settings****General**
110-
1. Open the Security section
111-
1. On the identity provider box, click **Edit identity provider**
112-
1. You can edit either the **Discovery URL**, **Client ID**, **Client Secret**, **OIDC scopes**, or the **User attributes**
111+
**Advanced:**
112+
113+
1. Look for the specific error message in the URL address
114+
115+
??? "Unexpected error when authenticating with identity provider (SSO sign-in is not available)"
116+
117+
![](img/openid-unexpected.png)
118+
119+
**Description:** User authentication failed
120+
121+
**Mitigation**:
122+
123+
1. Validate that the configured OIDC scope exists in the Identity Provider
124+
1. Validate the configured Client Secret match the Client Secret in the Identity Provider
125+
126+
**Advanced:**
127+
128+
1. Look for the specific error message in the URL address
129+
130+
??? "Client not found"
131+
**Description:** OIDC Client ID was not found in the Identity Provider
132+
133+
**Mitigation**:
134+
135+
1. Validate that the configured Client ID matches the Identity Provider Client ID
136+
113137

114-
### **Removing the identity provider**
115138

116-
You can remove the identity provider configuration:
117139

118-
1. Go to **Tools & Settings****General**
119-
1. Open the Security section
120-
1. On the identity provider card, click **Remove identity provider**
121-
1. In the dialog, click **REMOVE** to confirm the action
122140

123-
!!!Note
124-
To avoid losing access, removing the identity provider must be carried out by a local user.
125141

0 commit comments

Comments
 (0)