第 3 章 将服务帐户与服务搭配使用
以下信息演示了如何将服务帐户与服务和 CLIENT_ID 和 CLIENT_SECRET 变量一起使用。它仅作为参考指南提供。
- 创建新服务帐户: Red Hat Hybrid Cloud Console Service account
粘贴终端中的以下信息,替换 CLIENT_ID 和 CLIENT_SECRET 变量:
export HOST='https://sso.redhat.com' CLIENT_ID='<client_id>' CLIENT_SECRET='<client_secret>' SCOPES='openid api.iam.service_accounts'使用以下命令获取服务帐户的令牌
curl "${HOST}/auth/realms/redhat-external/protocol/openid-connect/token" \ --data-urlencode "grant_type=client_credentials" \ --data-urlencode "client_id=${CLIENT_ID}" \ --data-urlencode "client_secret=${CLIENT_SECRET}" \ --data-urlencode "scope=${SCOPES}"如果您安装了 jq (命令行 JSON 处理器),您可以将令牌保存到 env var :
export ACCESS_TOKEN=$( \ curl "${HOST}/auth/realms/redhat-external/protocol/openid-connect/token" \ --data-urlencode "grant_type=client_credentials" \ --data-urlencode "client_id=${CLIENT_ID}" \ --data-urlencode "client_secret=${CLIENT_SECRET}" \ --data-urlencode "scope=${SCOPES}" \ | jq -r '.access_token')向支持服务帐户的应用程序发送请求:
curl --header "Authorization:Bearer ${ACCESS_TOKEN}" --location "https://console.redhat.com/api/rbac/v1/access/?application=inventory"- 根据应用程序,响应应该为空,或没有特权。尝试将服务帐户添加到 RBAC 组,并将角色添加到该组。用户访问组
- 将角色添加到服务帐户组后,重复步骤 3 以获取新令牌并再次尝试请求。现在,您应该具有更多特权,并从应用程序获得正确的响应。