5.4. ユーザ情報変更 (パスワード変更を含む)

PUT /1/(tenantId)/users/(userId)

パスワード変更を含む、ユーザ情報を変更する。

Request Headers:
 
  • X-Application-Id -- アプリケーションID(必須)
  • X-Application-Key -- アプリケーションキー(必須)
  • X-Session-Token -- セッショントークン (必須、ただしマスターキー使用時は不要)
  • Content-Type -- application/json
Parameters:
  • userId (string) -- ユーザID
Query Parameters:
 
  • etag (string) -- ETag値
Request JSON Object:
 
  • username (string) -- ユーザ名
  • email (string) -- E-mailアドレス
  • password (string) -- パスワード
  • options (object) -- オプション情報
  • enabled (boolean) -- 有効フラグ
Status Codes:
Response JSON Object:
 
  • _id (string) -- ユーザID
  • username (string) -- ユーザ名
  • email (string) -- E-mail アドレス
  • groups (array) -- ユーザが所属する全グループの一覧 (authenticated, anonymous は含まず)
  • options (object) -- オプション情報
  • createdAt (string) -- ユーザ作成日時
  • updatedAt (string) -- ユーザ更新日時
  • lastLoginAt (string) -- 最終ログイン日時。マスターキー使用時のみ返却する。
  • etag (string) -- 新規作成・更新の度に変更される固有値
  • federated (boolean) -- 外部認証連携有無
  • primaryLinkedUserId (string) -- OpenID Connect認証でユーザ自動生成時のリンクユーザID
  • clientCertUser (boolean) -- クライアント証明書認証ユーザフラグ
  • enabled (boolean) -- 有効フラグ
  • reasonCode (string) -- エラー時の原因コード
  • detail (object) -- エラーに関するデータ

リクエストボディ

リクエストボディには JSON 形式で記述されたユーザ情報を設定する。

username, email, password, options, enabled を指定 (すべてオプション。指定しなかったものは変更されない) optionsフィールドには、JSON形式で記述された任意のオブジェクトを指定できる。

リクエストボディの例

{
    "username": "tarou",
    "email": "nichiden.tarou@example.com",
    "password": "Passw0rd",
    "options": {
      "displayName": "日電 太郎",
      "division": "日電事業部"
    },
    "enabled": true
}

レスポンスボディ

レスポンスボディには、変更したユーザ情報を含む JSON データが返る。

更新が成功した場合、etag フィールドに、更新された ETag 値が格納される (データの内容に変更がない場合であっても、常に updatedAt とetag 値は更新される)。 本人確認メール送信設定が有効の場合は、空のユーザ情報を返す。

エラーレスポンス

エラー時には JSON で以下の内容が返却される。

  • reasonCode: 原因を示すコード
    • duplicate_key: データ重複。バケットに設定したインデックスのユニーク制約による。
    • etag_mismatch: 更新・削除処理でETagが不一致
    • request_conflicted: 更新・削除処理で衝突
  • detail: エラーに関するデータ

detail は、各reasonCodeに対して、下記内容を返却する。

reasonCode detail
duplicate_key "Duplicate Key" (文字列)
etag_mismatch サーバ側のユーザ情報を含むJSON データ (JSON形式)
request_conflicted "Updating conflicted" (文字列)

409 Conflict の場合の例を示す。

{
  "reasonCode": "etag_mismatch"
  "detail": {
    "_id": "52116f01ac521e1742000001",
    "username": "foo",
    "email": "foo@example.com",
    "options": {
      "displayName": "日電 太郎",
      "division": "日電事業部"
    },
    "createdAt": "2013-08-27T04:37:30.000Z",
    "updatedAt": "2013-08-27T04:37:30.000Z",
    "lastLoginAt": "2013-08-27T04:37:30.000Z", // マスターキー使用時のみ返却
    "etag": "8c92c97e-01a7-11e4-9598-53792c688d1b",
    "federated": false,
    "clientCertUser": false,
    "primaryLinkedUserId":null,
    "enabled": true
  }
}

注意事項

  • 変更が可能なのは自ユーザのみである。ただし、マスターキーを使用した場合どのユーザの情報でも変更可能。
  • _USERS バケットのcontentACLに対する権限は不要。
  • username、email、passwordのポリシはサインアップと同様。
  • Conflictの場合はその原因をJSON形式で返す
  • 外部認証(LDAP等)連携ユーザに対しては、本機能は使用できない。使用した場合は403エラーを返却する。
  • クライアント証明書ユーザに対しては、Eメールとパスワードの更新は無視される。
  • 本人確認メール設定が有効の場合、本API実行時にユーザ更新はされない。API実行後に、更新前のE-mailアドレス宛に送られる本人確認メールの内容に従い更新を行うこと。
  • 本人通知メール設定が有効の場合、更新後、更新後ユーザのE-mailアドレス宛に、本人通知メールが送信される。E-mailアドレスを更新した場合は、更新前ユーザのアドレスにも送信される。
  • マスターキーを指定した場合は、本人確認メールは送信されない。
  • パスワードを設定した場合、該当ユーザのセッショントークンはすべて無効化される。
  • 有効フラグ(enabled)
    • ユーザの有効/無効を変更できる。無効(false)に設定した場合は、該当ユーザがBaaSにログインすることができなくなる。
    • マスターキーを使用した場合のみ変更が可能。(ユーザ無効の状態の場合はログインができず、自ユーザでのAPI実行が不可能)
  • 変更時に、所属グループからの削除やPushインスタレーションの更新などの処理は行わない。「所属ユーザ・グループの追加/削除API」や、「インスタレーションの更新/削除API」などを必要に応じて実行すること。