(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【IBM Cloud】アカウントに紐づくユーザ一覧をcurlコマンドで取得する

スポンサーリンク

やりたいこと

GUI上にて以下のURL(管理>アクセス(IAM)>ユーザー)で確認できるユーザ情報を

https://cloud.ibm.com/iam/users

APIを利用したcurlコマンド経由で一覧表示させる。

環境情報
$ ibmcloud --version
...version 1.3.0:...

やり方

IBM Cloud User Management APIを利用する。

具体的には、以下で確認できるアカウントIDを控えた状態で

$ ibmcloud login

以下コマンドでIAM トークンを取得し

$ ibmcloud iam oauth-tokens

以下のACCOUNTIDとTOKENを上記値に置き換えて実行すると

curl -X GET   https://user-management.cloud.ibm.com/v2/accounts/ACOUNTID/users   -H 'Authorization: TOKEN'

以下のJSON形式で情報が確認できる。

{"total_results":2,"limit":100,"first_url":"/v2/accounts/xx/users","next_url":null,"resources":[{"id":"xx","iam_id":"xx","realm"
:"BSS","user_id":"xx","firstname":"","lastname":"","state":"PENDING","email":"xx","phonenumber":"","altphonenumber":"","photo":"","account_id":"xx"},{"id":"xx","iam_id":"xx","realm":"IBMid","user_id":"xx","firstname":"xx","lastname":"xx","state":"ACTIVE","email":"xx","phonenumber
":"xx","altphonenumber":"","photo":"","account_id":"xx"}]}

以下、補足です。

補足

アカウントIDは以下の括弧の中に格納されている英数文字列で確認でき

$ ibmcloud login
...
アカウント:              xx (xx)
...

IAMトークンは標準出力に「IAM トークン: Bearer ...」と表示されるので以下のようにすればURLに利用する部分のみきりだすことも可能です。

$ ibmcloud iam oauth-tokens | awk '{print substr($0,index($0,"Bearer"))}'

また、 デフォルトでは100件しか表示されないのでそれ以降はnext urlフィールド経由で取得するようです。

Users are returned in a paginated list with a default limit of 100 users. You can iterate through all users by following the next_url field.

以上、ご参考になれば幸いです。