![]() |
企業(yè)SSO服務(wù)-WorkOS
專用API
【更新時間: 2024.09.01】
提供一體化單點登錄(SSO)解決方案,使企業(yè)應(yīng)用能輕松集成多種身份提供商的登錄功能。開發(fā)者能快速添加企業(yè)級SSO支持,用戶通過SAML和OpenID Connect協(xié)議無縫登錄,減少開發(fā)時間,并提升企業(yè)應(yīng)用的適用性。
$ 125 每個連接 / 月
去服務(wù)商官網(wǎng)采購>
|
瀏覽次數(shù)
32
采購人數(shù)
0
試用次數(shù)
0
收藏
×
完成
取消
×
書簽名稱
確定
|
- API詳情
- 定價
- 使用指南
- 常見 FAQ
- 關(guān)于我們
- 相關(guān)推薦


什么是WorkOS的企業(yè)SSO服務(wù)?
企業(yè)SSO服務(wù)-WorkOS是一種專為企業(yè)級應(yīng)用設(shè)計的單點登錄解決方案,旨在簡化多身份提供商集成的復(fù)雜性。通過提供一個統(tǒng)一的API接口,WorkOS支持與20多個身份提供商的集成,包括流行的SAML和OpenID Connect協(xié)議。它允許企業(yè)用戶使用其現(xiàn)有的企業(yè)憑據(jù)訪問各種應(yīng)用,減少了多重登錄的需求,并提高了安全性和用戶體驗。WorkOS還支持開發(fā)者自定義用戶體驗和數(shù)據(jù)庫管理,使其能夠輕松融入現(xiàn)有的應(yīng)用架構(gòu)中。
什么是WorkOS的企業(yè)SSO服務(wù)接口?
WorkOS的企業(yè)SSO服務(wù)有哪些核心功能?
- 支持SAML和OpenID Connect協(xié)議:為使用這些協(xié)議的任何身份提供者提供SSO。
- 快速集成:在幾天內(nèi)支持您的第一位企業(yè)客戶。
- 支持20+身份提供者:包括Google和Microsoft等流行的OAuth提供商。
- 持久導(dǎo)航狀態(tài):編碼有用的信息以幫助在重定向之間恢復(fù)應(yīng)用程序狀態(tài)。
- 多種編程語言支持:包括Node.js、Ruby、Python、PHP和Java。
- Magic Link無密碼登錄:提供簡單的登錄選項,同時保障賬戶安全。
WorkOS的企業(yè)SSO服務(wù)的技術(shù)原理是什么?
WorkOS的企業(yè)SSO服務(wù)的核心優(yōu)勢是什么?
- 99.99% 正常運行時間:為企業(yè)客戶保證正常運行時間 SLA
- 高級支持:專家指導(dǎo)的集成支持和響應(yīng)時間 SLA
- 定制企業(yè)計劃:根據(jù)您的業(yè)務(wù)需求量身定制的基于合同的計劃
- 簡化集成:通過單一API同時支持SAML和OpenID Connect協(xié)議,實現(xiàn)快速而簡便的身份驗證集成。
- 廣泛支持:支持20多個主流身份提供商,確保企業(yè)可以靈活選擇和整合各種身份驗證服務(wù)。
在哪些場景會用到WorkOS的企業(yè)SSO服務(wù)?
1. 企業(yè)級應(yīng)用開發(fā):在開發(fā)需要與多個企業(yè)身份提供商集成的應(yīng)用時,WorkOS簡化了SSO的實現(xiàn)過程,使開發(fā)者無需手動處理復(fù)雜的SAML和OpenID Connect協(xié)議集成,節(jié)省了開發(fā)時間并提高了安全性。
2. 增強(qiáng)企業(yè)安全性:對于需要加強(qiáng)登錄安全的企業(yè),WorkOS允許用戶通過現(xiàn)有的企業(yè)身份驗證系統(tǒng)登錄應(yīng)用,減少了管理多個憑據(jù)的復(fù)雜性,并提高了整體系統(tǒng)的安全性和一致性。
3. 用戶管理優(yōu)化:在需要為企業(yè)用戶提供個性化體驗的場景中,WorkOS支持自定義登錄流程和數(shù)據(jù)管理,使開發(fā)者能夠創(chuàng)建符合企業(yè)需求的用戶界面,同時保持對數(shù)據(jù)的完全控制。




1.將 SSO 添加到您的應(yīng)用程序
讓我們將 SSO 身份驗證工作流程構(gòu)建到您的應(yīng)用程序中。
安裝 WorkOS SDK
WorkOS 提供多種流行編程語言的本機(jī) SDK。選擇下面的語言以查看使用您的應(yīng)用程序語言的說明。
設(shè)定密鑰
要調(diào)用 WorkOS,請?zhí)峁?API 密鑰,在某些情況下還需要提供客戶端 ID。將這些值存儲為托管機(jī)密,例如WORKOS_API_KEY和WORKOS_CLIENT_ID ,并將它們作為環(huán)境變量或根據(jù)您的首選項直接傳遞到應(yīng)用程序的配置中。
環(huán)境變量
WORKOS_API_KEY='sk_example_123456789'
WORKOS_CLIENT_ID='client_123456789'
添加端點以啟動 SSO
通過 WorkOS API 啟動 SSO 的端點負(fù)責(zé)將身份驗證工作流程的其余部分移交給 WorkOS。下面顯示了幾個配置選項。
您可以使用可選的state參數(shù)對任意信息進(jìn)行編碼,以幫助恢復(fù)重定向之間的應(yīng)用程序狀態(tài)。
添加端點以啟動 SSO
通過 WorkOS API 啟動 SSO 的端點負(fù)責(zé)將身份驗證工作流程的其余部分移交給 WorkOS。下面顯示了幾個配置選項。
您可以使用可選的state參數(shù)對任意信息進(jìn)行編碼,以幫助恢復(fù)重定向之間的應(yīng)用程序狀態(tài)。
import type { NextApiRequest, NextApiResponse } from 'next';
import { WorkOS } from '@workos-inc/node';
const workos = new WorkOS(process.env.WORKOS_API_KEY);
const clientId = process.env.WORKOS_CLIENT_ID;
export default (_req: NextApiRequest, res: NextApiResponse) => {
// Use the Test Organization ID to get started. Replace it with
// the user’s real organization ID when you finish the integration.
const organization = 'org_test_idp';
// The callback URI WorkOS should redirect to after the authentication
const redirectUri = 'https://dashboard.my-app.com';
const authorizationUrl = workos.sso.getAuthorizationUrl({
organization,
redirectUri,
clientId,
});
res.redirect(authorizationUrl);
};
const express = require('express');
const { WorkOS } = require('@workos-inc/node');
const app = express();
const workos = new WorkOS(process.env.WORKOS_API_KEY);
const clientId = process.env.WORKOS_CLIENT_ID;
app.get('/auth', (_req, res) => {
// Use the Test Organization ID to get started. Replace it with
// the user’s real organization ID when you finish the integration.
const organization = 'org_test_idp';
// The callback URI WorkOS should redirect to after the authentication
const redirectUri = 'https://dashboard.my-app.com';
const authorizationUrl = workos.sso.getAuthorizationUrl({
organization,
redirectUri,
clientId,
});
res.redirect(authorizationUrl);
});
添加回調(diào)端點
接下來,我們添加重定向端點,該端點將在用戶通過其身份提供商進(jìn)行身份驗證后處理來自 WorkOS 的回調(diào)。此端點應(yīng)將 WorkOS 返回的授權(quán)代碼與經(jīng)過身份驗證的用戶的配置文件進(jìn)行交換。授權(quán)碼的有效期為10分鐘。
import type { NextApiRequest, NextApiResponse } from 'next';
import { WorkOS } from '@workos-inc/node';
const workos = new WorkOS(process.env.WORKOS_API_KEY);
const clientId = process.env.WORKOS_CLIENT_ID;
export default async (req: NextApiRequest, res: NextApiResponse) => {
const { code } = req.query;
const { profile } = await workos.sso.getProfileAndToken({
code,
clientId,
});
// Use the Test Organization ID to get started. Replace it with
// the user’s real organization ID when you finish the integration.
const organization = 'org_test_idp';
// Validate that this profile belongs to the organization used for authentication
if (profile.organizationId !== organization) {
return res.status(401).send({
message: 'Unauthorized',
});
}
// Use the information in `profile` for further business logic.
res.redirect('/');
};
2.配置重定向 URI
轉(zhuǎn)到重定向儀表板中的頁面來配置允許的重定向 URI。這是您在上一節(jié)中使用的回調(diào)端點。
多租戶應(yīng)用程序通常會指定一個重定向 URI。您可以為單租戶應(yīng)用程序設(shè)置多個重定向 URI。您需要確保指定在 WorkOS 客戶端調(diào)用中使用哪個重定向 URI 來獲取授權(quán) URL。
身份提供商發(fā)起的 SSO
通常,您在 WorkOS 儀表板中配置的默認(rèn)重定向 URI 將用于所有身份提供商發(fā)起的 SSO 會話。這是因為 WorkOS 客戶端不用于啟動身份驗證流程。
但是,您的客戶可以指定一個單獨的重定向 URI,作為其 SAML 設(shè)置中的RelayState參數(shù),用于所有 IdP 發(fā)起的會話。
3.端到端測試
如果您按照本指南操作,則可以使用暫存環(huán)境中可用的測試組織來啟動 SSO。這樣,您就可以端到端地測試您的集成了。
詳情查看鏈接:https://workos.com/docs/sso/1-add-sso-to-your-app/set-secrets




實現(xiàn)平等進(jìn)入企業(yè)市場
WorkOS 致力于幫助每家軟件公司做好企業(yè)準(zhǔn)備。我們相信,任何軟件公司的應(yīng)用都可以被世界上最大的企業(yè)所接受。
網(wǎng)絡(luò)
解鎖了平等分配。WorkOS
解鎖了平等訪問。
2019年成立 WorkOS 由 Michael Grinich 于 2019 年創(chuàng)立,他認(rèn)識到滿足企業(yè)的復(fù)雜需求對于為軟件公司創(chuàng)造可持續(xù)的長期增長至關(guān)重要。 帶著這種認(rèn)識,WorkOS 誕生了。 |
![]() |
![]() |
現(xiàn)代 API 用于授權(quán)和用戶身份 WorkOS 是一個現(xiàn)代 API 平臺,使任何開發(fā)人員能夠快速構(gòu)建和交付復(fù)雜的企業(yè)功能:用戶管理、單點登錄 (SAML) 、目錄同步 (SCIM)和管理門戶(企業(yè)入門) 。 WorkOS 加速了 SaaS 公司的企業(yè)就緒之旅,因此他們的應(yīng)用程序具有大型組織中“全面”采用的所有功能。 我們的客戶獲勝。他們的客戶獲勝。 |




1.將 SSO 添加到您的應(yīng)用程序
讓我們將 SSO 身份驗證工作流程構(gòu)建到您的應(yīng)用程序中。
安裝 WorkOS SDK
WorkOS 提供多種流行編程語言的本機(jī) SDK。選擇下面的語言以查看使用您的應(yīng)用程序語言的說明。
設(shè)定密鑰
要調(diào)用 WorkOS,請?zhí)峁?API 密鑰,在某些情況下還需要提供客戶端 ID。將這些值存儲為托管機(jī)密,例如WORKOS_API_KEY和WORKOS_CLIENT_ID ,并將它們作為環(huán)境變量或根據(jù)您的首選項直接傳遞到應(yīng)用程序的配置中。
環(huán)境變量
WORKOS_API_KEY='sk_example_123456789'
WORKOS_CLIENT_ID='client_123456789'
添加端點以啟動 SSO
通過 WorkOS API 啟動 SSO 的端點負(fù)責(zé)將身份驗證工作流程的其余部分移交給 WorkOS。下面顯示了幾個配置選項。
您可以使用可選的state參數(shù)對任意信息進(jìn)行編碼,以幫助恢復(fù)重定向之間的應(yīng)用程序狀態(tài)。
添加端點以啟動 SSO
通過 WorkOS API 啟動 SSO 的端點負(fù)責(zé)將身份驗證工作流程的其余部分移交給 WorkOS。下面顯示了幾個配置選項。
您可以使用可選的state參數(shù)對任意信息進(jìn)行編碼,以幫助恢復(fù)重定向之間的應(yīng)用程序狀態(tài)。
import type { NextApiRequest, NextApiResponse } from 'next';
import { WorkOS } from '@workos-inc/node';
const workos = new WorkOS(process.env.WORKOS_API_KEY);
const clientId = process.env.WORKOS_CLIENT_ID;
export default (_req: NextApiRequest, res: NextApiResponse) => {
// Use the Test Organization ID to get started. Replace it with
// the user’s real organization ID when you finish the integration.
const organization = 'org_test_idp';
// The callback URI WorkOS should redirect to after the authentication
const redirectUri = 'https://dashboard.my-app.com';
const authorizationUrl = workos.sso.getAuthorizationUrl({
organization,
redirectUri,
clientId,
});
res.redirect(authorizationUrl);
};
const express = require('express');
const { WorkOS } = require('@workos-inc/node');
const app = express();
const workos = new WorkOS(process.env.WORKOS_API_KEY);
const clientId = process.env.WORKOS_CLIENT_ID;
app.get('/auth', (_req, res) => {
// Use the Test Organization ID to get started. Replace it with
// the user’s real organization ID when you finish the integration.
const organization = 'org_test_idp';
// The callback URI WorkOS should redirect to after the authentication
const redirectUri = 'https://dashboard.my-app.com';
const authorizationUrl = workos.sso.getAuthorizationUrl({
organization,
redirectUri,
clientId,
});
res.redirect(authorizationUrl);
});
添加回調(diào)端點
接下來,我們添加重定向端點,該端點將在用戶通過其身份提供商進(jìn)行身份驗證后處理來自 WorkOS 的回調(diào)。此端點應(yīng)將 WorkOS 返回的授權(quán)代碼與經(jīng)過身份驗證的用戶的配置文件進(jìn)行交換。授權(quán)碼的有效期為10分鐘。
import type { NextApiRequest, NextApiResponse } from 'next';
import { WorkOS } from '@workos-inc/node';
const workos = new WorkOS(process.env.WORKOS_API_KEY);
const clientId = process.env.WORKOS_CLIENT_ID;
export default async (req: NextApiRequest, res: NextApiResponse) => {
const { code } = req.query;
const { profile } = await workos.sso.getProfileAndToken({
code,
clientId,
});
// Use the Test Organization ID to get started. Replace it with
// the user’s real organization ID when you finish the integration.
const organization = 'org_test_idp';
// Validate that this profile belongs to the organization used for authentication
if (profile.organizationId !== organization) {
return res.status(401).send({
message: 'Unauthorized',
});
}
// Use the information in `profile` for further business logic.
res.redirect('/');
};
2.配置重定向 URI
轉(zhuǎn)到重定向儀表板中的頁面來配置允許的重定向 URI。這是您在上一節(jié)中使用的回調(diào)端點。
多租戶應(yīng)用程序通常會指定一個重定向 URI。您可以為單租戶應(yīng)用程序設(shè)置多個重定向 URI。您需要確保指定在 WorkOS 客戶端調(diào)用中使用哪個重定向 URI 來獲取授權(quán) URL。
身份提供商發(fā)起的 SSO
通常,您在 WorkOS 儀表板中配置的默認(rèn)重定向 URI 將用于所有身份提供商發(fā)起的 SSO 會話。這是因為 WorkOS 客戶端不用于啟動身份驗證流程。
但是,您的客戶可以指定一個單獨的重定向 URI,作為其 SAML 設(shè)置中的RelayState參數(shù),用于所有 IdP 發(fā)起的會話。
3.端到端測試
如果您按照本指南操作,則可以使用暫存環(huán)境中可用的測試組織來啟動 SSO。這樣,您就可以端到端地測試您的集成了。
詳情查看鏈接:https://workos.com/docs/sso/1-add-sso-to-your-app/set-secrets






實現(xiàn)平等進(jìn)入企業(yè)市場
WorkOS 致力于幫助每家軟件公司做好企業(yè)準(zhǔn)備。我們相信,任何軟件公司的應(yīng)用都可以被世界上最大的企業(yè)所接受。
網(wǎng)絡(luò)
解鎖了平等分配。WorkOS
解鎖了平等訪問。
2019年成立 WorkOS 由 Michael Grinich 于 2019 年創(chuàng)立,他認(rèn)識到滿足企業(yè)的復(fù)雜需求對于為軟件公司創(chuàng)造可持續(xù)的長期增長至關(guān)重要。 帶著這種認(rèn)識,WorkOS 誕生了。 |
![]() |
![]() |
現(xiàn)代 API 用于授權(quán)和用戶身份 WorkOS 是一個現(xiàn)代 API 平臺,使任何開發(fā)人員能夠快速構(gòu)建和交付復(fù)雜的企業(yè)功能:用戶管理、單點登錄 (SAML) 、目錄同步 (SCIM)和管理門戶(企業(yè)入門) 。 WorkOS 加速了 SaaS 公司的企業(yè)就緒之旅,因此他們的應(yīng)用程序具有大型組織中“全面”采用的所有功能。 我們的客戶獲勝。他們的客戶獲勝。 |