You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 2df507b
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/ai-control-plane/identity/identities/enterprise-managed-auth.mdx
+29-3Lines changed: 29 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,10 +56,36 @@ Setup happens partly in the dashboard and partly in the Okta Admin Console.
56
56
57
57
### Connect Okta
58
58
59
+
Speakeasy reads apps, users, and groups from Okta through an API service app. There are two ways to set one up:
60
+
61
+
-**Okta Integration Network.** Install the Speakeasy integration from the Okta catalog. Okta creates the app and gives you a client ID and client secret.
62
+
-**Custom API Services app.** Create the app yourself in Okta. It authenticates with a public key that Speakeasy hosts, so there is no secret to copy.
63
+
64
+
#### Install from the Okta Integration Network
65
+
66
+
- In the Okta Admin Console, open **Applications and Resources > API Service Integrations**, select **Add Integration**, and choose **Speakeasy**.
67
+
- Review the read-only permissions for apps, users, and groups, and select **Install & Authorize**.
68
+
- Copy the **Okta domain**, **Client ID**, and **Client secret**. Okta shows the client secret only once.
69
+
- In the dashboard, open [**IDP and SSO > Identity providers**](https://app.getgram.ai/@self/identity?tab=identity-providers) and select **Connect Okta** on the Okta card.
70
+
- Choose **Okta Integration Network (client secret)**, enter the Okta organization URL, such as `https://example.okta.com`, and select **Create connection**.
71
+
- Enter the **Client ID** and **Client secret** and select **Submit and verify**.
72
+
73
+
The client secret is stored encrypted and never shown again. If you rotate it in Okta, select **Replace client secret** on the connection and enter the new one. If Okta rejects the new secret, the connection keeps the previous one.
74
+
75
+
#### Create a custom API Services app
76
+
59
77
- Open [**IDP and SSO > Identity providers**](https://app.getgram.ai/@self/identity?tab=identity-providers) and select **Connect Okta** on the Okta card.
60
-
- Enter the Okta organization URL, such as `https://example.okta.com`, and select **Create connection**.
61
-
- Follow the **Okta setup checklist** in the Okta Admin Console. It walks through creating an API Services app for Speakeasy that authenticates with the public key URL the checklist shows, granting read-only scopes for apps, users, and groups, and assigning read-only admin roles.
62
-
- Paste the app's **Client ID** and select **Submit and verify**.
78
+
- Choose **Custom API Services app (private key)**, enter the Okta organization URL, such as `https://example.okta.com`, and select **Create connection**. The Okta Admin Console address also works.
79
+
- Follow the **Okta setup checklist**, which shows the key URL to use. In the Okta Admin Console:
80
+
- Open **Applications and Resources > Applications**, choose **Create App Integration**, and select **API Services**. Name the app Speakeasy, choose **Use Okta-generated client ID**, and save it. Do not choose Client ID Metadata Document (CIMD).
81
+
- On the app's **General** tab, edit **Public keys**, choose **Use a URL to fetch keys dynamically**, and enter the key URL from the checklist.
82
+
- Under **Client Credentials**, set **Client authentication** to **Public key / Private key**. Okta enables this option only after the key URL is saved; refresh the page if it is still grayed out.
83
+
- Leave **Require Demonstrating Proof of Possession (DPoP) header in token requests** enabled.
84
+
- On the **Okta API Scopes** tab, grant `okta.apps.read`, `okta.users.read`, and `okta.groups.read`.
85
+
- On the **Admin roles** tab, assign **Application Administrator** (org-wide) and **Read-only Administrator**.
86
+
- Paste the app's **Client ID**, which starts with `0oa`, and select **Submit and verify**. The client ID can be saved only once; to change it, revoke the connection and connect again.
87
+
88
+
#### After connecting
63
89
64
90
When verification passes, the Okta card shows **Verified** and a **Manage Okta** button.
0 commit comments