Okta 挂到群晖单点登录后面:IdP 三件套先出、ACS 与 Audience 回填的五步走
痛点场景
公司身份体系在 Okta 上,存储在群晖,两边的账号各认各的门。想让员工登 Okta 时直接用群晖 SSO Server 发起的认证——也就是把群晖放在 Okta 后面当身份提供者(IdP)——这个方向官方知识库是支持的,但它的配置顺序和给 Jenkins、GitLab 配 SSO 明显不同:不是在 SSO Server 上一次建完应用,而是两边各建一半、互相交换信息。
先记前置条件:
- SSO 服务器:运行 DSM 7.2 或 DSM Enterprise 1.0(PAS)(含后续版本)的群晖存储系统;
- SSO 客户端:Okta。
官方也注明:部分说明基于 Okta 自身文档,实际步骤可能随 Okta 界面更新有出入。
第 1 步:SSO Server 常规设置定基调
在 SSO 服务器上前往 SSO Server > 常规设置:
- 帐户类型二选一:**Domain/LDAP/local(目录和本地用户)**允许本地用户加外部目录用户走 SSO;**Domain/LDAP(仅目录用户)**只放外部目录用户。
- 单击设置,输入将用作 SSO 登录页面的域名并保存。
- 在服务器 URL 字段再次输入该域名。
第 2 步:从 SSO Server 取出 IdP 三件套
前往 SSO Server > 服务,勾选启用 SAML 服务器,然后复制三项信息,后面去 Okta 要逐项粘贴:
- IdP 单点登录 URL
- IdP 实体 ID
- 证书
这一步和给其他应用配 SSO 的差别在于:此刻还不建应用程序——Okta 的回调地址要先从 Okta 那边生成,顺序不能倒。
第 3 步:在 Okta 上添加 SAML 2.0 IdP
另开标签页,用管理员帐户登录 Okta:
- 前往 Admin Console > Security > Identity Providers。
- 单击 Add identity provider,选择 Add SAML 2.0 IdP。
- 按官方口径配置九项:
| 选项 | 怎么填 |
|---|---|
| 名称 | 为群晖 SSO Server 命名此 IdP 配置文件 |
| IdP 用户名 | idpuser.subjectNameId |
| IdP Issuer URI | 第 2 步复制的 IdP 实体 ID |
| IdP 单点登录 URL | 第 2 步复制的 IdP 单点登录 URL |
| IdP 签名证书 | 上传第 2 步获取的证书 |
| 请求绑定 | HTTP REDIRECT |
| 请求签名 | Sign SAML Authentication Requests |
| 响应签名验证 | Response |
| 响应签名算法 | SHA-1 |
- 单击 Finish 后,复制概览页面上的 Assertion Consumer Service URL(ACS URL)和 Audience URI——这两项就是回填 SSO Server 的钥匙。
九项参数里最容易被略过的是响应签名算法 SHA-1 与请求绑定 HTTP REDIRECT 这类"看起来能默认"的项;对不齐时 Okta 侧不会立刻报错,而是登录跳转后签名校验失败,排查起来绕远。
第 4 步:回 SSO Server 建应用程序
回到 SSO 服务器,前往 SSO Server > 应用程序,选择 SAML 并单击下一步,按官方口径填写:
| 选项 | 怎么填 |
|---|---|
| 应用程序名称 | 为 Okta 命名配置文件 |
| 重定向 URI | 第 3 步复制的 Okta Assertion Consumer Service URL |
| 应用程序 ID | 第 3 步复制的 Okta Audience URI |
| Name ID 格式 | Persistent |
| 默认 Name ID | 官方建议选择帐户 |
填完保存。至此两边的信息闭环完成:Okta 知道去哪里认证(三件套),SSO Server 也知道认证完把人送回哪里(ACS URL 与 Audience URI)。
第 5 步:验证登录链路
打开浏览器隐私窗口,前往 Okta 登录页面,选择 SSO 作为身份验证方式,群晖 SSO 页面会弹出;输入有权访问 SSO 服务的用户凭据,配置正确即登入 Okta。
验证时留个心眼:用的帐户要落在第 1 步选定的帐户类型范围内,否则会在群晖 SSO 页就被拦下,容易被误判为参数配错。
官方注意事项
官方文末提醒与其它 SSO 对接篇一致:不建议把电子邮件地址设为默认 Name ID;确需使用时,要确保邮箱在目录服务中不可修改,避免身份锚点漂移。
身份平台之间的对接,难从来不在某一格参数,而在两边信息交换的顺序。诚鑫致达科技做这类双平台单点登录联调时,都会先把"谁出什么、谁收什么"画成一张单向流动的纸再动手,五步走完一次过。