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

Edge for Private Cloud v. 4.17.09

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

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

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

如需为门户提供 SAML 支持,您必须已在 Edge 管理服务器节点上安装并配置 Edge 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 主菜单中,依次选择配置 > 开发者门户。系统会显示门户配置屏幕,其中包含 SAML 设置:

    请注意,此组织已启用 SAML 对应的复选框已选中,Edge SSO 模块的端点已填写,门户 OAuth 客户端的 API 密钥和使用方密钥字段已填写,并且测试连接按钮下方显示连接成功消息。

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

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

在门户上停用 SAML

如果您选择停用 SAML 以进行门户与 Edge 之间的通信,则门户将无法再向 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