用户模拟
用户模拟允许具有特殊权限的用户在不知道或无法访问被模拟用户凭据的情况下,以其他用户的身份行事。
模拟功能可用于测试和故障排除,或允许系统服务安全地作为用户行事。
模拟可以在 REST 接口或传输层发生。
REST 接口
要允许一个用户模拟另一个用户,请将以下内容添加到 opensearch.yml
plugins.security.authcz.rest_impersonation_user:
<AUTHENTICATED_USER>:
- <IMPERSONATED_USER_1>
- <IMPERSONATED_USER_2>
被模拟用户字段支持通配符。将其设置为 *
允许 AUTHENTICATED_USER
模拟任何用户。
传输接口
以类似的方式,添加以下内容以启用传输层模拟
plugins.security.authcz.impersonation_dn:
"CN=spock,OU=client,O=client,L=Test,C=DE":
- worf
模拟用户
要模拟另一个用户,请向系统提交请求,并将 HTTP 标头 opendistro_security_impersonate_as
设置为要模拟的用户的名称。一个很好的测试是向 _plugins/_security/authinfo
URI 发出 GET 请求
curl -XGET -u 'admin:<custom-admin-password>' -k -H "opendistro_security_impersonate_as: user_1" https://:9200/_plugins/_security/authinfo?pretty