在 Edge 上启用 SAML 或 LDAP 后,您可以停用基本身份验证。但是, 在停用基本身份验证之前:
- 请确保您已将所有 Edge 用户(包括系统管理员)添加到您的 IDP。
- 请确保您已在新 Edge 界面和 Edge Management API 上全面测试了 IDP 身份验证。
查看当前安全配置文件
您可以查看 Edge 安全配置文件,以确定当前配置,从而确定当前是否启用了 基本身份验证和外部 IDP。在 Edge 管理服务器上使用以下 Edge 管理 API 调用,以查看 Edge 使用的当前安全配置文件:
curl -H "accept:application/xml" http://localhost:8080/v1/securityprofile -u sysAdminEmail:pWord
如果您尚未配置外部 IDP,则响应如下所示,这意味着基本 身份验证已启用:
<SecurityProfile enabled="true" name="securityprofile">
<UserAccessControl enabled="true">
</UserAccessControl>
</SecurityProfile>如果您已启用外部 IDP,则 <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>请注意,启用了外部 IDP 的版本还会显示 <BasicAuthEnabled>true</BasicAuthEnabled>,这意味着基本 身份验证仍处于启用状态。
停用基本身份验证
在 Edge 管理服务器上使用以下 Edge 管理 API 调用,以停用基本 身份验证。
如需停用基本身份验证,请将上一部分中返回的 XML 对象作为载荷传递。唯一的
区别在于,您将 <BasicAuthEnabled> 设置为 false,如以下
示例所示:
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>'停用基本身份验证后,任何传递基本 身份验证凭据的 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...
- 重新启用基本身份验证和外部 IDP 身份验证:
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>'
您现在可以再次使用基本身份验证。如需将新 Edge 界面从
单点登录切换回基本身份验证,请在新 Edge 界面配置文件中设置 AUTH_MODE=basic 和
MANAGEMENT_UI_SSO_ENABLED=n,然后运行
/opt/apigee/apigee-service/bin/apigee-service edge-management-ui configure-sso -f configFile
,再运行
/opt/apigee/apigee-service/bin/apigee-service edge-management-ui restart
(或运行 /opt/apigee/apigee-setup/bin/setup.sh -p ue -f configFile)。