重置边缘密码

Edge for Private Cloud v. 4.16.09

安装完成后,您可以重置 OpenLDAP、Apigee Edge 系统管理员、Edge 组织用户和 Cassandra 密码。

重置 OpenLDAP 密码

根据您的 Edge 配置,OpenLDAP 可以安装为:

  • 在管理服务器节点上安装的单个 OpenLDAP 实例。例如,在 2 节点、5 节点或 9 节点 Edge 配置中。
  • 在管理服务器节点上安装了多个 OpenLDAP 实例,并配置了 OpenLDAP 复制。例如,在 12 节点 Edge 配置中。
  • 在各自节点上安装了多个 OpenLDAP 实例,并配置了 OpenLDAP 复制。例如,在 13 节点 Edge 配置中。

重置 OpenLDAP 密码的方式取决于您的配置。

对于安装在管理服务器上的单个 OpenLDAP 实例,请执行以下操作:

  1. 在管理服务器节点上,运行以下命令以创建新的 OpenLDAP 密码:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-openldap change-ldap-password -o oldPword -n newPword
  2. 运行以下命令,存储新密码以供 Management Server 访问:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server store_ldap_credentials -p newPword

    此命令会重启 Management Server。

在管理服务器节点上安装了 OpenLDAP 的 OpenLDAP 复制设置中,请在两个管理服务器节点上按照上述步骤更新密码。

在 OpenLDAP 复制设置中,如果 OpenLDAP 位于管理服务器以外的节点上,请确保先在两个 OpenLDAP 节点上更改密码,然后在两个管理服务器节点上更改密码。

重置系统管理员密码

重置系统管理员密码需要您在两个位置重置密码:

  • 管理服务器
  • 界面

警告:您应在重置系统管理员密码之前停止 Edge 界面。由于您首先在管理服务器上重置了密码,因此界面可能会在短时间内仍使用旧密码。如果界面使用旧密码发出三次以上的调用,则 OpenLDAP 服务器会将系统管理员账号锁定三分钟。

如需重置系统管理员密码,请执行以下操作:

  1. 在界面节点上,停止 Edge 界面:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-ui stop
  2. 在 Management Server 上,运行以下命令以重置密码:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_sysadmin_password -o currentPW -n newPW
  3. 修改用于安装 Edge 界面以设置以下属性的静默配置文件:
    APIGEE_ADMINPW=newPW
    SMTPHOST=smtp.gmail.com
    SMTPPORT=465
    SMTPUSER=foo@gmail.com
    SMTPPASSWORD=bar
    SMTPSSL=y


    请注意,在传递新密码时,您必须添加 SMTP 属性,因为界面上的所有属性都会重置。
  4. 使用 apigee-setup 实用程序通过配置文件重置 Edge 界面上的密码:
    > /<inst_root>/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
  5. 在界面节点上启动 Edge 界面:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-ui start
  6. (仅当在界面上启用了 TLS 时)按照为管理界面配置 TLS 中的说明,在 Edge 界面上重新启用 TLS。

在具有多个管理服务器的 OpenLDAP 复制环境中,在一个管理服务器上重置密码会自动更新其他管理服务器。不过,您必须单独更新所有 Edge 界面节点。

重置组织用户密码

如需重置组织用户的密码,请使用 apigee-servce 实用程序调用 apigee-setup:

/<inst_root>/apigee/apigee-service/bin/apigee-service apigee-setup reset_user_password
 [-h] 
 [-u USER_EMAIL] 
 [-p USER_PWD]
 [-a ADMIN_EMAIL] 
 [-P APIGEE_ADMINPW] 
 [-f configFile]

例如:

> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-setup reset_user_password -u user@myCo.com -p foo12345 -a admin@myCo.com -P adminPword 

下面显示了一个可与“-f”选项搭配使用的示例配置文件:

USER_NAME= user@myCo.com
USER_PWD= "foo12345"
APIGEE_ADMINPW= adminPword

您还可以使用更新用户 API 更改用户密码。

系统管理员和组织用户密码规则

使用此部分可为 API 管理用户强制执行所需的密码长度和强度。这些设置使用一系列预配置(且编号唯一)的正则表达式来检查密码内容(例如大写、小写、数字和特殊字符)。将这些设置写入 /<inst_root>/apigee/customer/application/management-server.properties 文件。如果该文件不存在,请创建它。

修改 management-server.properties 后,重启管理服务器:

> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server restart

然后,您可以通过对正则表达式的不同组合进行分组来设置密码强度评级。例如,您可以确定,至少包含一个大写字母和一个小写字母的密码会获得“3”的强度评分,但至少包含一个小写字母和一个数字的密码会获得更高的评分“4”。

媒体资源

说明

conf_security_password.validation.minimum.
password.length=8

conf_security_password.validation.default.rating=2

conf_security_password.validation.minimum.
rating.required=3

您可以使用这些选项来确定有效密码的总体特征。密码强度的默认最低评分(在下表中说明)为 3。

请注意,password.validation.default.rating=2 低于所需的最低评分,这意味着,如果输入的密码不符合您配置的规则,则密码评分为 2,因此无效(低于最低评分 3)。

以下是用于识别密码特征的正则表达式。请注意,每个文件都有编号。例如,“password.validation.regex.5=…”是表达式 5。您将在该文件的后续部分中使用这些数字来设置不同的组合,以确定密码的整体强度。

conf_security_password.validation.regex.1=^(.)\\1+$

1 - 所有字符重复

conf_security_password.validation.regex.2=^.*[a-z]+.*$

2 – 至少一个英文小写字母

conf_security_password.validation.regex.3=^.*[A-Z]+.*$

3 – 至少一个大写字母

conf_security_password.validation.regex.4=^.*[0-9]+.*$

4 - 至少一个数字

conf_security_password.validation.regex.5=^.*[^a-zA-z0-9]+.*$

5 – 至少一个特殊字符(不包括下划线 _)

conf_security_password.validation.regex.6=^.*[_]+.*$

6 - 至少一个下划线

conf_security_password.validation.regex.7=^.*[a-z]{2,}.*$

7 – 多个小写字母

conf_security_password.validation.regex.8=^.*[A-Z]{2,}.*$

8 - 多个大写字母

conf_security_password.validation.regex.9=^.*[0-9]{2,}.*$

9 - 多个数字

conf_security_password.validation.regex.10=^.*[^a-zA-z0-9]{2,}.*$

10 - 包含多个特殊字符(不包括下划线)

conf_security_password.validation.regex.11=^.*[_]{2,}.*$

11 - 多个下划线

以下规则根据密码内容确定密码强度。 每条规则都包含上一部分中的一个或多个正则表达式,并为其分配一个数字强度。系统会将密码的数字强度与此文件顶部的 conf_security_password.validation.minimum.rating.required 数字进行比较,以确定密码是否有效。

conf_security_password.validation.rule.1=1,AND,0

conf_security_password.validation.rule.2=2,3,4,AND,4

conf_security_password.validation.rule.3=2,9,AND,4

conf_security_password.validation.rule.4=3,9,AND,4

conf_security_password.validation.rule.5=5,6,OR,4

conf_security_password.validation.rule.6=3,2,AND,3

conf_security_password.validation.rule.7=2,9,AND,3

conf_security_password.validation.rule.8=3,9,AND,3

每条规则都有编号。例如,“password.validation.rule.3=…”是规则 3。

每个规则都使用以下格式(等号右侧):

<regex-index-list>,<AND|OR>,<rating>

regex-index-list 是正则表达式列表(按上一部分中的编号),以及 AND|OR 运算符(表示考虑列出的所有或任何表达式)。

rating 是为每条规则指定的数字强度评分。

例如,规则 5 表示任何包含至少一个特殊字符或一个下划线的密码都会获得 4 的强度评分。使用 password.validation.minimum。
rating.required=3,则评分为 4 的密码有效。

conf_security_rbac.password.validation.enabled=true

启用单点登录 (SSO) 时,将基于角色的访问控制密码验证设置为 false。默认值为 true。

重置 Cassandra 密码

默认情况下,Cassandra 在停用身份验证的情况下提供。如果您启用身份验证,它会使用名为“cassandra”且密码为“cassandra”的预定义用户。您可以使用此账号,为此账号设置其他密码,或创建新的 Cassandra 用户。使用 Cassandra CREATE/ALTER/DROP USER 语句添加、移除和修改用户。

如需了解如何启用 Cassandra 身份验证,请参阅启用 Cassandra 身份验证。

如需重置 Cassandra 密码,您必须:

  • 在任意一个 Cassandra 节点上设置密码,该密码将广播到环中的所有 Cassandra 节点
  • 使用新密码更新每个节点上的管理服务器、消息处理器、路由器、Qpid 服务器、Postgres 服务器和 BaaS 堆栈

如需了解详情,请参阅 http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/cqlCommandsTOC.html。

如需重置 Cassandra 密码,请执行以下操作:

  1. 使用 cqlsh 工具和默认凭据登录任何一个 Cassandra 节点。您只需在一个 Cassandra 节点上更改密码,该密码就会广播到环中的所有 Cassandra 节点:
    > /<inst_root>/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p cassandra

    其中:
    • cassIP 是 Cassandra 节点的 IP 地址。
    • 9042 是 Cassandra 端口。
    • 默认用户为 cassandra。
    • 默认密码为 cassandra。如果您之前更改过密码,请使用当前密码。
  2. 在 cqlsh> 提示符处运行以下命令以更新密码:
    cqlsh> ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';

    如果新密码包含单引号字符,请在前面加上单引号字符进行转义。
  3. 退出 cqlsh 工具:
    cqlsh> exit
  4. 在管理服务器节点上,运行以下命令:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server store_cassandra_credentials -u CASS_USERNAME -p CASS_PASSWORD

    (可选)您可以向命令传递包含新用户名和密码的文件:
    > apigee-service edge-management-server store_cassandra_credentials -f configFile

    其中,configFile 包含以下内容:
    CASS_USERNAME=CASS_USERNAME
    CASS_PASSWORD=CASS_PASSWROD


    此命令会自动重启管理服务器。
  5. 在以下设备上重复第 4 步:
    • 所有消息处理器
    • 所有路由器
    • 所有 Qpid 服务器 (edge-qpid-server)
    • Postgres 服务器 (edge-postgres-server)
  6. 在 BaaS 堆栈节点上,对于 4.16.05.04 及更高版本:
    1. 运行以下命令以生成加密密码:
      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid secure_password

      此命令会提示您输入纯文本密码,并返回以下形式的加密密码:
      SECURE:ae1b6dedbf6b26aaab8bee815a910737c1c15b55f3505c239e43bc09f8050
    2. 在 /opt/apigee/customer/application/usergrid.properties 中设置以下令牌。 如果该文件不存在,请创建它:
      usergrid-deployment_cassandra.username=cassandra
      usergrid-deployment_cassandra.password=SECURE:ae1b6dedbf6b26aaab8bee815a910737c1c15b55f3505c239e43bc09f8050


      此示例使用 Cassandra 的默认用户名。如果您更改了用户名,请相应地设置 usergrid-deployment_cassandra.username 的值。

      请务必在密码中添加“SECURE:”前缀。 否则,BaaS 堆栈会将该值解读为未加密。

      注意:每个 BaaS Stack 节点都有自己的唯一密钥,用于加密密码。因此,您必须在每个 BaaS Stack 节点上单独生成加密值。
    3. 将 usergrid.properties 文件的所有权更改为“apigee”用户:
      > chown apigee:apigee /opt/apigee/customer/application/usergrid.properties
    4. 配置 Stack 节点:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configure
    5. 重启 BaaS 堆栈:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart
    6. 对所有 BaaS 堆栈节点重复这些步骤。

Cassandra 密码现已更改。

正在重置 PostgreSQL 密码

默认情况下,PostgreSQL 数据库定义了两个用户:“postgres”和“apigee”。这两个用户的默认密码均为“postgres”。请按照以下步骤更改默认密码。

更改所有 Postgres 主节点上的密码。如果您在主/备用模式下配置了两个 Postgres 服务器,则只需更改主节点上的密码。如需了解详情,请参阅为 Postgres 设置主备复制。

  1. 在主 Postgres 节点上,将目录更改为 /<inst_root>/apigee/apigee-postgresql/pgsql/bin,其中 /<inst_root> 默认为 /opt。
  2. 设置 PostgreSQL“postgres”用户密码:
    1. 使用以下命令登录 PostgreSQL 数据库:
      > psql -h localhost -d apigee -U postgres
    2. 出现提示时,输入“postgres”作为“postgres”用户的密码。
    3. 在 PostgreSQL 命令提示符处,输入以下命令以更改默认密码:
      apigee=> ALTER USER postgres WITH PASSWORD 'apigee1234';
    4. 使用以下命令退出 PostgreSQL 数据库:
      apigee=> \q
  3. 设置 PostgreSQL“apigee”用户密码:
    1. 使用以下命令登录 PostgreSQL 数据库:
      > psql -h localhost -d apigee -U apigee
    2. 出现提示时,输入“apigee”用户密码“postgres”。
    3. 在 PostgreSQL 命令提示符处,输入以下命令以更改默认密码:
      apigee=> ALTER USER apigee WITH PASSWORD 'apigee1234';
    4. 使用以下命令退出 PostgreSQL 数据库:
      apigee=> \q
  4. 设置 APIGEE_HOME:
    > export APIGEE_HOME=/<inst_root>/apigee/edge-postgres-server
  5. 对新密码进行加密:
    > sh /<inst_root>/apigee/edge-postgres-server/utils/scripts/utilities/passwordgen.sh apigee1234

    此命令会返回加密密码,如下所示。加密密码从“:”字符后开始,不包括“:”。
    加密字符串 :WheaR8U4OeMEM11erxA3Cw==
  6. 使用“postgres”和“apigee”用户的新加密密码更新 Management Server 节点。
    1. 在 Management Server 上,将目录更改为 /<inst_root>/apigee/customer/application。
    2. 修改 management-server.properties 文件以设置以下属性。如果此文件不存在,请创建它:
      注意:某些属性采用加密的“postgres”用户密码,某些属性采用加密的“apigee”用户密码。
      • conf_pg-agent_password=newEncryptedPasswordForPostgresUser
      • conf_pg-ingest_password=newEncryptedPasswordForPostgresUser
      • conf_query-service_pgDefaultPwd=newEncryptedPasswordForApigeeUser
      • conf_query-service_dwDefaultPwd=newEncryptedPasswordForApigeeUser
      • conf_analytics_aries.pg.password=newEncryptedPasswordForPostgresUser
    3. 确保该文件归“apigee”用户所有:
      > chown apigee:apigee management-server.properties
  7. 使用新的加密密码更新所有 Postgres Server 和 Qpid Server 节点。
    1. 在 Postgres Server 或 Qpid Server 节点上,将目录切换到 /<inst_root>/apigee/customer/application。
    2. 修改以下文件。如果这些文件不存在,请创建它们:
      • postgres-server.properties
      • qpid-server.properties
    3. 将以下属性添加到文件中:
      注意:所有这些属性都采用加密的“postgres”用户密码。
      • conf_pg-agent_password=newEncryptedPasswordForPostgresUser
      • conf_pg-ingest_password=newEncryptedPasswordForPostgresUser
      • conf_query-service_pgDefaultPwd=newEncryptedPasswordForPostgresUser
      • conf_query-service_dwDefaultPwd=newEncryptedPasswordForPostgresUser
      • conf_analytics_aries.pg.password=newEncryptedPasswordForPostgresUser
    4. 确保文件归“apigee”用户所有:
      > chown apigee:apigee postgres-server.properties
      > chown apigee:apigee qpid-server.properties
  8. 按以下顺序重启以下组件:
    1. PostgreSQL 数据库:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
    2. Qpid Server:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    3. Postgres Server:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    4. Management Server:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server restart