重設 Edge 密碼

Edge for Private Cloud 4.18.01 版

安裝完成後,您可以重設 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 密碼:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-openldap change-ldap-password -o oldPword -n newPword
  2. 執行下列指令,儲存新密碼,供管理伺服器存取:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server store_ldap_credentials -p newPword

    這個指令會重新啟動管理伺服器。

在安裝 OpenLDAP 的 OpenLDAP 複製設定中,請在兩個管理伺服器節點上按照上述步驟更新密碼。

在 OpenLDAP 複製設定中,如果 OpenLDAP 位於管理伺服器以外的節點,請務必先變更兩個 OpenLDAP 節點上的密碼,然後再變更兩個管理伺服器節點上的密碼。

重設系統管理員密碼

如要重設系統管理員密碼,您必須在兩個地方重設密碼:

  • 管理伺服器
  • UI

警告:請先停止 Edge UI,再重設系統管理員密碼。由於您先在管理伺服器上重設密碼,因此 UI 可能會在短時間內仍使用舊密碼。如果 UI 使用舊密碼呼叫超過三次,OpenLDAP 伺服器會鎖定系統管理員帳戶三分鐘。

如要重設系統管理員密碼,請按照下列步驟操作:

  1. 在 UI 節點上,停止 Edge UI:
    > /opt/apigee/apigee-service/bin/apigee-service edge-ui stop
  2. 在管理伺服器上執行下列指令,重設密碼:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server change_sysadmin_password -o currentPW -n newPW
  3. 編輯用於安裝 Edge UI 的靜音設定檔,設定下列屬性:
    APIGEE_ADMINPW=newPW
    SMTPHOST=smtp.gmail.com
    SMTPPORT=465
    SMTPUSER=foo@gmail.com
    SMTPPASSWORD=bar
    SMTPSSL=y
    SMTPMAILFROM="My Company <myco@company.com>"


    請注意,傳遞新密碼時必須一併提供 SMTP 屬性,因為 UI 上的所有屬性都會重設。
  4. 使用 apigee-setup 公用程式,透過設定檔重設 Edge UI 的密碼:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
  5. (僅限在 UI 啟用 TLS 的情況) 按照「設定管理 UI 的 TLS」一文所述,在 Edge UI 重新啟用 TLS。

在具有多個管理伺服器的 OpenLDAP 複製環境中,重設一個管理伺服器的密碼會自動更新其他管理伺服器。不過,您必須個別更新所有 Edge UI 節點。

重設機構使用者密碼

如要重設組織使用者的密碼,請使用 apigee-servce 公用程式叫用 apigee-setup:

/opt/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]

例如:

> /opt/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  

您也可以使用 Update user API 變更使用者密碼。

系統管理員和組織使用者密碼規則

您可以在這個部分,強制要求 API 管理使用者設定符合特定長度和強度的密碼。這些設定會使用一系列預先設定 (且編號不重複) 的規則運算式,檢查密碼內容 (例如大寫、小寫、數字和特殊字元)。將這些設定寫入 /opt/apigee/customer/application/management-server.properties 檔案。如果該檔案不存在,請建立檔案。

編輯 management-server.properties 後,請重新啟動管理伺服器:

> /opt/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 節點:
    > /opt/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. 在管理伺服器節點上,執行下列指令:
    > /opt/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. 在 4.16.05.04 以上版本的 BaaS 堆疊節點上:
    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 Stack 會將該值解讀為未加密。

      注意:每個 BaaS Stack 節點都有專屬金鑰,用於加密密碼。因此,您必須在每個 BaaS 堆疊節點上分別產生加密值。
    3. 將 usergrid.properties 檔案的擁有權變更為「apigee」使用者:
      > chown apigee:apigee /opt/apigee/customer/application/usergrid.properties
    4. 設定 Stack 節點:
      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
    5. 重新啟動 BaaS 堆疊:
      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
    6. 針對所有 BaaS Stack 節點重複這些步驟。

Cassandra 密碼現已變更。

重設 PostgreSQL 密碼

根據預設,PostgreSQL 資料庫定義了兩個使用者:「postgres」和「apigee」。兩位使用者的預設密碼都是「postgres」。請按照下列程序變更預設密碼。

變更所有 Postgres 主要節點的密碼。如果您有兩個 Postgres 伺服器設定為主要/待命模式,則只需變更主要節點上的密碼。詳情請參閱「為 Postgres 設定主要/待命複製」。

  1. 在主要 Postgres 節點上,將目錄變更為 /opt/apigee/apigee-postgresql/pgsql/bin。
  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=/opt/apigee/edge-postgres-server
  5. 加密新密碼:
    > sh /opt/apigee/edge-postgres-server/utils/scripts/utilities/passwordgen.sh apigee1234

    這個指令會傳回加密密碼,如下所示。加密密碼從「:」字元後開始,不包含「:」。
    加密字串 :WheaR8U4OeMEM11erxA3Cw==
  6. 使用「postgres」和「apigee」使用者的新「加密」密碼更新管理伺服器節點。
    1. 在管理伺服器上,將目錄變更為 /opt/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 伺服器和 Qpid 伺服器節點。
    1. 在 Postgres 伺服器或 Qpid 伺服器節點上,將目錄變更為 /opt/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 資料庫:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
    2. Qpid 伺服器:
      > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    3. Postgres 伺服器:
      > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    4. 管理伺服器:
      > /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart