MenuToggle Menu

单点登录(SSO)

服务管理员可以为其ProtoPie企业环境配置SSO。

用户可以通过选择Okta, Auth0, or OneLogin等身份验证源来对ProtoPie进行访问。这些身份验证源也被称为身份提供者(IdP)。通过这种方式,管理者能更轻易地管控团队成员的访问权限以及访问方式。

单点登录(SSO)作为一种身份验证方案,允许用户仅用一套登录凭证即可登录多个网站和应用程序,免去了管理多个用户名和密码造成的烦扰。很多组织和企业均已在其内部管理策略中融入了单点登录(SSO),以确保全方位的安全性与便利性。

ProtoPie支持两种不同的单点登录(SSO)协议:

  • SAML 2.0
  • OpenID Connect (OIDC) - 建立在OAuth 2.0之上

设置SAML SSO

在SAML(安全断言标记语言)的标准描述中,ProtoPie作为服务提供方(SP),需要与你所选择的身份提供者(IdP)进行通讯以完成身份验证。

如需使用这一功能,首先应将ProtoPie添加到你所选择的身份提供者中。对于不同的IdP,这一操作也不尽相同。但归根结底你需要从ProtoPie中取得一个名为“断言消费者服务链接(spAcsUrl)"的链接并将其填入IdP中,再将IdP中显示的元数据链接(Metadata URL)填入到ProtoPie中。

  1. 在服务管理员设置页面中进入身份验证(Authentication)
  2. 勾选启用SAML
  3. 复制断言消费者服务链接(spAcsUrl)
[object Object]

随使用的IdP不同,将应用添加到IdP的方法有不同。以下以Okta为例概述添加的步骤。

通过Okta设置SAML SSO

  1. 登录Okta并进入应用(Applications)页面
  2. 点击左上角的“添加应用(Add Application)”按钮
    [object Object]
  3. 点击右上角的创建新应用(Create New App)按钮
    [object Object]
  4. 验证方法栏选择SAML 2.0,然后点击创建(Create)按钮。
    [object Object]
  5. 在通用设置(General settings)页面中的应用名称(App Name)栏内输入ProtoPie作为应用的名称。此外出于使用方便起见,我们建议在这一步中同时上传ProtoPie logo作为应用logo。然后点击下一步。
    [object Object]
  6. 以下是SAML设置过程中所要进行的步骤
    1. 复制“断言消费者服务链接(spAcsUrl)”并将其粘贴到Single sign on URL栏以及Audience URI (SP Entity ID)栏。
    2. 在Name ID format中选择Email Address
    3. 在下方的Name中输入firstName,其后部的Value栏输入user.firstName,然后点击Add Another按钮。
    4. 在新的一行中,Name中输入lastName,其后部的Value栏输入user.lastName。
    5. 点击下一步
      [object Object]
  7. 选择 I'm a software vendor. I'd like to integrate my app with Okta 并点击完成(Finish)按钮。
    [object Object]
  8. 然后需要在Okta中为ProtoPie应用分配用户。进入ProtoPie应用并点击分配(Assignments)选项卡,在点击分配(Assign)按钮即可进行用户分配。
    [object Object]
  9. 点击登录(Sign On)选项卡,然后点击下方的View Setup Instructions按钮。
    [object Object]
  10. 此时出现的信息中,Identity Provider Single Sign-On URL即为前述所说的IdP元数据URL(Metadata URL),复制这条URL。
    [object Object]
  11. 回到进入服务管理员设置中的身份验证(Authentication)界面。
  12. 启用SAML
  13. 将复制的Identity Provider Single Sign-On URL添加到IdP Metadata URL栏中。
  14. 添加更新(Update)

通过其他IdP设置SAML SSO

与Okta的方式同理,要通过其他身份提供者(IdP)进行SAML SSO的设置,就必须在ProtoPie中获取到断言消费者服务URL(spAcsUrl),并在所选IdP中获取到IdP元数据URL(Metadata URL)。这一过程可以参考所选的IdP提供的文档中关于添加新应用的部分。

SAML SSO with Azure AD

1. 登录Azure后,进入Azure Active Directory

2. 选择左侧的Enterprise applications

[object Object]

3. 选择All applications New application

[object Object]

4. 在Azure AD Gallery中搜索Azure AD SAML Toolkit,选中并新建。

[object Object]

5. 创建Application后即可查看如下所示所创建的Application的Overview。之后可在Getting Started菜单中完成设置。

[object Object]

6. 选择Assign users and groups菜单,设置用户或用户群组。

[object Object]

7. 选择Set up single sign on菜单,开始设置SSO。在此选择SAML method

[object Object]

8. 选择Basic SAML Configuration Edit,输入值。设置值如下所示。

  • Identifier (Entity ID): https://PROTOPIE_DOMAIN/sp
  • Reply 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
[object Object]

9. 复制SAML Signing CertificateApp Federation Metadata URL值。

[object Object]

10. 在ProtoPie Admin Dashboard的Authentication → SAML菜单中,激活SAML,输入下列值。

  • Authn Context: urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
  • IdP URL (IdP Metadata URL):输入之前所复制的App Federation Metadata URL值。

设置OIDC SSO

OpenID Connect(OIDC)是一种建立在OAuth 2.0框架之上的身份验证协议。

如果使用这一功能,首先应将ProtoPie添加到你的IdP中。对于不同的IdP,这一操作也不同。但归根结底你需要从ProtoPie中获得回调地址链接(loginUrl)并填入到IdP中,同时从IdP中获得身份验证URL(authorization URL)、token URL、客户端密钥并填入ProtoPie中。

  1. 在服务管理员设置页面中进入身份验证(Authentication)
  2. 勾选启用OIDC
  3. 回调地址链接(loginUrl)
[object Object]

随使用的IdP不同,将应用添加到IdP的方法有不同。以下以Okta为例概述添加的步骤。

通过Okta设置OIDC SSO

  1. 登录Okta并进入应用(Applications)页面
  2. 点击左上角的“添加应用(Add Application)”按钮
    [object Object]
  3. 点击右上角的创建新应用(Create New App)按钮
    [object Object]
  4. 验证方法栏选择OpenID Connect,然后点击创建(Create)按钮。
    [object Object]
  5. 在通用设置(General settings)页面中的应用名称(App Name)栏内输入ProtoPie作为应用的名称。此外出于使用方便起见,我们建议在这一步中同时上传ProtoPie logo作为应用logo,并且将先前复制的回调URL(loginUrl)地址粘贴到Login redirect URIs栏中,然后点击保存(Save)。
    [object Object]
  6. 然后需要在Okta中为ProtoPie应用分配用户。进入ProtoPie应用并点击分配(Assignments)选项卡,在点击分配(Assign)按钮即可进行用户分配。
    [object Object]
  7. 点击通用(General)选项卡,在后续步骤中会同时需要在此显示的鉴权凭证:客户端ID和客户端密钥,因而在此务必将两者同时复制出来。
    [object Object]
  8. 点击登录(Sign On)选项卡,你需要身份验证URL(authorization URL)、token URL。Okta的情况,身份验证URL(authorization URL)的结构为${baseUrl}/oauth2/v1/authorize, token URL的结构为${baseUrl}/oauth2/v1/token 。使用OpenID Connect ID Token的Issuer值作为基本URL,构成基本URL的方法请参照这里
    [object Object]
  9. 回到进入服务管理员设置中的身份验证(Authentication)界面
  10. 启用OIDC
  11. 填写身份验证URL、token URL、客户端ID和客户端密钥
  12. 添加更新(Update)

通过其他IdP设置OIDC SSO

通过其他IdP设置OIDC SSO与Okta的方式同理,要通过IdP进行OIDC SSO的设置,就不需在ProtoPie中获取到回调URL(loginUrl),并在IdP中获取到IdP元数据URL(Metadata URL)。这一过程可以参考所选的IdP提供的文档中关于添加新应用的部分。

管理成员

启用SSO后,仍然可以在ProtoPie企业中管理您的成员。即使在IdP中添加或删除用户,这些更改也不会自动反映到ProtoPie企业版中。

如果在IdP中更改用户的电子邮件地址,请在ProtoPie企业版中也进行同样的变更操作。

FAQs

  • 我可以使用单点登录(SSO)来代替邮箱&密码登录吗?

    根据需要,您可以选择两种验证方法中的一种。但至少需要启用一种验证方法,不能禁用所有的验证方法。

    为了只启用SSO验证方法,要更改配置的服务管理员需启用SSO登录。当邮箱&密码验证方法为初始系统配置时,请参考以下步骤。

    1. 邀请一个将被设置为服务管理员的新用户
    2. 用户通过SSO验证方法注册
    3. 将被邀请的用户指定为服务管理员
    4. 该用户登录后禁用邮箱&密码验证方法
    5. 将现有的服务管理员角色改为成员(可选)
  • 我是否需要使用IdP来管理成员,而不是ProtoPie企业管理平台?

    不需要。即使在IdP中添加或删除用户,这也不会自动同步到ProtoPie企业管理平台。

  • 如果我在IdP中更改了邮箱,我还可以登录ProtoPie吗?

    只有当IdP邮箱和ProtoPie企业成员邮箱地址一致时,该用户才被识别为同一用户。因此,如果更改了IdP中的邮箱地址,则需更改ProtoPie企业成员的邮箱地址。

    当服务管理员更改所有成员的邮箱地址时,请参考以下步骤。

    1. 更改IdP中除服务管理员帐户之外的所有邮箱地址
    2. 由服务管理员更改ProtoPie企业版管理后台上的所有邮箱地址
    3. 服务管理员可以通过在账号设置中更改自己的账号
    4. 确认新邮箱中的邮件来完成邮箱地址更改。

    注意如果服务管理员的验证方法设置为SSO登录,请按照此过程更改IdP的邮箱地址。

  • 我使用了SSO注册,我还可以使用邮箱&密码登录吗?

    如果未启用邮箱&密码验证方法,则无法使用该方法登录。在服务管理设置中启用邮箱&密码验证方法后,可以登录。

    完成此过程后,在账号设置中设置密码。

  • 我注册了ProtoPie,但我的姓名与IdP中的不同。

    如果您使用SAML或OIDC注册,那么姓名将自动加载到IdP。

    • 如果SAML的值显示不正确,请检查IdP中的SAML设置。
    • 如何OIDC的值显示不正确,请检查IdP。
  • ProtoPie企业版是否支持单点退出(SLO)?

    目前,ProtoPie企业版不支持单点退出(SLO)。

  • 什么是Entity ID值?

    Entity ID是SAML entity的唯一名称,即用户的身份提供商(IdP)或服务提供商(SP)。Entity ID是名称,它不必是可解析的网络位置。SAML entity ID 必须是URI。

    在ProtoPie Enterprise中遵循如下格式。(ACS URL)

    • Enterprise Cloud: https://sample.protopie.cloud/api/auth/callback/sso/saml
    • Enterprise On-Premise: {PROTOPIE_HOST}/api/auth/callback/sso/saml
  • 在哪里可以获取证书数据?

    ProtoPie(SP)目前不提供证书数据(X.509证书)。

    我们的服务读取IdP提供的元数据,如果元数据中存在X.509证书,则使用该证书。如果不存在,则从作为ACS URL接收的SAML响应中获取签名的X.509证书。

  • 在哪里可以获取 ACS URL?

    ProtoPie(SP)提供的ACS URL可以在管理主控板上确认“Assertion Consumer URL”。

  • 什么是AuthnContext(与 AuthnContextClassRef相同)?

    在SAML请求中,它是SP要求IdP用特定的认证机制来认证用户的一种方法。这是可选的,取决于IdP的设置选项,需要与IdP管理员确认。

    主要使用以下值(X509、unspecified 等等)。

    • urn:oasis:names:tc:SAML:2.0:ac:classes:X509
    • urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
Back To Top