Skip to content

Commit f29a8cf

Browse files
committed
fix: organizations docs
1 parent 39ead55 commit f29a8cf

File tree

3 files changed

+54
-76
lines changed

3 files changed

+54
-76
lines changed

docs/guides/manage-project-via-api.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,4 +194,4 @@ curl --location --request DELETE "https://api.console.ory.sh/projects/${ORY_PROJ
194194
### Create, update, delete organizations
195195

196196
To learn more about how to use the Organizations or B2B SSO API, including examples, please refer to the guide in the
197-
[Organizations and B2B Single Sign-On](kratos/organizations/organizations.mdx) documentation.
197+
[Organizations](kratos/organizations/organizations.mdx) documentation.

docs/kratos/organizations/organizations.mdx

Lines changed: 52 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: organizations
3-
title: B2B SSO & SAML
3+
title: Organizations
44
---
55

66
```mdx-code-block
@@ -9,7 +9,7 @@ import CanonicalUrl from "@site/src/components/CanonicalUrl"
99
<CanonicalUrl path="/kratos/organizations" />
1010
```
1111

12-
# B2B Single Sign-On & SAML
12+
# Organizations for B2B Single Sign-On OIDC & SAML
1313

1414
```mdx-code-block
1515
import Help from '@site/docs/_common/need-help.mdx'
@@ -29,16 +29,15 @@ import Mermaid from "@site/src/theme/Mermaid"
2929
```
3030

3131
Organizations are a way to group users within one project. An organization always belongs to one Ory project. Within a project, an
32-
identity can belong to an organization or remain without an organization. Organizations contain multiple OIDC SSO connections. All
33-
members of an organization must use one of the organization's OIDC SSO connections to log in.
32+
identity can belong to an organization or remain without an organization. Organizations contain multiple OIDC or SAML SSO
33+
connections. All members of an organization must use one of the organization's OIDC or SAML SSO connections to log in.
3434

3535
An organization can have multiple domains. Registrations for email addresses with a domain that belongs to an organization must go
36-
through one of the organization's OIDC SSO connections.
36+
through one of the organization's OIDC or SAML SSO connections.
3737

38-
Some identity providers do not validate email domain ownership. This can lead to situations where Enterprise SSO with
39-
Organizations is configured for a specified domain such as `@example.com`, but due to this lack of this email domain ownership
40-
validation by the identity provider, a users with other email domains such as `@gmail.com` can still authenticate successfully via
41-
the identity provider.
38+
Some identity providers do not validate email domain ownership. This can lead to situations where Organization login is configured
39+
for a specified domain such as `@example.com`, but due to this lack of this email domain ownership validation by the identity
40+
provider, a users with other email domains such as `@gmail.com` can still authenticate successfully via the identity provider.
4241

4342
This will end up with the user being part of the configured organization in your Ory project, even if the domain does not match
4443
any of the configured domains.
@@ -92,14 +91,14 @@ export PROJECT_ID="..."
9291
export WORKSPACE_API_KEY="ory_wak_..."
9392
```
9493

95-
#### List organizations
94+
##### List organizations
9695

9796
```shell
9897
curl -X GET --location "https://api.console.ory.sh/projects/$PROJECT_ID/organizations" \
9998
-H "Authorization: Bearer $WORKSPACE_API_KEY"
10099
```
101100

102-
#### Create an organization
101+
##### Create an organization
103102

104103
```shell
105104
curl -X POST --location "https://api.console.ory.sh/projects/$PROJECT_ID/organizations" \
@@ -111,14 +110,14 @@ curl -X POST --location "https://api.console.ory.sh/projects/$PROJECT_ID/organiz
111110
}'
112111
```
113112

114-
#### Get an organization
113+
##### Get an organization
115114

116115
```shell
117116
curl -X GET --location "https://api.console.ory.sh/projects/$PROJECT_ID/organizations/$ORGANIZATION_ID" \
118117
-H "Authorization: Bearer $WORKSPACE_API_KEY"
119118
```
120119

121-
#### Delete an organization
120+
##### Delete an organization
122121

123122
```shell
124123
curl -X DELETE --location "https://api.console.ory.sh/projects/$PROJECT_ID/organizations/$ORGANIZATION_ID" \
@@ -151,7 +150,7 @@ The SSO connections are part of the project configuration. To authenticate, use
151150
organizations. The examples use [curl](https://curl.se/) to make HTTP requests and [jq](https://jqlang.github.io/jq/) to parse
152151
JSON response.
153152

154-
#### Create an SSO connection
153+
##### Create an SSO connection
155154

156155
```shell
157156
curl -X PATCH --location "https://api.console.ory.sh/projects/$PROJECT_ID" \
@@ -202,7 +201,7 @@ See the [PKCE documentation](../social-signin/oidc-pkce.mdx) for details.
202201

203202
:::
204203

205-
#### List SSO connections
204+
##### List SSO connections
206205

207206
```shell
208207
curl -X GET --location "https://api.console.ory.sh/projects/$PROJECT_ID" \
@@ -228,7 +227,7 @@ Result:
228227
]
229228
```
230229

231-
#### Delete an SSO connection
230+
##### Delete an SSO connection
232231

233232
To delete an organization, you need to specify the index of the connection in the `path` field. The index is the position of the
234233
SSO connection in the list of connections.
@@ -248,7 +247,7 @@ curl -X PATCH --location "https://api.console.ory.sh/projects/$PROJECT_ID" \
248247

249248
Note that the `organization_id` field contains the organization ID to which the connection belongs.
250249

251-
### See it live
250+
##### See it live
252251

253252
After having set up everything, go to your registration page. Entering an email that ends with the organization's domain, such as
254253
`@my.example.com` from the example above, shows a **Sign in with SSO** button instead of the password field. Clicking it will take
@@ -302,7 +301,7 @@ Before proceeding, ensure you are on a plan that supports SAML SSO. SAML is avai
302301
<TabItem value="api" label="API">
303302
```
304303

305-
#### Create an organization
304+
##### Create an organization
306305

307306
```shell
308307
curl -X POST --location "https://api.console.ory.sh/projects/$PROJECT_ID/organizations" \
@@ -314,7 +313,7 @@ curl -X POST --location "https://api.console.ory.sh/projects/$PROJECT_ID/organiz
314313
}'
315314
```
316315

317-
#### Enable SAML authentication
316+
##### Enable SAML authentication
318317

319318
```shell
320319
curl -X PATCH --location "https://api.console.ory.sh/projects/$PROJECT_ID" \
@@ -330,7 +329,7 @@ curl -X PATCH --location "https://api.console.ory.sh/projects/$PROJECT_ID" \
330329
| jq ".project.services.identity.config.selfservice.methods.saml"
331330
```
332331

333-
#### Create a SAML connection
332+
##### Create a SAML connection
334333

335334
```shell
336335
curl -X PATCH --location "https://api.console.ory.sh/projects/$PROJECT_ID" \
@@ -376,7 +375,7 @@ Ensure that the appropriate identity schema is created before mapping attributes
376375

377376
:::
378377

379-
#### Example SAML data mapping
378+
##### Example SAML data mapping
380379

381380
Mapping `firstName` and `lastName` from the SAML Identity Provider to the Ory identity schema (traits).
382381

@@ -394,65 +393,45 @@ local claims = std.extVar('claims');
394393
}
395394
```
396395

397-
## Onboarding portal
396+
## Self-service organization onboarding
398397

399-
:::note
398+
```mdx-code-block
399+
<Help/>
400+
```
400401

401-
Before proceeding, ensure you are on a plan that supports onboarding portal. It is available exclusively on select enterprise
402-
plans. The portal requires that you enable Account Experience 2.0. Please contact us [Ory Support](mailto:support@ory.com) if you
403-
have any questions or feedback.
402+
The onboarding portal is a powerful tool designed to simplify complex identity and access management tasks for businesses and
403+
their partners.
404404

405-
:::
405+
### Streamline organization onboarding
406406

407-
Onboarding portal is a powerful tool designed to simplify complex identity and access management tasks for businesses and their
408-
partners.
407+
The onboarding portal simplifies setting up and managing identity connections with external organizations.
409408

410-
### Streamline organization onboarding
409+
The onboarding portal aims to:
410+
411+
- Simplify complex integrations: A self-service or guided experience removes the need for client IT administrators to be SAML/SCIM
412+
experts.
413+
- Reduce onboarding time: External administrators configure connections directly through a user-friendly interface instead of
414+
lengthy manual setup and back-and-forth communication.
415+
- Enhance security and control: Shareable links don't expose sensitive information. Administrators configure their side securely
416+
while maintaining control over their IdP settings.
417+
- Enable self-service: SaaS providers can let customers manage their own SSO/SCIM connections, freeing up engineering and support
418+
teams.
419+
- Scale B2B integrations: Manual management becomes unsustainable as enterprise clients grow. The portal provides a scalable
420+
solution.
421+
- Validate instantly: Test SSO connections immediately to verify integration before deployment, reducing troubleshooting time.
411422

412-
The onboarding portal addresses the often-burdensome process of setting up and managing identity connections with external
413-
organizations. Traditionally, integrating with a customer's or partner's identity provider (IdP) for single sign-on (SSO) or
414-
synchronizing user directories involves manual, error-prone configurations. This often requires deep technical expertise in
415-
protocols such as SAML/SCIM.
416-
417-
Onboarding portal aims to:
418-
419-
- Simplify complex integrations: By providing a self-service or guided onboarding experience, they abstract away the underlying
420-
technical complexities of SAML/SCIM. This means IT administrators on the client side don't need to be SAML/SCIM experts to
421-
connect their organization's identity system.
422-
- Reduce onboarding time: Instead of lengthy back-and-forth communication and manual configuration, an onboarding portal link
423-
allows an external administrator to configure the connection directly through a user-friendly interface. This drastically
424-
reduces the time and effort required to establish new B2B integrations.
425-
- Enhance security and control: Onboarding portal links are designed to be shareable without exposing sensitive information. The
426-
administrator receiving the link can configure their side of the connection securely, maintaining control over their IdP
427-
settings while establishing a trusted connection with your application.
428-
- Enable Self-Service for Organizations: For SaaS providers, this means empowering your customers to self-onboard and manage their
429-
own SSO/SCIM connections, freeing up your engineering and support teams. Support Scalability for B2B Models: As your application
430-
grows and serves more enterprise clients, manually managing each integration becomes unsustainable. These features provide a
431-
scalable solution for onboarding and managing a large number of organizational customers.
432-
- Validate SSO Connections instantly: The onboarding portal includes the ability to immediately test the configured SSO
433-
connection. This allows IT administrators to verify that the integration works as expected before deploying it to their users,
434-
reducing troubleshooting time and ensuring a smooth rollout.
435-
436-
These features are relevant for:
437-
438-
- SaaS (Software-as-a-Service) providers: SaaS companies offer services to other businesses (B2B) or to businesses that then serve
439-
their own customers (B2B2C). This is crucial for enabling enterprise clients to use their existing corporate identity systems
440-
(for example, Microsoft Entra ID, Okta, Google Workspace) for seamless access to the SaaS application.
441-
- Enterprise IT administrators: These individuals in your customer organizations are responsible for managing their internal
442-
identity providers and user directories. They use the onboarding portal to configure the connection to your application.
443-
- Developers and architects building multi-tenant applications: These individuals implement robust and scalable identity
444-
management for applications that serve multiple organizations. Each organization has its own authentication and user
445-
provisioning requirements.
423+
The onboarding is relevant for SaaS providers serving B2B or B2B2C customers, enterprise IT administrators managing identity
424+
providers, and developers building multi-tenant applications.
446425

447426
Provider support:
448427

449428
- The onboarding portal supports all well known providers. You can also connect any SAML/OIDC compliant provider using the Generic
450-
SAML/OIDC IdP option. If you don't find your provider listed, please [contact us](https://www.ory.com/contact/).
429+
SAML/OIDC IdP option. If you don't find your provider listed, please contact [Ory Support](mailto:support@ory.sh).
451430

452431
### SCIM support
453432

454433
The onboarding portal allows you to set up SCIM provisioning. For an organization, you can create, update, and remove SCIM
455-
servers. Guided walkthroughs are available for Microsoft Entra ID and Okta.
434+
servers. Guided walkthroughs are available for Microsoft Entra ID, Google Workspace, and Okta.
456435

457436
### Manage onboarding portal links
458437

@@ -461,7 +440,7 @@ servers. Guided walkthroughs are available for Microsoft Entra ID and Okta.
461440
<TabItem value="console" label="Ory Console">
462441
```
463442

464-
#### Create a link
443+
##### Create a link
465444

466445
Go to <ConsoleLink route="project.authentication.organizations" /> and continue by configuring the selected organization.
467446

@@ -487,7 +466,7 @@ Onboarding portal links can also be managed using the Ory API. To authenticate y
487466
make HTTP requests. You can use any HTTP client to make these requests. Before copy & pasting the following examples, export your
488467
PROJECT_ID,ORGANIZATION_ID and WORKSPACE_API_KEY:
489468

490-
#### Create an onboarding portal link
469+
##### Create an onboarding portal link
491470

492471
```shell
493472
curl -X POST --location "https://api.console.ory.sh/projects/$PROJECT_ID/organizations/$ORGANIZATION_ID/onboarding-portal-links" \
@@ -521,7 +500,7 @@ The response contains a `value` token that you can use to construct the onboardi
521500

522501
`https://your-slug.projects.oryapis.com/onboarding/<value>`
523502

524-
#### Update an onboarding portal link
503+
##### Update an onboarding portal link
525504

526505
```shell
527506
curl -X POST --location "https://api.console.ory.sh/projects/$PROJECT_ID/organizations/$ORGANIZATION_ID/onboarding-portal-links/$ONBOARDING_PORTAL_LINK_ID" \
@@ -549,14 +528,14 @@ Result:
549528
}
550529
```
551530

552-
#### Delete an onboarding portal link
531+
##### Delete an onboarding portal link
553532

554533
```shell
555534
curl -X DELETE --location "https://api.console.ory.sh/projects/$PROJECT_ID/organizations/$ORGANIZATION_ID/onboarding-portal-links/$ONBOARDING_PORTAL_LINK_ID" \
556535
-H "Authorization: Bearer $WORKSPACE_API_KEY"
557536
```
558537

559-
#### List onboarding portal links
538+
##### List onboarding portal links
560539

561540
```shell
562541
curl -X GET --location "https://api.console.ory.sh/projects/$PROJECT_ID/organizations/$ORGANIZATION_ID/onboarding-portal-links" \
@@ -587,12 +566,12 @@ Result:
587566
</Tabs>
588567
```
589568

590-
#### Expiry
569+
##### Expiry
591570

592571
The link generated from the Ory Network Console expires in 7 days. The API allows you to set an expiration value with a minimum
593572
expiry of 1 day. Once the link expires, it no longer works. You can also delete the link and generate a new one.
594573

595-
#### Handover and using the portal
574+
##### Handover and using the portal
596575

597576
Once you generate the link, share it with the organization's administrator. They can access this link multiple times until its
598577
expiration to manage SSO and SCIM connections.

src/components/ConsoleLink/console-nav-data.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,9 @@ export const authenticationPaths: Path[] = [
9898
pill: "Preview",
9999
},
100100
{
101-
title: "Enterprise SSO",
101+
title: "Organizations",
102102
href: routes.project.authentication.organizations.route,
103103
},
104-
105104
{
106105
title: "Sessions",
107106
href: routes.project.authentication.sessionSettings.route,

0 commit comments

Comments
 (0)