Sign inGet Started

在 Okta 中设置 SSO

本页介绍 SSO 连接中 Okta 一侧的配置。Bird 一侧(验证域名、测试、激活和强制 SSO)对所有提供商都相同,详见 SSO 与用户配置。

Okta 和 Bird 各自需要对方的值,因此从哪里开始取决于协议。操作时请同时打开两边。

SAML

SAML 请从 Bird 开始。SAML 连接的 Entity ID 和 Assertion Consumer Service URL 由连接本身派生,因此先以 I have not set up my provider yet 创建连接,注册随后显示的值,再回到 Supply the details。不使用占位值设置 SAML 中有完整流程说明。

Okta 的字段名称与 Bird 的不一致。其中两个非常相似,容易误换,而一旦交换,登录响应会被发送到无法处理它的 URL。

Bird 中 Register these with your identity provider 下的名称Okta 中的名称
Assertion Consumer Service URLSingle sign-on URL
Entity IDAudience URI (SP Entity ID)
Sign-in URL for this connection不是 Okta 的字段。将其作为书签提供给成员

Okta 的 Single sign-on URL 对应的是 Bird 的 Assertion Consumer Service URL,而不是 Bird 的登录 URL。如果将登录 URL 粘贴到该处,Okta 会将每次响应发送到错误的端点,登录将失败。

通过电子邮件地址识别成员

在 SAML 应用的 Name ID format 中选择 EmailAddress,并将 Application username 设置为希望 Bird 用来关联每个帐户的值。Bird 拒绝 Unspecified,并且当响应中的 NameID 格式与连接所期望的格式不匹配时也会拒绝。

决定前请先阅读成员如何被识别:对于通过该连接登录的任何人,标识符都是永久的,因此使用不透明的 application username,同时将地址作为 email 属性单独发送,是更安全的选择。

断言有效期

Okta 签发的断言有效期为签发时间前五分钟到签发时间后五分钟。Bird 接受此窗口,无需配置。

OIDC

OIDC 请从 Okta 开始。Bird 需要 issuer、client ID 和 client secret 才能创建 OIDC 连接,因此先在 Okta 注册应用。Bird 的 Redirect URI 对所有连接都相同,并且在 Add connection 中创建任何内容之前就会显示,因此可以提前注册。

在 Okta 中创建一个 OIDC Web 应用,将其 client ID 和 secret 复制到 Bird 中,并将 Okta 的 issuer 填入 Issuer。Bird 使用 client_secret_basic 向令牌端点进行身份验证。

将 Bird 的 Redirect URI 注册为应用的登录重定向 URI。

Okta 的应用磁贴

若要让成员从 Okta 控制面板启动登录,请设置:

  • Login initiated by:Either Okta or App
  • Application visibility:向用户显示的磁贴
  • Login flow:Redirect to app to initiate login (OIDC Compliant)
  • Initiate login URI:Bird 中该连接的 Initiate login URI

选择符合 OIDC 规范的流程。Okta 的 Send ID Token directly to app (Okta Simplified) 流程会将令牌直接发送到 Bird 而不是重定向,Bird 不接受该方式。

分配应用

未在 Okta 中分配到 Bird 应用的成员会被 Okta 拒绝,而不是被 Bird 拒绝。Bird 会将此拒绝报告为来自身份提供商,因此在重新检查连接本身的设置之前,请先检查 Okta 中的分配和条件访问策略。

轮换签名证书

先在 Okta 中轮换,再在 Bird 中轮换。Bird 根据连接中保存的证书进行验证,因此如果 Bird 连接仅携带新证书而 Okta 仍使用旧证书签名,则每次登录都会被拒绝,直到 Okta 激活新证书。此拒绝表现为签名错误,双方一致后即恢复正常。

后续步骤