配置门户以使用 SAML 与 Edge 通信

适用于私有云的 Edge v4.18.05

Apigee Developer Services 门户(简称“门户”)充当 Apigee 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 的示例,请参阅通过 SAML 与开发者门户集成 SSO

在门户上配置 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 密钥Consumer secret 字段已填写,并且 Test Connection 按钮下方显示了 Connection Successful 消息。

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

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

在门户上停用 SAML

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

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

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