配置开发者服务门户以使用 SAML 与 Edge 通信

Edge for Private Cloud v4.18.01

开发者服务门户充当 Apigee Edge 的客户端。这意味着门户并非独立系统运行。相反,门户使用的大部分信息实际上存储在 Edge 上。必要时,门户会发出从 Edge 检索信息或将信息发送到 Edge 的请求。

该门户始终与单个 Edge 组织关联。配置门户时,您可以为组织中的帐号指定基本身份验证凭据(用户名和密码),供门户用于与 Edge 通信。

如果您选择为 Edge 身份验证启用 SAML,则可以将门户配置为在向 Edge 发出请求时使用 SAML 身份验证。将门户配置为使用 SAML 后,系统会自动在 Edge 组织中创建一个新的机器用户帐号,该门户随后会使用该帐号向 Edge 发出请求。如需详细了解计算机用户,请参阅将 SAML 用于自动化任务

若要为门户提供 SAML 支持,您必须在边缘管理服务器节点上安装并配置边缘 SSO 模块。为门户启用 SAML 的一般流程如下:

  1. 按照为 Edge 安装和配置 SAML 中的说明在 Edge 上配置 SAML。注意:仍必须在 Edge 上启用基本身份验证才能安装门户。在将门户配置为使用 SAML 之前,请勿停用 Edge 上的基本身份验证。
  2. 安装门户并确保安装正常运行。请参阅安装 Edge for Private Cloud 开发者服务门户
  3. 在门户上配置 SAML。
  4. 您现在可以在 Edge 上停用基本身份验证。

为门户创建机器用户

启用 SAML 后,Edge 支持使用机器用户自动生成 OAuth2 令牌。机器用户可以获取 OAuth2 令牌,而无需指定密码。这意味着您可以完全自动执行获取和刷新 OAuth2 令牌的流程。

门户的 SAML 配置过程会自动在与该门户关联的组织中创建机器用户。然后,该门户使用此机器用户账号连接到 Edge。如需详细了解机器用户,请参阅将 SAML 用于自动化任务

门户开发者账号身份验证简介

将门户配置为使用 SAML 时,使门户能够使用 SAML 向 Edge 进行身份验证,以便该门户可以向 Edge 发出请求。不过,该门户还支持一种称为“开发者”的用户类型。

开发者构成了使用您的 API 构建应用的用户社区。应用开发者使用该门户了解您的 API、注册使用您的 API 的应用、与开发者社区互动,以及在信息中心上查看有关其应用使用情况的统计信息。

开发者登录门户时,门户便是负责对开发者进行身份验证并强制执行基于角色的权限的门户。即使您在门户和 Edge 之间启用了 SAML,该门户仍会继续使用基本身份验证。 如需了解详情,请参阅在门户与 Edge 之间通信

您还可以将门户配置为使用 SAML 对开发者进行身份验证。如需查看使用第三方 Drupal 模块启用 SAML 的示例,请参阅 https://community.apigee.com/articles/29201/sso-integration-via-saml-with-developer-portal.html

在门户上配置 SAML 以与 Edge 通信

要为门户配置 SAML,您必须创建配置文件来配置门户:

# IP address of Edge Management Server and apigee-sso node.
IP1=22.222.22.222

# URL of Edge management API.
MGMT_URL=http://$IP1:8080/v1

# Org associated with the portal.
EDGE_ORG=myorg

# Information about apigee-sso.
# Externally accessible IP or DNS of apigee-sso.
SSO_PUBLIC_URL_HOSTNAME=$IP1
SSO_PUBLIC_URL_PORT=9099
# Default is http. Set to https if you enabled TLS on apigee-sso.
SSO_PUBLIC_URL_SCHEME=http

# SSO admin credentials as set when you installed apigee-sso.
SSO_ADMIN_NAME=ssoadmin
SSO_ADMIN_SECRET=Secret123

# Default is "n" to disable SAML support.
DEVPORTAL_SSO_ENABLED=y

# The name of the OAuth client used to connect to apigee-sso. 
# The default client name is portalcli.
PORTALCLI_SSO_CLIENT_NAME=portalcli
# Oauth client password using uppercase, lowercase, number, and special chars. 
PORTALCLI_SSO_CLIENT_SECRET=Abcdefg@1

# Email address and user info for the machine user created in 
# the Edge org specified above by EDGE_ORG. 
# This account is used by the portal to make requests to Edge.
# Add this email as an org admin before configuring the portal to use SAML. 
DEVPORTAL_ADMIN_EMAIL=DevPortal_SAML@google.com
DEVPORTAL_ADMIN_FIRSTNAME=DevPortal
DEVPORTAL_ADMIN_LASTNAME=SAMLAdmin
DEVPORTAL_ADMIN_PWD=Abcdefg@1

# If set, the existing portal OAuth client is deleted and new one is created.
# The default value is "n".
# Set to "y" when you configure SAML and change the value of 
# any of the PORTALCLI_* properties.
PORTALCLI_SSO_CLIENT_OVERWRITE=y

如需在门户上启用 SAML 支持,请执行以下操作:

  1. 在 Edge 界面中,将 DEVPORTAL_ADMIN_EMAIL 指定的机器用户作为组织管理员添加到与该门户关联的组织。
    注意:机器用户尚不存在,但系统会在下一步自动创建。
  2. 运行以下命令,以在门户上配置 SAML:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-drupal-devportal configure-sso -f samlConfigFile

    其中 samlConfigFile 是 SAML 配置文件。
  3. 以门户管理员身份登录门户。
  4. 在 Drupal 主菜单中,依次选择 Configuration > Dev Portal。系统会显示门户配置屏幕,其中包括 SAML 设置:

    请注意,已选中 This org is SAML-enabled(此组织已启用 SAML)复选框,已填写边缘 SSO 模块的端点,已填写门户 OAuth 客户端的 API keyConsumer Secret 字段,并且 Test Connection(测试连接)按钮下方会显示 Connection Success(连接成功)消息。

  5. 您可以随时按测试连接按钮来重新测试连接。

如需稍后更改这些值,请更新配置文件并再次运行该命令。

在门户上停用 SAML

如果您选择停用此门户与 Edge 之间的通信的 SAML,该门户将无法再向 Edge 发出请求。开发者可以登录该门户,但无法查看产品或创建应用。

注意:如果您停用 SAML,则应将门户重新配置为使用 SAML;如果 Edge 仍配置为支持基本身份验证,请将门户配置为使用基本身份验证与 Edge 通信。如需详细了解如何使用基本身份验证,请参阅在门户与 Edge 之间通信

如需在门户上停用 SAML,请执行以下操作:

  1. 修改用于配置 SAM 的配置文件:
    DEVPORTAL_SSO_ENABLED=n
  2. 配置门户:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-drupal-devportal configure-sso -f configFile