---
title: "在 Okta 中设置 SSO"
description: "在 Okta 中注册 Bird SAML 或 OIDC 连接，将 Okta 的字段名称映射到 Bird 的字段名称，选择 NameID 格式，并轮换签名证书。"
canonical: "https://bird.com/zh-sg/wendang/knowledge-base/account-security/sso-okta"
---

# 在 Okta 中设置 SSO

本页介绍 SSO 连接中 Okta 一侧的配置。Bird 一侧（验证域名、测试、激活和强制 SSO）对所有提供商都相同，详见 [SSO 与用户配置](/docs/knowledge-base/account-security/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](/docs/knowledge-base/account-security/sso) 中有完整流程说明。

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

| Bird 中 **Register these with your identity provider** 下的名称 | Okta 中的名称                            |
| --------------------------------------------------------------- | ---------------------------------------- |
| Assertion Consumer Service URL                                  | Single sign-on URL                       |
| Entity ID                                                       | Audience 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 格式与连接所期望的格式不匹配时也会拒绝。

决定前请先阅读[成员如何被识别](/docs/knowledge-base/account-security/sso)：对于通过该连接登录的任何人，标识符都是永久的，因此使用不透明的 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 激活新证书。此拒绝表现为签名错误，双方一致后即恢复正常。

## 后续步骤

- [SSO 与用户配置](/docs/knowledge-base/account-security/sso)：验证域名、测试连接并强制 SSO
- [在 Google Workspace 中设置 SSO](/docs/knowledge-base/account-security/sso-google-workspace)
- [在 Microsoft Entra ID 中设置 SSO](/docs/knowledge-base/account-security/sso-microsoft-entra-id)

## Related resources

- [Should I use an API key or an OAuth token, and how do I rotate one?](/explained/platform/api-key-or-oauth-token-and-how-do-i-rotate-one) (answer)
- [Authentication & API keys](/docs/guides/authentication) (docs)

[Get an implementation brief](/learn/workspace?topic=account-access)
