OpenID Connect SSO 概述
OpenID Connect (OIDC) 是一种 基于 OAuth 2.0 的身份验证协议,已被各大技术公司采用。
基本 SSO
无论您选择了哪种功能,基本 SSO 的设置要求都是一样的。添加会员积分或信用卡集成功能将需要额外的信息。
设置要求
要正确设置模板网站的 OIDC SSO 访问权限,我们需要以下内容:
- API(授权、令牌、userProfile、JWKS)
- ClientId
- 客户端密钥
- ResponseMode
- isNonceEnabled
- customerDetailsAPIKey(如有)
授权流程

授权端点
GET /authorize 端点用于身份验证和授权。用户登录后,它会返回授权码或验证码。这是一个浏览器重定向,引导您提交凭据进行身份验证。
请求参数
| 参数 | 说明 | 数据类型 | 示例值 | 是否必填? |
|---|---|---|---|---|
client_id | 用于识别客户端。必须与身份供应商 (IDP) 中预先注册的值一致。通过手动客户端注册或动态客户端注册 API 获取。 | 字符串 | 是 | |
nonce | 用于减轻重放攻击。该值将在 ID 令牌中返回。 | 字符串 | 是 | |
prompt | 验证所需的交互类型。如果为空,则用户必须登录(如果尚未通过身份验证)。如果为“无”,则身份提供商不会提示登录,但如果已登录则会返回授权码,否则会返回错误。 | 字符串 | 有效值: 无或空 | — |
redirect_uri | 发送授权码或令牌的回调位置。必须与客户端注册时在 IDP 中预先注册的值一致。 | 字符串 | 是 | |
response_type | code (IDP) 值。 | 字符串 | 是 | |
response_mode | 返回授权响应的方式。 | 字符串 | 有效值: query | — |
scope | 访问令牌,用于获取个人资料详细信息。身份验证请求必填。 | 字符串 | OpenID、profile 和 email | 是 |
state | 互动状态。该值会在令牌中返回,使用户能够点击进入、验证并返回到他们最初感兴趣的页面。该值可包含字母数字、逗号、句点、下划线和连字符。 | 字符串 | 是 | |
ui_locales | 用户偏好的用户界面语言和脚本。 | 字符串 | en_CA, fr_CA | — |
audience | 收件人。 | 字符串 | 由合作伙伴定义 | — |
响应参数
| 参数 | 说明 | 数据类型 | 是否必填? |
|---|---|---|---|
code | 用于识别客户端的授权码。它必须与 IDP 中预先注册的值一致。通过手动客户端注册或动态客户端注册 API 获取。 | 字符串 | 是 |
state | 互动状态。该值会在令牌中返回,使用户能够点击进入、验证并返回到他们最初感兴趣的页面。该值可包含字母数字、逗号、句点、下划线和连字符。 | 字符串 | 是 |
授权示例 URL
https://example.com/authorize?client_id={clientID}&response_type=code&state=d6b93799-404b-4205-9bb3-c579b1180428&scope=openid email profile&nounce=234567687867&redirect_uri=https://{ExpediaDomain}/sso/auth示例回调 URL
https://{ExpediaDomain}/sso/auth?code=12345678&state=d6b93799-404b-4205-9bb3-c579b1180428