11---
22id : 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
1515import Help from '@site/docs/_common/need-help.mdx'
@@ -29,16 +29,15 @@ import Mermaid from "@site/src/theme/Mermaid"
2929```
3030
3131Organizations 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
3535An 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
4342This will end up with the user being part of the configured organization in your Ory project, even if the domain does not match
4443any of the configured domains.
@@ -92,14 +91,14 @@ export PROJECT_ID="..."
9291export WORKSPACE_API_KEY=" ory_wak_..."
9392```
9493
95- #### List organizations
94+ ##### List organizations
9695
9796``` shell
9897curl -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
105104curl -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
117116curl -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
124123curl -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
151150organizations. The examples use [ curl] ( https://curl.se/ ) to make HTTP requests and [ jq] ( https://jqlang.github.io/jq/ ) to parse
152151JSON response.
153152
154- #### Create an SSO connection
153+ ##### Create an SSO connection
155154
156155``` shell
157156curl -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
208207curl -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
233232To delete an organization, you need to specify the index of the connection in the ` path ` field. The index is the position of the
234233SSO connection in the list of connections.
@@ -248,7 +247,7 @@ curl -X PATCH --location "https://api.console.ory.sh/projects/$PROJECT_ID" \
248247
249248Note that the ` organization_id ` field contains the organization ID to which the connection belongs.
250249
251- ### See it live
250+ ##### See it live
252251
253252After 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
308307curl -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
320319curl -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
336335curl -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
381380Mapping ` 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
447426Provider 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
454433The 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
466445Go 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
487466make HTTP requests. You can use any HTTP client to make these requests. Before copy & pasting the following examples, export your
488467PROJECT_ID,ORGANIZATION_ID and WORKSPACE_API_KEY:
489468
490- #### Create an onboarding portal link
469+ ##### Create an onboarding portal link
491470
492471``` shell
493472curl -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
527506curl -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
555534curl -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
562541curl -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
592571The link generated from the Ory Network Console expires in 7 days. The API allows you to set an expiration value with a minimum
593572expiry 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
597576Once you generate the link, share it with the organization's administrator. They can access this link multiple times until its
598577expiration to manage SSO and SCIM connections.
0 commit comments