はじめに
IBM Security Verify APIを利用して、ユーザーのパスワードをリセットする方法についてご紹介いたします。
APIのリファレンスは、以下のURLから確認できます。
https://docs.verify.ibm.com/verify/reference/resetuserpassword
1.IBM Security VerifyへのAPIクライアントの登録
OAuth アクセストークンを取得するために使用するクライアント ID とクライアントシークレットを準備します。
ブラウザで、IBM Security Verifyの管理画面にアクセスします。
https://<自分のテナント名>.verify.ibm.com/ui/admin
「セキュリティ」-「API アクセス」-「API クライアント」タブを開き、「APIクライアントの追加」をクリックします。
マニュアル上には必要な資格情報として以下の記載があります。
manageUserGroups (Manage users and groups) or manageAllUserGroups (Synchronize users and groups) or manageUserStandardGroups (Manage users and standard groups) or updateAnyUser (Update any user)
マニュアルに従ってアクセス権を与える資格を選択して、「保存」します。
- ユーザーおよび標準グループの管理
登録した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.ユーザーのパスワードリセット
ユーザーのパスワードリセットを行う方法が2種類あります。
- 1.パスワード自動生成し、ユーザーにメール通知するパターン
- 2.管理者が任意のパスワードを設定するパターン(ユーザーにメール通知するかどうかはオプション)
3.1.パスワード自動生成し、ユーザーにメール通知するパターン
passwordに"auto-generate"を指定します。
curl -i -X PATCH https://<テナント名>.verify.ibm.com/v2.0/Users/<userid>/passwordResetter --header "Content-Type: application/scim+json" --header "Authorization: Bearer <アクセストークン>" --data-raw "{\"Operations\":[{\"value\":{\"password\":\"auto-generate\",\"urn:ietf:params:scim:schemas:extension:ibm:2.0:Notification\":{\"notifyType\":\"EMAIL\",\"notifyPassword\":true,\"notifyManager\":false}},\"op\":\"replace\"}],\"schemas\":[\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"]}"
ユーザープロファイルの優先言語に指定した言語でリセットされたパスワードが通知されます。
一次パスワードでログインすると、パスワード変更が求められます。
3.2.管理者が任意のパスワードを設定するパターン
password属性に任意のパスワードを設定します。
管理者が初期パスワードを指定するため、メールが見れないユーザーに初期パスワードを伝えることができるようになります。
curl -i -X PATCH https://<テナント名>.verify.ibm.com/v2.0/Users/<userid>/passwordResetter --header "Content-Type: application/scim+json" --header "Authorization: Bearer <アクセストークン>" --data-raw "{\"Operations\":[{\"value\":{\"password\":\"nininoP@ssword\\",\"urn:ietf:params:scim:schemas:extension:ibm:2.0:Notification\":{\"notifyType\":\"EMAIL\",\"notifyPassword\":true,\"notifyManager\":false}},\"op\":\"replace\"}],\"schemas\":[\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"]}"
ユーザープロファイルの優先言語に指定した言語でリセットされたパスワードが通知されます。
一次パスワードでログインすると、パスワード変更が求められます。
ユーザーへのメール通知をしないようにする場合は、"notifyType"を"NONE"にします。
curl -i -X PATCH https://<テナント名>.verify.ibm.com/v2.0/Users/<userid>/passwordResetter --header "Content-Type: application/scim+json" --header "Authorization: Bearer <アクセストークン>" --data-raw "{\"Operations\":[{\"value\":{\"password\":\"nininoP@ssword\\",\"urn:ietf:params:scim:schemas:extension:ibm:2.0:Notification\":{\"notifyType\":\"NONE\"}},\"op\":\"replace\"}],\"schemas\":[\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"]}"
最後に
IBM Security Verify API で ユーザーのパスワードをリセットする方法についてご紹介しました。