Private Cloud v4.18.05 專用 Edge
在 Edge 上啟用 SAML 後,您可以停用基本驗證。不過,停用 Basic Auth 前:
- 請確認您已將所有 Edge 使用者 (包括系統管理員) 新增至您的 SAML IDP。
- 請務必在 Edge UI 和 Edge 管理 API 上徹底測試 SAML 驗證機制。
- 如果您使用的是 Apigee Developer Services 入口網站 (簡稱「入口網站」),請在入口網站上設定及測試 SAML,確保入口網站可連線至 Edge。請參閱「設定入口網站,以便使用 SAML 與 Edge 通訊」一文。
查看目前的安全性設定檔
您可以查看 Edge 安全性設定檔,判斷目前的設定是否已啟用基本驗證和 SAML。在 Edge 管理伺服器上使用下列 Edge 管理 API 呼叫,即可查看 Edge 目前使用的安全性設定檔:
curl -H "accept:application/xml" http://localhost:8080/v1/securityprofile -u sysAdminEmail:pWord
如果您尚未設定 SAML,回應會如以下所示,表示已啟用基本驗證:
<SecurityProfile enabled="true" name="securityprofile"> <UserAccessControl enabled="true"> </UserAccessControl> </SecurityProfile>
如果您已啟用 SAML,輸出內容中就會顯示 <ssoserver>
標記:
<SecurityProfile enabled="true" name="securityprofile"> <UserAccessControl enabled="true"> <SSOServer> <BasicAuthEnabled>true</BasicAuthEnabled> <PublicKeyEndPoint>/token_key</PublicKeyEndPoint> <ServerUrl>http://35.197.37.220:9099</ServerUrl> </SSOServer> </UserAccessControl> </SecurityProfile>
請注意,啟用 SAML 的版本也會顯示 <BasicAuthEnabled>true</BasicAuthEnabled>,表示仍啟用 Basic Auth。
停用基本驗證
在 Edge Management Server 上使用下列 Edge Management API 呼叫,即可停用基本驗證機制。請注意,您傳遞的酬載是先前部分傳回的 XML 物件。唯一的差異是您需要設定 <BasicAuthEnabled>false</BasicAuthEnabled>:
curl -H "Content-Type: application/xml" http://localhost:8080/v1/securityprofile -u sysAdminEmail:pWord -d '<SecurityProfile enabled="true" name="securityprofile"> <UserAccessControl enabled="true"> <SSOServer> <BasicAuthEnabled>false</BasicAuthEnabled> <PublicKeyEndPoint>/token_key</PublicKeyEndPoint> <ServerUrl>http://35.197.37.220:9099</ServerUrl> </SSOServer> </UserAccessControl> </SecurityProfile>'
停用 Basic Auth 後,任何傳遞 Basic Auth 憑證的 Edge 管理 API 呼叫都會傳回以下錯誤:
<Error> <Code>security.SecurityProfileBasicAuthDisabled</Code> <Message>Basic Authentication scheme not allowed</Message> <Contexts/> </Error>
重新啟用基本驗證
如因任何原因必須重新啟用基本驗證,請務必執行下列步驟:
- 登入任何 Edge ZooKeeper 節點。
- 執行以下 bash 指令碼,關閉所有安全性功能:
#! /bin/bash /opt/apigee/apigee-zookeeper/bin/zkCli.sh -server localhost:2181 <<EOF set /system/securityprofile <SecurityProfile></SecurityProfile> quit EOF
輸出內容會以以下格式顯示:
Connecting to localhost:2181 Welcome to ZooKeeper! JLine support is enabled WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: localhost:2181(CONNECTED) 0] set /system/securityprofile <SecurityProfile></SecurityProfile> cZxid = 0x89 ... [zk: localhost:2181(CONNECTED) 1] quit Quitting...
- 重新啟用基本驗證和 SAML 驗證:
curl -H "Content-Type: application/xml" http://localhost:8080/v1/securityprofile -u sysAdminEmail:pWord -d '<SecurityProfile enabled="true" name="securityprofile"> <UserAccessControl enabled="true"> <SSOServer> <BasicAuthEnabled>true</BasicAuthEnabled> <PublicKeyEndPoint>/token_key</PublicKeyEndPoint> <ServerUrl>http://35.197.37.220:9099</ServerUrl> </SSOServer> </UserAccessControl> </SecurityProfile>'
您現在可以再次使用 Basic Auth。