5.4. 通过 Red Hat Single sign-on 和 Red Hat build of Keycloak 启用和禁用身份验证
此功能仅对企业计划提供。
Red Hat Single sign-on 和 Red Hat build of Keycloak 是一个集成的单点登录解决方案(SSO),与 3scale 结合使用时,您可以使用任何可用的 Red Hat 单点登录身份代理和用户联合选项验证您的开发人员。
如需了解单点登录的版本与 3scale 兼容的信息,请参阅支持的配置页面。https://access.redhat.com/articles/2798521
5.4.1. 开始前
在将单点登录与 3scale 集成前,您必须有一个正常工作的 Red Hat 单点登录或红帽构建的 Keycloak 实例。有关安装说明,请参阅 Red Hat Single sign-on 文档 或 Red Hat build of Keycloak 文档。
5.4.2. 配置单点登录以验证开发人员门户
执行以下步骤来配置单点登录:
- 创建一个域,如 Red Hat Single sign-on 文档 或 Red Hat build of Keycloak 文档所述。
- 将客户端添加到客户端并单击创建。
使用以下字段和值填写表单:
- 客户端 ID :为您的客户端输入所需的名称。
-
启用 :切换到
ON
。 -
许可需要 :切换到
OFF
。 - 客户端协议 :选择 openid-connect。
- 访问类型 :选择 机密。
-
标准化流启用 :切换到
ON
。 -
根 URL :输入您的 3scale 管理门户 URL。这应该是您用来登录开发人员门户的 URL 地址,例如
:https://yourdomain.3scale.net
或您的自定义 URL。 有效的重定向 URL :通过
/*
再次键入开发人员门户,如下所示:https://yourdomain.3scale.net/*
。所有其他参数都应留空,或切换到
OFF
。
通过以下步骤获取客户端 secret:
- 前往您刚才创建的客户端。
- 点 Credentials 标签页。
在 Client Authenticator 字段中选择 Client Id 和 Secret。
配置
email_verified
mapper。3scale 要求将用户数据的email_verified
claim 设置为true
。要将 "电子邮件验证"用户属性 映射到email_verified
声明:- 转至 客户端的映射程序 选项卡。
单击 Add Builtin。
选择 电子邮件验证 选项,然后单击 Add selected 以保存更改。
如果您在单点登录本地数据库中管理用户,请确保将用户的 Email Verified 属性设置为
ON
。如果使用 用户联邦,则在为 3scale SSO 集成创建的客户端中,您可以通过将令牌名称设置为
email_verified
,并将声明值设置为true
来配置硬编码声明。
(可选)配置
org_name
mapper。
当用户在 3scale 中注册时,会要求用户使用 Organization Name 值填写注册表单。为了通过单点登录为用户透明注册,无需在开发人员门户上填写注册表格,您需要配置一个额外的org_name
映射器:- 转至 客户端的映射程序 选项卡。
- 点 Create。
按如下所示填写mapper 参数:
-
名称 :键入任何所需名称,例如
org_name
。 -
许可需要 :切换到
OFF
。 - 映射器类型 :选择 User Attribute。
- 用户属性: 键入 org_name。
- 令牌声明名称 :键入 org_name。
- claim JSON Type: 选择 String。
-
添加到 ID 令牌 :切换到
ON
。 -
添加到访问令牌 :切换到
ON
。 -
添加到 userinfo :切换到
ON
。 -
Multivalued: 切换到
OFF
。
-
名称 :键入任何所需名称,例如
点 Save。
如果单点登录中的用户具有属性
org_name
,3scale 将能够自动创建帐户。如果没有,则会要求用户在创建帐户之前指示机构名称。或者,也可以创建类型为 Hardcoded claim 的映射程序,将机构名称设置为使用单点登录帐户登录的所有用户的硬编码值。
-
要测试集成,您需要添加用户。要实现此目的,请导航到 Users,单击 Add user,再填写所需字段。请注意,当您在 Red Hat 单点登录中创建用户时,电子邮件验证属性(
email_verified
)应设置为ON
,否则不会在 3scale 中激活该用户。
使用 Red Hat Single sign-on 或 Red Hat build of Keycloak 作为身份代理
您可以使用 Red Hat 单点登录和红帽构建的 Keycloak 作为身份代理,或者将其配置为联合外部数据库。有关如何配置这些的更多信息,请参阅 Red Hat Single sign-on 或 Red Hat build of Keycloak and user federation documentation for Red Hat single sign-on 或 Red Hat build of Keycloak 的身份代理文档。
如果您决定将单点登录用作身份代理,并且希望开发人员能够跳过 SSO 和 3scale 帐户创建步骤,我们建议以下配置:在提供的示例中,我们使用 GitHub 作为我们的身份提供程序。
在单点登录中,在 身份提供程序 中配置 GitHub 后,转至名为 Mappers 的选项卡,再单击创建。
- 为它指定一个名称,以便可以识别它。
- 在映射类型中,选择 Attribute Importer。
- 在 Social Profile JSON Field Path 中添加公司,它是 GitHub 上属性的名称。
在 User Attribute Name 中,添加 org_name,这是我们在 Red Hat Single sign-on 中调用属性的方式。
注意Red Hat Single sign-on 和 Red Hat build of Keycloak 需要名字和姓氏以及电子邮件以及必填字段。3scale 需要电子邮件地址、用户名和机构名称。因此,除了为机构名称配置映射程序外,还能够跳过这两个用户,请确保:
- 在 IdP 帐户中,它们会设置其名字和姓氏。
- 在 IdP 账户中,可以访问其电子邮件地址。例如,在 GitHub 中,如果您将电子邮件地址设置为私有,则不会共享它。
5.4.3. 配置 3scale API 管理以验证开发人员门户
作为 API 提供程序,配置 3scale 以允许使用红帽单点登录进行身份验证。
默认情况下不启用通过 Red Hat Single sign-on 进行身份验证。Red Hat 单点登录仅适用于企业 3scale 帐户,因此您需要要求您的帐户管理器通过 Red Hat Single sign-on 启用身份验证。
先决条件
- 您的企业 3scale 帐户设置为启用 Red Hat 单点登录。
配置 Red Hat Single sign-on 后了解以下详情来验证开发人员门户 :
客户端
Red Hat 单点登录中的客户端名称。
客户端 secret
Red Hat 单点登录中的客户端 secret。
realm
您的红帽单点登录帐户的 realm 名称和 URL 地址。
流程
- 在 3scale 管理门户中,选择 Audience > Developer Portal > SSO Integrations。
- 点 Red Hat Single Sign-On。
- 指定您在配置 Red Hat Single Sign-On 中配置的 Red Hat Single Sign-On 客户端的详情,以验证开发人员门户 : client、client secret 和 realm。
- 要保存您的更改,请点击 Create Red Hat Single Sign-On。