身份和访问管理 API
使用 IAM API 管理用户和权限
身份和访问管理 API (IAM) API 允许您通过 RESTful 界面管理用户、用户组、权限以及 LDAP 配置设置。它提供比 DC/OS UI 更多的功能。
请求和响应格式
API 仅支持 JSON。您必须在 HTTP 标头中包含 作为 Content-Type
,如下所示。
主机名和基础路径
要使用的主机名将根据您程序运行的位置而有所不同。
如果您的程序在 DC/OS 群集之外运行,则使用群集 URL。这可以通过启动 DC/OS UI 并从浏览器复制域名来获取。或者,您可以登录到 DC/OS CLI 并键入
dcos config show core.dcos_url
以获取群集 URL。在生产环境中,这应该是位于主服务器前面的负载均衡器的路径。如果您的程序在群集内部运行,则使用
master.mesos
。
将 /acs/api/v1
附加到主机名,如下所示。
https://<host-ip>/acs/api/v1
身份验证和授权
获取认证令牌
要获得认证令牌,请将 POST
请求主体中的本地用户或服务帐户的凭据传递给 。
要登录本地用户帐户,请在请求中提供 uid
和 password
。
注意:查阅如何通过 DC/OS 在 Curl 命令 中 。
要登录服务帐户,请在请求中提供用户 ID 和服务登录令牌。服务登录令牌是 RS256 类型的 RFC 7519 JWT。它必须以 JWT 格式结合服务帐户 (uid
) 和过期时间 (exp
) 声明来构建。服务登录令牌的 JWT 要求为:
- 标头
- 有效负载
{
"uid": "<uid>",
"exp": "<expiration_time>"
}
然后必须使用服务帐户的私钥加密提供的信息。可以使用 jwt.io 手动完成或者使用您最喜欢的 JWT 库进行编程实现。最终的编码步骤应产生可传递给 IAM 的 编码 JWT。
curl -X POST https://<host-ip>/acs/api/v1/auth/login -d '{"uid": "<service-account-id>", "token": "<service-login-token>"}' -H 'Content-Type: application/json'
两者都会请求返回 DC/OS 认证令牌,如下所示。
使用 dcos auth login
登录 时,它会在本地存储认证令牌值。您可以在 curl
命令中将此值引用为变量(在下一部分中讨论)。
或者,您可以使用以下命令获取认证令牌值。
dcos config show core.dcos_acs_token
复制令牌值并将其传递到 HTTP 标头的 Authorization
字段中,如下所示。
例如,使用 curl
,您将按以下方式传递此值。
然后,您可以在 curl
命令中引用此值,如下所示。
curl -H "Authorization: token=$(dcos config show core.dcos_acs_token)"
刷新认证令牌
默认情况下,认证令牌在五天后过期。如果您的程序需要运行超过五天,则需要一个服务帐户。有关更多信息,请参阅。
API 参考
日志记录
虽然 API 会返回信息性错误消息,但您也可能会发现检查服务日志很有用。有关说明,请参阅服务和任务日志记录。