配置门户以使用外部 IdP

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

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

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

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

  1. 按照安装和配置 Apigee SSO 中的说明安装 Apigee SSO 模块。
  2. 安装门户并确保安装正常运行。请参阅安装门户
  3. 按照本部分中的说明,在门户上配置 SAML 或 LDAP。
  4. (可选)在 Edge 上停用基本身份验证,如在 Edge 上停用基本身份验证中所述。

为该门户创建机器用户

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

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

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

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

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

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

也可以将门户配置为使用 SAML 或 LDAP 对开发者进行身份验证。如需查看使用第三方 Drupal 模块启用 SAML 的示例,请参阅通过 SAML 与开发者门户集成单点登录

门户的 IDP 配置文件

如需为门户配置外部 IDP,您必须创建配置文件来定义门户的设置。

以下示例展示了支持 IDP 的门户配置文件:

# IP address of Edge Management Server and the node on which the Apigee SSO module is installed.
IP1=22.222.22.222

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

# Organization associated with the portal.
EDGE_ORG=myorg

# Information about the Apigee SSO module (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

# Enables or disables external IDP support.
# Default is "n", which disables external IDP support.
# Change it to "y" to enable external IDs support.
DEVPORTAL_SSO_ENABLED=y

# The name of the OAuth2 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 characters.
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 an external IDP.
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 a new one is created.
# The default value is "n".
# Set to "y" when you configure the external IDP and change the value of
# any of the PORTALCLI_* properties.
PORTALCLI_SSO_CLIENT_OVERWRITE=y

如需在该门户上启用外部 IDP 支持,请执行以下操作

  1. 在 Edge 界面中,将 DEVPORTAL_ADMIN_EMAIL 指定的机器用户作为组织管理员添加到与该门户关联的组织。
  2. 执行以下命令,在门户上配置外部 IDP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-drupal-devportal configure-sso -f configFile

    其中,configFile 是上述配置文件。

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

    请注意以下几点:

    • 选中此组织已启用 SAML 复选框
    • Apigee SSO 模块的端点已填充
    • 填写门户 OAuth 客户端的 API 密钥使用方密钥字段
    • 测试连接按钮下会显示连接成功消息。
  5. 点击测试连接按钮,可以随时重新测试连接。

如需稍后更改这些值,请更新配置文件并再次执行此过程。

在门户上停用外部 IDP

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

如需在该门户上停用外部 IDP 身份验证,请执行以下操作

  1. 打开您之前用来启用外部 IDP 的配置文件。
  2. DEVPORTAL_SSO_ENABLED 属性的值设置为 n,如以下示例所示:
    DEVPORTAL_SSO_ENABLED=n
  3. 执行以下命令来配置门户:
    /opt/apigee/apigee-service/bin/apigee-service apigee-drupal-devportal configure-sso -f configFile