はじめに
ユーザー認証のログを意図的に生成するために、ユーザー名とパスワードで認証するAPIを試しました。
1.Cloud DirectoryのID確認
APIで利用するため、Cloud Directoryに割り当てられたIDを確認します。
[認証] -> [アイデンティティ・プロバイダー] -> [Cloud Directory]を開き、コピーします。
2.ユーザー名とパスワードによる認証
当該APIを使ってみます。
curl -X POST "https://<テナント名>.verify.ibm.com/v1.0/authnmethods/password/<Cloud DirectoryのID>" --header "Content-Type: application/json" --header "Authorization: Bearer <アクセストークン>" --data-raw "{\"username\": \"<ユーザー名>\",\"password\": \"<パスワード>\"}"
ユーザー認証が成功すると、200 OKで、以下のようなレスポンスが返ってきました。
{"groups":[],"attributes":[{"values":["<email>"],"name":"email"},{"values":["<username>"],"name":"name"},{"values":["<familyName>"],"name":"familyName"},{"values":["<givenname>"],"name":"givenName"},{"values":["<username>"],"name":"username"},{"values":["cloudIdentityRealm"],"name":"realm"},{"values":["regular"],"name":"userCategory"}],"id":"<userid>"}
ユーザー認証が失敗すると、400 Bad Requestで以下のレスポンスが返ってきました。
{"messageId":"CSIBH0044E","messageDescription":"The system cannot authenticate the user because the username or password was incorrect."}
3.存在しないCloud DirectoryのIDを指定した場合
正しいIDを指定した場合は、Realmが「cloudIdentityRealm」となります。
存在しないIDを指定した場合は、Realmが「UNKNOWN」としてに判断されます。
最後に
今回は、ユーザー名とパスワードで認証するAPIを試しました。
ユーザーがどのアイデンティティー・プロバイダーに所属しているか指定するため、Cloud DirectoryのIDを指定するという点がポイントとなりました。