红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看我们的
CTO Chris Wright 信息
。
第 1 章 为 3scale 管理的 API 创建开发者门户概述
您的 3scale 开发人员门户是 API 用户使用的网站:
注册以访问 3scale 管理的上游 API
有关如何使用上游 API 的文档
3scale 提供了一个示例开发者门户,它包括了大多数 API 供应商要在其开发者门户中实施的功能。这个原生开发人员门户使用示例 Echo API 来演示典型的开发人员门户的结构。在浏览原生开发人员门户后,您需要做相应的修改信息,以便您了解如何创建自己的开发人员门户。
了解和修改原生开发人员门户没有先决条件。但是,在修改原生开发人员门户以创建自己的开发人员门户后,还必须在为 API 用户打开开发人员门户前实施单点登录工作流和验证。
1.1. 为创建开发者门户提供 3scale 编辑环境
在开始创建开发人员门户前,请先浏览 3scale 提供的 Echo API 开发人员门户示例。Echo API 开发人员门户是创建自己的开发人员门户的起点。您不会从头开始创建开发者门户。相反,您可以修改原生 Echo API 开发人员门户,以创建具有您想要的外观和感觉的开发者门户。
在 3scale 管理门户中,展开顶部的上下文选择器,再单击
Audience
。
在左侧的导航树中,展开
Developer Portal
,再单击
Content
。这显示了用于创建开发人员门户的主要编辑环境:
在
Root
下,3scale 显示 Developer Portal 资源层次结构:
文档
、
主页
和
Show
是开发人员门户的基础页面。对于每个页面,向下滚动以查看定义页面内容的 HTML。
这些页面下的文件夹包含将 3scale 资源拉取到开发者门户的页面。例如,
Account
文件夹包含用于显示并编辑 3scale 帐户的页面,该帐户时在管理门户中创建的 3scale 管理员。使用这些页面作为起点,并根据需要对其进行修改。
在右上角,通过
New Page
下拉菜单可以添加一个页面、布局、部分、部分、文件或 portlet。选择每个选项查看您提供的信息来创建。
在选择了
Developer Portal > Content
时,将资源层次结构向下滚动到几乎底部,直到您看到
Layouts
并点
Main layout
。
向上滚动到顶部,可以看到
布局"Main Layout"
标题。
在内部标题和系统名称后,您可以看到
Liquid
已启用。liquid 是 3scale 用于显示和处理 3scale 系统中的大部分数据的框架。定义页面内容的代码包含 Liquid 标记和 HTML。您可以在
Draft
选项卡中看到它,其中包含 Developer Portal 页的主布局的代码。
在左侧的导航树中,在
Developer Portal > Content
下,单击每个子类别来探索它:Drafts、
Redirect
s
、Type、
Logo
、
Feature Visibility
、
ActiveDocs
。
在左侧的导航树中,单击
Developer Portal
下的导航树,单击
Visit Portal
,这是最后一个条目。
新的浏览器选项卡显示 3scale 提供的 Echo API 开发者门户的开发版本的网站。您可以使用此开发版本来查看 3scale 原生开发人员门户。然后,您可以迭代地自定义和查看对原生开发人员门户所做的更改,以创建自己的开发人员门户。
您知道,这是开发人员门户的开发版本,因为它在顶端的
Draft|Published
右侧有一个深灰色的面板。Draft 视图支持迭代/递增改进。当 Draft 版本查找并的行为方式时,您可以发布它。
右侧的面板列出了提供当前页面内容的元素:
Layout Main layout
Partial Submenu
Partial analytics
点
Page Homepage
。新的浏览器标签页会显示 Developer Portal 编辑环境,其中包含
Page 'Homepage'
用于编辑。
返回到 Echo API 开发人员门户的开发版本,再单击右上角的
SIGN IN
,它会显示 API 用户用来登录到您的开发人员门户的
SIGN IN
页面。
在右边的灰色面板中,模板列表下方,是一个用户名和密码,可用于模拟使用开发人员门户的签名:
在
SIGN IN
页面中,在
USERNAME OR EMAIL
字段中输入
John
,这是右侧灰色面板中列出的用户名。
在
PASSWORD
字段中,输入
123456
,这是灰色面板中列出的密码。
点
Sign In
显示 Developer Portal,因为您的 API 用户会看到它。
继续探索原生开发人员门户,如您想要的那样。当您熟悉编辑环境和 Echo API 开发人员门户的开发版本时,请遵循
修改 3scale 原生开发人员门户
的步骤。
在本节中,您将了解将哪些设置配置为调整注册工作流。
注册工作流是您通过开发人员门户提供的开发人员体验的关键方面。此过程可以从完全自动和自助服务到其他极端服务,要求完全控制谁可以访问各种粒度级别。
3scale 平台允许您结合使用帐户(可选)、服务(可选)和应用程序计划对 API 进行建模。对于每个计划,您可以控制是否有您操作的批准。另外,您还要确定是否有默认值,或者开发人员是否需要执行下一步并做出选择。
对于最大自动化和自助服务,请删除所有批准步骤并启用所有可能的默认计划。这样,可以签发密钥以便在注册后立即提供对 API 的访问权限。
此功能仅对企业计划提供。
Red Hat Single Sign-On(RH-SSO)是一个集成的 Sign-On 解决方案(SSO),它可与 3scale 一起使用时,允许您使用任何可用的 RH-SSO 身份提供程序和用户联合选项来验证您的开发人员。
有关 Red Hat Single Sign-On 版本与 3scale 兼容的信息,请参阅支持的
配置
页面。
5.4.1. 开始前
在将 Red Hat Single Sign-On 与 3scale 集成前,您必须有一个正常工作的红帽单点登录实例。有关安装说明,请参阅 Red Hat Single Sign-On 文档:
安装 RH-SSO 7.2
5.4.2. 配置 RH SSO 以验证开发人员门户
执行以下步骤来配置 Red Hat Single Sign-On:
按照
Red Hat Single Sign-On 文档
所述创建域。
将客户端添加到
客户端
并单击
创建
。
使用以下字段和值填写表单:
客户端 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
以保存更改。
如果您管理 Red Hat Single Sign-On local 数据库中的用户,请确保将该用户的
Email Verified
属性设置为
ON
。
如果使用
User Federation
,则在为 3scale SSO 集成创建的客户端中,您可以通过将令牌名称设置为
email_verified
,并将声明值设置为
true
来配置硬编码声明。
(可选)配置
org_name
mapper。
当用户在 3scale 中注册时,会要求用户使用 Organization Name 值填写注册表单。为了通过 Red Hat Single Sign-On 透明登录,不需要在开发者门户上填写注册表格,您需要配置一个额外的
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
。
如果 Red Hat Single Sign-On 中的用户具有
org_name
属性,3scale 将自动创建一个帐户。如果没有,则会要求用户在创建帐户之前指示机构名称。另外,也可以创建类型
硬编码声明的
映射程序,将机构名称设置为使用 Red Hat Single Sign-On 帐户登录的所有用户的硬编码值。
要测试集成,您需要添加用户。要实现此目的,请导航到
Users
,单击
Add user
,再填写所需字段。请注意,当您在 Red Hat Single Sign-On 中创建用户时,将 Email Verified 属性(
email_verified
)设置为
ON
,否则用户将不会在 3scale 中激活。
使用 Red Hat Single Sign-On 作为身份代理
您可以使用 Red Hat Single Sign-On 作为身份代理,或者将其配置为联合外部数据库。有关如何配置这些的更多信息,请参阅 Red Hat Single Sign-On 文档来了解
身份代理
和
用户联合
。
如果您决定使用红帽单点登录作为身份代理,并且希望开发人员能够跳过 RH-SSO 和 3scale 帐户创建步骤,我们建议以下配置:在提供的示例中,我们使用 GitHub 作为我们的身份提供程序。
在 Red Hat Single Sign-On 中,在
身份提供程序
中配置 GitHub 后,转至名为
Mappers
的选项卡,再单击
Create
。
为它指定一个名称,以便可以识别它。
在
映射类型
中,选择
Attribute Importer
。
在
Social Profile JSON Field Path
中添加公司,它是 GitHub 上属性的名称。
在
User Attribute Name
中,添加 org_name,这是我们在 Red Hat Single Sign-On 中调用属性的方式。
Red Hat Single Sign-On 需要第一个和姓氏以及电子邮件以及必填项。3scale 需要电子邮件地址、用户名和机构名称。因此,除了为机构名称配置映射程序外,还能够跳过这两个用户,请确保:
在 IdP 帐户中,它们会设置其名字和姓氏。
在 IdP 账户中,可以访问其电子邮件地址。例如在 GitHub 中,如果您的电子邮件地址设置为私有,则不会共享它。
5.4.3. 配置 3scale 以验证开发人员门户
作为 API 供应商,配置 3scale 以允许使用红帽单点登录(RH-SSO)进行身份验证。
默认不通过 RH-SSO 进行身份验证。RH-SSO 仅适用于企业 3scale 帐户,因此您需要要求您的帐户管理器通过 RH-SSO 启用身份验证。
您的企业 3scale 帐户设置为启用 RH-SSO。
配置 RH SSO 以验证开发人员门户
后,您已了解以下信息:
客户端
:在 RH-SSO 中客户端的名称
客户端机密
: RH-SSO 中的客户端 secret
realm :
Realm
name 和 URL 地址到您的 RH-SSO 帐户
在 3scale 管理门户中,选择
Audience > Developer Portal > SSO Integrations
。
点
Red Hat Single Sign-On
。
指定您在
第 5.4.2 节 “配置 RH SSO 以验证开发人员门户”
中配置 RH-SSO 客户端的详细信息:客户端、客户端 secret 和 realm。
要保存您的更改,请点击
Create Red Hat Single Sign-On
第 6 章 Red Hat Single Sign On for Developer Portal
Red Hat Single Sign On(RH SSO)允许您管理多个独立系统的访问控制。在本指南后,您将能够允许登录系统的用户自动登录到您的 3scale 开发者门户,而无需再次提示您登录。
本文介绍了如何使用您网站的现有用户凭据来自动登录到您的 3scale 支持的开发人员门户。
此功能适用于已拥有其 API 用户(用户名和密码)身份的 API 供应商 - 例如,API 供应商也是身份提供程序。
6.1. 在 3scale 平台中创建用户
首先,API 使用者必须在开发人员门户中有一个帐户。您可以使用帐户管理 API 将用户导入到 3scale,或者手动创建它们。在您的管理门户中找到 3scale ActiveDocs 的账户管理 API,位于您的管理门户,位于
右上角的文档(question mark icon(?)→ 3scale API Docs
部分。
6.2. 请求登录链接
用户存在后,您可以使用 API 请求调用来生成带有内置 SSO 令牌的 URL:
curl -X POST -d "provider_key=YOUR_PROVIDER_KEY&username=USERNAME&expires_in=60" https://YOUR_ADMIN_PORTAL.3scale.net/admin/api/sso_tokens.xml
<!-- if we are inside '/documentation' URL -->
<li class="{% if request.request_uri contains "/documentation" %}active{% endif %}"><!-- add the active class to the menu item -->
<a href="/documentation">Documentation</a>
</li>
9.1.3. 与 CSS/JS 一起使用
liquid markup 不仅可与 HTML 配合使用,您可以轻松地将其与 CSS 和/或 JavaScript 代码组合,以便更多控制。若要启用 liquid in a JS,将其创建为页面页面,并遵循与您为普通页面启用相同的步骤。完成后,您将能够在 CSS 中添加一些条件标记,或者在 JavaScript 中使用服务器端数据。只需记得将页面的内容类型设置为 CSS 或 JS。
最重要的一点是确定要隐藏的内容。为此,请使用 Firebug(或其他开发人员工具,如 Chrome 开发人员工具或 Opera Dragonfly)。选择所需元素,并在控制台中点击它并选择 Copy CSS 路径。这样,您可以保存准确的 CSS 路径,以简化操作。请记住,如果元素是侧栏导航小部件的一部分,您还必须指定列表中的位置。对于这一点,您可以使用"+"选择器(例如,选择第 3 个部分),例如:ul + li + li + li + li + li)或 :nthild(n)CSS3 pseudoclass。
And that’s it!
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at
http://creativecommons.org/licenses/by-sa/3.0/
. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux
® is the registered trademark of Linus Torvalds in the United States and other countries.
Java
® is a registered trademark of Oracle and/or its affiliates.
XFS
® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL
® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js
® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.