配置单点登录(SSO)
服务管理员可以为其 ProtoPie Enterprise 环境配置 SSO。
借助 SSO,成员可以通过所选的身份验证来源访问 ProtoPie,例如 Okta、Auth0 或 OneLogin。这些也称为身份提供商(IdP)。通过这种方式,公司可以集中管理对 ProtoPie Enterprise 的访问权限。
SSO 是一种身份验证方案,允许用户使用一组凭据登录应用和网站——无需管理多个用户名和密码。许多组织和企业已在其内部策略中纳入 SSO,以确保安全性和便利性。
ProtoPie Enterprise 支持两种 SSO 协议:
SAML 2.0
OpenID Connect(OIDC)——基于 OAuth 2.0
设置 SAML SSO
在 SAML 术语中,ProtoPie 是服务提供商(SP),需要与您的身份提供商(IdP)通信以进行身份验证。
要进行此设置,请将 ProtoPie 添加到您的 IdP。核心就是:在您的 IdP 中输入 ProtoPie 的 assertion consumer service URL(spAcsUrl),并在 ProtoPie 中输入您的 IdP 的 IdP Metadata URL。
前往 Service Admin Settings 中的 Authentication。
启用 SAML。
复制 assertion consumer URL。

如何将应用添加到您的 IdP 会因 IdP 不同而有所差异。下面我们概述了使用 Okta 的步骤。
使用 Okta 的 SAML SSO
按照 ProtoPie School 的这个简单分步视频教程,使用 Okta 设置单点登录(SSO)。
或者,您也可以按照以下说明操作:
登录 Okta 并前往 Applications 页面。
点击左上角的 Add Application。

点击右上角的 Create New App。

选择 SAML 2.0 作为 Sign on method,然后点击 Create。

在 General Settings 下输入 ProtoPie 作为应用名称。为方便起见,上传 ProtoPie logo。然后点击 Next。

针对 SAML Settings 执行以下操作。
将复制的 assertion consumer URL 粘贴到 Single sign on URL 和 Audience URI (SP Entity ID) 两个字段中。
将 Name ID format 选择为 EmailAddress。
Name 输入 firstName,Value 输入 user.firstName。然后点击 Add Another。
Name 输入 lastName,Value 输入 user.lastName。
点击 Next。

选择 I'm a software vendor. I'd like to integrate my app with Okta 并点击 Finish。

在 Okta 的 ProtoPie 应用中分配用户。前往 ProtoPie 应用并点击 Assignments 选项卡。点击 Assign 按钮分配用户。

点击 Sign On 选项卡,然后点击 View Setup Instructions。

Identity Provider Single Sign-On URL 基本上就是您所需的 IdP Metadata URL。复制它。

返回 Service Admin Settings 中的 Authentication。
如果您尚未启用,请启用 SAML。
将您复制的 IdP Metadata URL 粘贴到您的 IdP 中。
点击 Update。
使用其他 IdP 的 SAML SSO
要使用其他 IdP 设置 SAML SSO,与 Okta 一样,请使用来自 ProtoPie 的 assertion consumer service URL(spAcsUrl)以及来自您的 IdP 的 IdP Metadata URL。关于如何添加新应用,请参考您所选 IdP 的文档。
使用 Azure AD 的 SAML SSO
登录 Azure 并访问 Azure Active Directory。
在左侧选择 Enterprise applications。

选择 All applications → New application。

在 Azure AD Gallery 中搜索并选择 Azure AD SAML Toolkit 以添加它。
在 Name 字段中输入
ProtoPie。此外,您还可以选择上传 ProtoPie logo。

添加应用后,您可以按如下方式查看已添加应用的 Overview。然后可在 Getting Started 菜单中完成设置。

选择 Assign users and groups 菜单以设置用户或用户组。

选择 Set up single sign-on 菜单开始配置 SSO。选择 SAML method。

选择 Basic SAML Configuration Edit 以输入数值。输入以下值。
Identifier(Entity ID):
https://PROTOPIE_DOMAIN/spReply URL(Assertion Consumer Service URL):
https://PROTOPIE_DOMAIN/api/auth/callback/sso/saml这些值与
ProtoPie Admin Dashboard → Authentication → SAML → Assertion Consumer URL中的值相同。Sign on URL:
https://PROTOPIE_DOMAIN/api/auth/login/sso/saml

复制在 SAML Signing Certificate 中找到的 App Federation Metadata URL。

前往 ProtoPie Admin Dashboard 的 Authentication → SAML 菜单以启用 SAML,并输入以下值:
Authn Context:
urn:oasis:names:tc:SAML:2.0:ac:classes:unspecifiedIdP URL(IdP Metadata URL):输入您在上一步复制的
App Federation Metadata URL。
设置 OIDC SSO
OpenID Connect(OIDC)是一种构建在 OAuth 2.0 框架之上的身份验证协议。
按照 ProtoPie School 的这个简单分步视频教程来设置 OIDC SSO。
或者,您也可以按照以下说明操作。
要进行此设置,请将 ProtoPie 添加到您的 IdP。核心就是:在您的 IdP 中输入来自 ProtoPie 的回调 URL(loginUrl),并在 ProtoPie 中输入来自您的 IdP 的 authorization URL、token URL、client ID 和 client secret。
前往 Service Admin Settings 中的 Authentication。
启用 OIDC。
复制回调 URL。

如何将应用添加到您的 IdP 会因 IdP 不同而有所差异。下面我们概述了使用 Okta 的步骤。
使用 Okta 的 OIDC SSO
登录 Okta 并前往 Applications 页面。
点击左上角的 Add Application。

点击右上角的 Create New App 。

选择 OpenID Connect 作为 Sign on method 并点击 Create。

在 General Settings 下输入 ProtoPie 作为应用名称。为方便起见,上传 ProtoPie logo。同时,将复制的 callback URL 粘贴到 Login redirect URIs 字段。然后点击 Save。

在 Okta 的 ProtoPie 应用中分配用户。前往 ProtoPie 应用,并点击 Assignments 选项卡。点击 Assign 按钮分配用户。

点击 General 选项卡。复制这两项: client ID 和 client secret。
点击 Sign On 选项卡。您需要 Authorization URL 和 Token URL。这两个 URL 会因 IdP 而异。对于 Okta,Authorization URL 结构为 ${baseUrl}/oauth2/v1/authorize ,Token URL 结构为 ${baseUrl}/oauth2/v1/token 。将 OpenID Connect ID Token 下的 Issuer 用作 base URL。 了解更多 关于如何组合您的 base URL。

返回 Service Admin Settings 中的 Authentication。
如果您尚未启用,请启用 OIDC。
输入 authorization URL、 token URL、 client ID 和 client secret。
点击 Update。
使用其他 IdP 的 OIDC SSO
要使用其他 IdP 设置 OIDC SSO,与 Okta 一样,您需要来自 ProtoPie 的 Callback URL,以及来自您的 IdP 的 Authorization URL、Token URL、Client ID 和 Client Secret。关于如何添加新应用,请参考您所选 IdP 的文档。
管理成员
启用 SSO 后,仍需在 ProtoPie Enterprise 中管理您的成员。即使您在 IdP 中添加或移除用户,ProtoPie Enterprise 也不会自动反映这些更改。
如果您在 IdP 中更改了用户的电子邮件地址,请在 ProtoPie Enterprise 中进行相同更改。
常见问题
where-to-get-cert-data
我在哪里可以获取 Cert 数据?
ProtoPie(SP)目前不提供证书数据(X.509 证书)。
我们的服务会读取 IdP 提供的元数据,并在元数据中存在 X.509 证书时使用该证书。若不存在,则从作为 ACS URL 接收到的 SAML 响应中获取签名的 X.509 证书。
where-to-get-acs-url
我在哪里可以获取 ACS URL?
ProtoPie(SP)提供的 ACS URL 可以在管理员控制面板中按如下方式进行检查:“Assertion Consumer URL”。
i-signed-up-by-using-the-sso-can-i-log-in-by-using-email-password
我是通过 SSO 注册的。我可以使用电子邮件/密码登录吗?
如果未启用电子邮件/密码验证方式,则无法使用此方式登录。在服务管理设置的“身份验证”中启用电子邮件/密码后,您即可登录。
完成此流程后,成员可在“账户设置”中设置自己的密码。
does-protopie-enterprise-support-single-logout-slo
ProtoPie企业版是否支持单点注销(SLO)?
目前,ProtoPie企业版不支持单点注销(SLO)。
i-signed-up-to-protopie-but-my-first-and-last-names-are-different-from-those-in-idp
我注册了 ProtoPie,但我的名字和姓氏与 IdP 中的不一致。
如果您使用 SAML 或 OIDC 注册,名字和姓氏会自动加载到 IdP。
如果 SAML 值显示不正确,请检查 IdP 中的 SAML 设置。
对于 OIDC,如果该值显示不正确,请检查 IdP。
can-i-use-only-single-sign-on-instead-of-email-password
我可以只使用单点登录(SSO)而不使用电子邮件和密码吗?
如果需要,您可以使用两种验证方式中的任意一种。但是,您不能禁用所有验证方式。至少需要启用一种验证方式,即“电子邮件和密码”或 SSO。
若要仅启用 SSO 验证方式,需要将要更改配置的服务管理员设置为支持 SSO 登录。对于初始系统配置中采用“电子邮件和密码”方式设置的服务管理员,请参考以下步骤。
邀请一位将被设为服务管理员的新用户。
该用户通过 SSO 验证方式注册。
将受邀用户指定为服务管理员。
登录后,该用户禁用“电子邮件和密码”验证方式。
(可选)将现有服务管理员角色更改为成员。
what-is-authn-context
什么是 AuthnContext(与 AuthnContextClassRef 相同)?
在 SAML 请求中,它是一种让 SP 请求 IDP 使用特定身份验证机制对用户进行身份验证的方式。这是可选的,取决于您的 IdP 的设置选项,并且需要您的 IdP 管理员确认。
urn:oasis:names:tc:SAML:2.0:ac:classes:X509
urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
do-i-need-to-use-idp-not-protopie-enterprise-for-member-management
我是否需要使用 IdP 而不是 ProtoPie企业版来进行成员管理?
不,你不需要。即使你在 IdP 中添加或删除用户,这也不会自动反映到 ProtoPie 企业版。
what-is-the-entity-id-value
实体 ID 值是什么?
实体 ID 是 SAML 实体的全局唯一名称,即您的身份提供商(IdP)或服务提供商(SP)。实体 ID 就是名称。它不必是可解析的 Web 地址。 SAML 实体 ID 必须是一个 URI。
ProtoPie Enterprise 采用以下格式(ACS URL)
企业云:https://sample.protopie.cloud/api/auth/callback/sso/saml
企业本地部署:{PROTOPIE_HOST}/api/auth/callback/sso/saml
can-i-log-into-protopie-if-i-change-my-email-address-in-idp
如果我在 IdP 中更改了电子邮件地址,还能登录 ProtoPie 吗?
仅当 IdP 和 ProtoPie Enterprise 中注册的电子邮件地址相同时,系统才会将该用户识别为同一用户。因此,如果在 IdP 中更改电子邮件地址,您需要将 ProtoPie 中注册的电子邮件地址更改为与 IdP 中相同的地址。
当服务管理员更改所有成员的电子邮件地址时,请参考以下流程。
在 IdP 中更改除服务管理员账户之外的所有电子邮件地址。
由服务管理员在 ProtoPie 的管理仪表板中更改所有电子邮件地址。
服务管理员可前往 账户设置 → 个人资料,更改其自己的账户。
通过访问待更改电子邮件地址对应的邮件服务并查收确认邮件,完成电子邮件地址更改。
注意:如果服务管理员的验证方式设置为 SSO 登录,请按照此流程并更改 IdP 电子邮件地址。
