SuperAPI AI 工具集

elasticsearch-authn

安全与审计

查看项目

更新于 10-16 05:07

技能介绍

用途:帮助连接已配置好认证域的 Elasticsearch 集群,完成身份认证、凭据验证与 API Key 管理。角色、用户与角色映射请参考 elasticsearch-authz 技能。

主要能力:支持原生(用户名密码)、文件、LDAP、Active Directory、PKI 客户端证书、SAML、OIDC、JWT、Kerberos 等认证域,以及 API Key 机制;可验证当前身份、选择合适认证域、创建带作用域的 API Key、轮换或作废密钥、配置服务账号令牌、代他人授予密钥。

使用方式:所有示例通过环境变量传参(如 ELASTICSEARCH_PASSWORD、ELASTICSEARCH_API_KEY),缺失时让用户在项目根目录 .env 中设置,优先 .env 而非终端 export。验证身份用 curl <auth_flags> "${ELASTICSEARCH_URL}/_security/_authenticate",检查 username、roles 与 authentication_realm.type。API Key 通过 Authorization: ApiKey ${ELASTICSEARCH_API_KEY} 传递。创建密钥示例:curl -X POST "${ELASTICSEARCH_URL}/_security/api_key" <auth_flags> -H "Content-Type: application/json" -d '{...}',响应含 id、api_key、encoded,encoded 仅返回一次需安全保存。

适用场景:交互式登录、CI/CD 与自动化访问、企业目录集成、服务间 mTLS、Kibana SSO、令牌式服务认证等。

限制:绝不在对话中索取或回显密码、密钥、令牌;密钥不得进入代码或版本控制;API Key 无法再创建带权限的 API Key,需用 POST /_security/api_key/grant;SAML/OIDC 仅用于浏览器 SSO,需另配 REST 访问域;各认证域在不同部署类型(自管理、ECH、Serverless)可用性不同,文件、LDAP、AD、Kerberos 仅自管理可用,Serverless 主要用 API Key。避免使用超级用户,密钥应设过期时间并限定作用域。