Skip to content

Commit bcf9bdf

Browse files
authored
docs: onboarding portal (#2181)
* feat: onboarding portal * feat: add section under kratos/organizations * feat: tweaks * feat: tweaks * feat: add API tab content * fix: tweak * fix: tweak * feat: update API docs and screenshot * fix: add context and fix delete api * fix: wording * fix: tweaks * fix: move note to the start * fix: updates and tweaks * fix: wording * fix: mention minimum expiry * fix: remove bold formatting * fix: limitations * chore: update api key operations * fix: link to api key section * chore: format * fix: address review comments
1 parent d4be9be commit bcf9bdf

File tree

4 files changed

+173
-0
lines changed

4 files changed

+173
-0
lines changed

docs/concepts/personal-access-token.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ create, read, update, delete.
158158
| Delete projects | Yes | No |
159159
| List and invite members | Yes | No |
160160
| CRUD B2B SSO organizations | Yes | No |
161+
| CRUD onboarding portal links | Yes | No |
161162
| CRUD project API keys | Yes | No |
162163
| CRUD identities | No | Yes |
163164
| CRUD OAuth2 clients | No | Yes |
24.7 KB
Loading
43.4 KB
Loading

docs/kratos/organizations/organizations.mdx

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,3 +389,175 @@ local claims = std.extVar('claims');
389389
},
390390
}
391391
```
392+
393+
## Onboarding portal
394+
395+
:::note
396+
397+
Before proceeding, ensure you are on a plan that supports onboarding portal. It is available exclusively on select enterprise
398+
plans. The portal requires that you enable Account Experience 2.0. Please contact us [Ory Support](mailto:[email protected]) if you
399+
have any questions or feedback.
400+
401+
:::
402+
403+
Onboarding portal is a powerful tool designed to simplify complex identity and access management tasks for businesses and their
404+
partners.
405+
406+
### Streamline organization onboarding
407+
408+
The onboarding portal addresses the often-burdensome process of setting up and managing identity connections with external
409+
organizations. Traditionally, integrating with a customer's or partner's identity provider (IdP) for single sign-on (SSO) or
410+
synchronizing user directories involves manual, error-prone configurations. This often requires deep technical expertise in
411+
protocols such as SAML.
412+
413+
Onboarding portal aims to:
414+
415+
- Simplify complex integrations: By providing a self-service or guided onboarding experience, they abstract away the underlying
416+
technical complexities of SAML. This means IT administrators on the client side don't need to be SAML experts to connect their
417+
organization's identity system.
418+
- Reduce onboarding time: Instead of lengthy back-and-forth communication and manual configuration, an onboarding portal link
419+
allows an external administrator to configure the connection directly through a user-friendly interface. This drastically
420+
reduces the time and effort required to establish new B2B integrations.
421+
- Enhance security and control: Onboarding portal links are designed to be shareable without exposing sensitive information. The
422+
administrator receiving the link can configure their side of the connection securely, maintaining control over their IdP
423+
settings while establishing a trusted connection with your application.
424+
- Enable Self-Service for Organizations: For SaaS providers, this means empowering your customers to self-onboard and manage their
425+
own SSO connections, freeing up your engineering and support teams. Support Scalability for B2B Models: As your application
426+
grows and serves more enterprise clients, manually managing each integration becomes unsustainable. These features provide a
427+
scalable solution for onboarding and managing a large number of organizational customers.
428+
- Validate SSO Connections instantly: The onboarding portal includes the ability to immediately test the configured SSO
429+
connection. This allows IT administrators to verify that the integration works as expected before deploying it to their users,
430+
reducing troubleshooting time and ensuring a smooth rollout.
431+
432+
These features are relevant for:
433+
434+
- SaaS (Software-as-a-Service) providers: SaaS companies offer services to other businesses (B2B) or to businesses that then serve
435+
their own customers (B2B2C). This is crucial for enabling enterprise clients to use their existing corporate identity systems
436+
(for example, Microsoft Entra ID, Okta, Google Workspace) for seamless access to the SaaS application.
437+
- Enterprise IT administrators: These individuals in your customer organizations are responsible for managing their internal
438+
identity providers and user directories. They use the onboarding portal to configure the connection to your application.
439+
- Developers and architects building multi-tenant applications: These individuals implement robust and scalable identity
440+
management for applications that serve multiple organizations. Each organization has its own authentication and user
441+
provisioning requirements.
442+
443+
Current limitations:
444+
445+
- The onboarding portal currently supports Microsoft Entra ID and Okta. You can also connect all SAML-compliant providers using
446+
the custom SAML provider option. If you don't find your provider listed, please [contact us](https://www.ory.sh/contact/). While
447+
OIDC and SCIM are part of Ory Network's capabilities, their integration with the onboarding portal is still under development.
448+
449+
### Manage onboarding portal links
450+
451+
```mdx-code-block
452+
<Tabs groupId="console-or-api">
453+
<TabItem value="console" label="Ory Console">
454+
```
455+
456+
#### Create a link
457+
458+
Go to <ConsoleLink route="project.authentication.organizations" /> and continue by configuring the selected organization.
459+
460+
In the **Edit Organization** page, under the **Onboarding Portal** section, click **Generate link** to create a link. You can then
461+
share this link with the organization admins.
462+
463+
```mdx-code-block
464+
import BrowserWindow from "@site/src/theme/BrowserWindow"
465+
466+
<BrowserWindow url="https://console.ory.sh/projects/<id>/authentication/organizations/<id>/edit">
467+
![Onboarding portal link](./_static/onboarding-portal-link.png)
468+
</BrowserWindow>
469+
```
470+
471+
```mdx-code-block
472+
</TabItem>
473+
<TabItem value="api" label="API">
474+
```
475+
476+
Onboarding portal links can also be managed using the Ory API. To authenticate your requests, create a
477+
[workspace API key](/concepts/personal-access-token#authorizing-ory-network-workspace-admin-apis). All examples below use curl to
478+
make HTTP requests. You can use any HTTP client to make these requests. Before copy & pasting the following examples, export your
479+
PROJECT_ID,ORGANIZATION_ID and WORKSPACE_API_KEY:
480+
481+
#### Create an onboarding portal link
482+
483+
```shell
484+
curl -X POST --location "https://api.console.ory.sh/projects/$PROJECT_ID/organizations/$ORGANIZATION_ID/onboarding-portal-links" \
485+
-H "Authorization: Bearer $WORKSPACE_API_KEY" \
486+
-H "Content-Type: application/json" \
487+
-d '{
488+
"expires_at": "2025-06-01T00:00:00Z",
489+
"enable_sso": true
490+
}'
491+
```
492+
493+
Result:
494+
495+
```json
496+
{
497+
"id": "d36ad207-e1a8-4eac-bc1b-c25e223cc15b",
498+
"value": "Fhca7DvuRLjQpDslMpYHMfsqSoy7vbI92PAxNlziZDidGBiW",
499+
"project_id": "836b03f7-fdce-466a-9407-8595a0f615ce",
500+
"organization_id": "517cc5e7-1ab6-4dcf-ba02-00fad003af92",
501+
"enable_sso": true,
502+
"created_at": "2025-06-02T05:23:45.299988Z",
503+
"expires_at": "2025-06-03T05:23:45Z"
504+
}
505+
```
506+
507+
The response contains a `value` token that you can use to construct the onboarding portal link as follows:
508+
509+
`https://your-slug.projects.oryapis.com/onboarding/<value>`
510+
511+
#### Delete an onboarding portal link
512+
513+
```shell
514+
curl -X DELETE --location "https://api.console.ory.sh/projects/$PROJECT_ID/organizations/$ORGANIZATION_ID/onboarding-portal-links/$ONBOARDING_PORTAL_LINK_ID" \
515+
-H "Authorization: Bearer $WORKSPACE_API_KEY"
516+
```
517+
518+
#### List onboarding portal links
519+
520+
```shell
521+
curl -X GET --location "https://api.console.ory.sh/projects/$PROJECT_ID/organizations/$ORGANIZATION_ID/onboarding-portal-links" \
522+
-H "Authorization: Bearer $WORKSPACE_API_KEY"
523+
```
524+
525+
Result:
526+
527+
```json
528+
{
529+
"links": [
530+
{
531+
"id": "d6458578-dbeb-45ee-95e7-3b98168ff313",
532+
"value": "eHSoZlTTffFP76ns0DOqBI8CT2daCXqRqO3MSVFi7eEbaRIu",
533+
"project_id": "836b03f7-fdce-466a-9407-8595a0f615ce",
534+
"organization_id": "517cc5e7-1ab6-4dcf-ba02-00fad003af92",
535+
"enable_sso": true,
536+
"created_at": "2025-06-02T05:44:24.883665Z",
537+
"expires_at": "2025-06-03T05:44:24Z"
538+
}
539+
]
540+
}
541+
```
542+
543+
```mdx-code-block
544+
</TabItem>
545+
</Tabs>
546+
```
547+
548+
#### Expiry
549+
550+
The link generated from the Ory Network Console expires in 7 days. The API allows you to set an expiration value with a minimum
551+
expiry of 1 day. Once the link expires, it no longer works. You can also delete the link and generate a new one.
552+
553+
#### Handover and using the portal
554+
555+
Once you generate the link, share it with the organization's administrator. They can access this link multiple times until its
556+
expiration to manage (add, edit, or delete) the organization's SSO connections.
557+
558+
```mdx-code-block
559+
560+
<BrowserWindow url="https://<your-slug>.projects.oryapis.com/onboarding/<unique-token>">
561+
![Onboarding portal](./_static/onboarding-portal.png)
562+
</BrowserWindow>
563+
```

0 commit comments

Comments
 (0)