はじめに
IBM Security Verify(ISV) APIを利用して、一定期間ログインしていないユーザーを無効化する方法についてご紹介いたします。
APIのリファレンス
APIのリファレンスは、以下のURLから確認できます。
https://<自分のテナント名>.verify.ibm.com/developer/explorer/#
- ユーザーの取得に利用するAPIは、以下の項目になります。
- Users Management Version 2.0
APIに関するKCのヘルプはこちらです。
https://www.ibm.com/support/knowledgecenter/ja/SSCT62/com.ibm.iamservice.doc/concepts/apis.html
1.IBM Security VerifyへのAPIクライアントの登録
OAuth アクセストークンを取得するために使用するクライアント ID とクライアントシークレットを準備します。
ブラウザで、IBM Security Verifyの管理画面にアクセスします。
https://<自分のテナント名>.verify.ibm.com/ui/admin
「構成」-「API クライアント」タブを開きます。
「APIクライアントの追加」をクリックします。
アクセス件を与えるAPIとしては以下を選択して、「保存」します。
- ユーザーおよび標準グループの管理
読み込みだけであれば、ユーザーおよび標準グループの読み取り でも可能です。
登録したAPIクライアントを編集モードにすると、クライアントID/クライアント秘密鍵をコピーできます。
2.アクセストークンの取得
curl -X POST "https://<テナント名>.verify.ibm.com/oidc/endpoint/default/token" --header "Content-Type: application/x-www-form-urlencoded" --data-urlencode "grant_type=client_credentials" --data-urlencode "client_id=<クライアントID>" --data-urlencode "client_secret=<クライアント秘密鍵>"
3.ユーザー一覧の取得
ユーザー一覧を取得するためには、以下のコマンドを実行します。
curl -i -X GET https://<テナント名>.verify.ibm.com/v2.0/Users --header "Content-Type: application/json" --header "Authorization: Bearer <アクセストークン>"
4.特定ユーザーアカウントの無効化
ユーザーの無効化のためには、ユーザー属性の1つであるactive属性をFalseに設定します。
3の手順で確認したユーザーIDを指定して、特定ユーザーを無効化します。
curl -i -X PATCH https://<テナント名>.verify.ibm.com/v2.0/Users/<ユーザーID> --header "Content-Type: application/scim+json" --header "Authorization: Bearer <アクセストークン>" --data-raw "{\"schemas\":[\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"],\"Operations\":[{\"op\":\"replace\",\"path\":\"active\",\"value\":false}]}"
管理画面からユーザー情報を確認すると、状況が無効となっていることが確認できます。
5.無効化されたアカウントでのログイン試行
無効化されたアカウントでログインを試行すると、「CSIAH0320E アカウントが無効になっています。管理者にお問い合わせください。」というエラーが表示されます。
最後に
IBM Security VerifyのAPIを利用してアカウントを無効化する方法についてご紹介しました。