Directory Syncの実行で「Active Directory/LDAP サーバから取得したユーザをキャッシュに保存できませんでした」とのエラーが発生する

現象

Directory Syncの実行が失敗し、イベントログを確認すると以下のエラーが発生していた。

概要

Active Directory/LDAP サーバから取得したユーザをキャッシュに保存できませんでした。

詳細

#<ActiveRecord::StatementInvalid: SQLite3::ConstraintException: NOT NULL constraint failed: ad_users.user_name: INSERT INTO "ad_users" ("dn", "external_id", "family_name", "given_name", "active", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?)>

原因

Directory Syncの設定で、IIJ IDユーザの「外部ID」と「ID」に設定されているActive Directoryの属性が空のActive Directoryユーザが存在しています。

「外部ID」と「ID」はIIJ IDでの必須属性となるため、値が必要です。

対応

Directory Syncの設定ファイル(config.yml)を確認し、以下の設定値を確認します。

  • iid.scim.attribute.user.ad_bind.externalId(外部ID)
  • iid.scim.attribute.user.ad_bind.userName(ID)

この値がIIJ IDユーザの「外部ID」と「ID」に設定されるActive Directory属性となります。

該当のActive Directory属性に値を設定するか、該当ユーザをDirectory Syncの同期対象から除外してください。