Active Directory
Active Directoryを業務アセットとして接続すると、アカウント・グループ・組織単位をYESODから管理できます。接続には、オンプレミスエージェントのインストールが必要です。
概要
Active Directory(AD)は、Microsoftが提供するディレクトリサービスです。Windows環境における中央認証・アカウント管理システムとして動作します。組織内のユーザー、コンピューター、プリンター、共有フォルダーなどを階層構造で管理し、認証・認可やグループポリシーの適用をします。
たとえば、次のような用途で使用します。
- Windowsログオン認証: 社内PCへログオンするときのユーザー名・パスワードの管理
- ファイルサーバーアクセス制御: 共有フォルダーへの組織別のアクセス権の管理
- アプリケーション認証: 社内システムのシングルサインオン(SSO)
| 参照先 | リンク |
|---|---|
| 公式HP | Microsoft Active Directory |
| 公式ヘルプ | Active Directory Domain Services 概要 |
| APIドキュメント | LDAP APIリファレンス |
YESODで管理できるオブジェクト
Active Directoryのオブジェクトのうち、YESODで管理・制御できるのは次の4種類です。
| オブジェクト名 | 用途 |
|---|---|
| ユーザーアカウント | メンバーのアカウント |
| 組織単位(Organization Unit / OU) | 組織や職務に応じてオブジェクトをグループ化する |
| グループ | ユーザー・コンピューター・他のグループをまとめ、権限やメール配信を制御する |
| コンテナー | システムによって最初から作成されているオブジェクトの格納場所(作成・削除はできない) |
管理できること
接続方式は標準コネクタです。次の3つを管理できます。
アカウント管理
- アカウントの作成/削除(もしくは「ゴミ箱」への移動)
- アカウントの属性更新
- パスワードリセット
- グループへのユーザーの所属/削除/移動
- OU・
Usersコンテナーへのユーザーの所属/削除/移動
グループ管理
- グループの作成/削除(もしくは「ゴミ箱」への移動)
- グループの属性更新
- グループへの他グループの所属/削除/移動
コンテナーオブジェクト管理
- OUの作成/削除(もしくは「ゴミ箱」への移動)
- OUの属性更新
- グループへの他グループの所属/削除/移動
接続に使う情報
| 入力項目 | 必須 | 入力する内容 |
|---|---|---|
| 「LDAP URL」 | 必須 | 管理対象のドメインのLDAP接続URL。例: ldaps://sample.yesod.local:636 |
| 「BaseDn」 | 必須 | 管理対象のドメインのベースDN。DC=[ドメイン名]の形式で入力し、複数ある場合はカンマで区切ります。例: DC=example,DC=local |
| 「バインドユーザー」 | 必須 | バインドに使うアカウントの識別名(DN, distinguishedName)。例: CN=serveradmin,CN=Users,DC=example,DC=local |
| 「バインドパスワード」 | 必須 | 「バインドユーザー」に対応するパスワード |
バインドに使うアカウントには、次の権限が必要です。
- ユーザー情報の検索・読み取り・書き込みの権限
- グループ、コンテナーオブジェクトの情報の検索・読み取り・書き込みの権限
資格情報は第三者へ共有せず、安全な場所で管理してください。
接続の準備
Active Directoryの接続は、ほかの接続先サービスと異なります。自社のActive Directory環境へ、オンプレミスエージェントのインストールが必要です。
Active Directoryは自社のオンプレミス環境(社内ネットワーク)にあり、YESODのサーバーから直接アクセスできない場合があります。この状況に対応するため、オンプレミスエージェントは次の2つを担います。
- YESODのサーバーとの通信路の確立: エージェント側からYESODのサーバーへアクセスし、通信路を確立します。YESODのサーバーは、この通信路を使って、Active Directoryに対して実施したい操作の内容をエージェントへ送信します。
- Active Directoryのサーバーの操作の代行: エージェントは、YESODのサーバーに代わってActive Directoryへ操作を送ります。アカウントやグループの操作は、このエージェントが実行します。
「SaaS接続」画面でActive Directoryを選ぶと、接続画面に「オンプレミスエージェントのインストールが必要です」という警告が表示されます。接続する前に、インストールを完了してください。
アカウントの作成
アカウント作成時に、初期パスワードを設定できます。
初期パスワードを設定しない場合、アカウントは無効の状態で作成されます。パスワードなしのログオンを許可するなどの対応をしないと、アカウントを有効にできないためです。作成後は、Active Directoryの管理者が有効化とログオンの案内をしてください。
アカウントの削除
Active Directoryでアカウントを止める操作には、無効化と削除があります。YESODのアカウント削除タスクは、Active Directory上でアカウントを削除します。
削除が論理削除と物理削除のどちらになるかは、運用しているActive Directory環境で「ゴミ箱」機能が有効かどうかで決まります。
| 「ゴミ箱」機能の状態 | 削除の実体 |
|---|---|
| 有効 | 論理削除 |
| 無効 | 物理削除 |
YESODは一律で削除します。論理削除と物理削除のどちらになるかは、運用中のActive Directory環境の設定に従います。
削除したアカウントを再作成したときの挙動
| 削除したときの状態 | 再作成タスクの動作 |
|---|---|
| 論理削除(アカウントが残っている) | IsDeletedをFalseに戻して復帰させます |
| 物理削除(アカウントが残っていない) | アカウントを新規作成します |
割当種別
割当種別は「グループ」と「コンテナーオブジェクト」の2つです。どちらもグループプッシュに対応しています。
| 割当種別 | タイプ | 割当項目 | 説明 |
|---|---|---|---|
| グループ | 複数のグループに所属させる | Active Directoryのグループ | グループへメンバーを追加・削除します |
| コンテナーオブジェクト | 優先度の高いグループに所属させる | Active DirectoryのOU(組織単位)とUsersコンテナー | OUまたはコンテナーへメンバーを追加・削除します |
「グループ」の割当
Active Directoryのグループは、ユーザーやコンピューター・他のグループをまとめて、権限やメール配信を制御する管理単位です。大きく次の2種類があります。
- セキュリティグループ
- ファイル、フォルダー、プリンターなどへのアクセス権を管理するために使用します。
- セキュリティグループへアクセス権限を追加すると、そのグループに属するメンバー全体へアクセス権が適用されます。
- 配布グループ(ディストリビューショングループ)
- 主にメールの配信リストとして機能し、Exchangeなどのメールシステムで使用します。
- 権限を付与する操作はできず、メールの宛先としてのみ使用できます。
プライマリグループは、作成したユーザーに対して既定で割り当てられるグループです。各ユーザーには必ずひとつのプライマリグループが設定され、その所属を外せません。ユーザーを作成した時点で、すでに所属しています。初期値はDomain Usersグループです。プライマリグループを変更するには、PowerShellでコマンドを実行します。
プライマリグループに対する剥奪タスクを単体で実行すると、エラーになりタスクが失敗します。 手動でスキップしてください。削除タスクと同時に実行した場合、剥奪タスクは成功の扱いになりますが、実際には何も実行されません(削除タスクによって削除されます)。
「コンテナーオブジェクト」の割当
この割当種別では、Active DirectoryのOU(組織単位)およびUsersコンテナーへ、メンバーを追加・削除できます。
- 組織単位は、組織や職務に応じてオブジェクトをまとめる管理単位です。Active Directoryの管理者が追加・削除できます。
- コンテナーは組織単位とは別の概念です。オブジェクトをまとめる管理単位である点は同じですが、Active Directory環境の構築時の初期状態から追加・削除ができません。
Usersコンテナーは、アカウント作成時にアカウントが既定で追加されるコンテナーです。
オブジェクトの種別としては、コンテナーとOUはまったく別物です。ただしUsersコンテナーとOUは排他的にひとつのみ所属できるため、YESODではひとつの割当種別として扱っています。
同期する項目
必須項目
既定で設定される項目です。
| 項目名 | key | value(デフォルト値) | key(Active Directory) | 備考 |
|---|---|---|---|---|
| ユーザー名 | user.commonName | user.email | cn | 作成時に必須の項目ですが、作成後はYESODからの更新を実行しません(項目を更新してもActive Directory側へ反映されません)。+は使えません |
| 姓 | user.familyName | user.familyNameLocalPreferred | sn | - |
| 名 | user.givenName | user.givenNameLocalPreferred | givenName | - |
| メールアドレス | user.mail | user.email | mail | - |
| ログオン名(現在) | user.userPrincipalName | user.email | userPrincipalName | - |
| ログオン名(以前のバージョン) | user.sAMAccountName | String.substringBefore(user.email, "@") | sAMAccountName | "/ \ [ ] : ; |= , + * ? < >の文字列は使えません。詳細はsAMAccountNameを参照してください |
メールアドレスの名寄せには、UPN(ログオン名)を使用します。
任意項目
属性マッピングで指定できる項目です。「タブ」は、Active Directoryの管理画面で該当の項目が置かれているタブです。
| 項目名 | タブ | key | 型 | 属性の仕様 | 備考 |
|---|---|---|---|---|---|
| 表示名 | 全般 | user.displayName | Unicode文字列 | 属性の仕様 | - |
| イニシャル | 全般 | user.initials | Unicode文字列 | 属性の仕様 | - |
| 説明 | 全般 | user.description | Unicode文字列 | 属性の仕様 | - |
| 事業所 | 全般 | user.physicalDeliveryOfficeName | Unicode文字列 | 属性の仕様 | - |
| 電話番号 | 全般 | user.telephoneNumber | Unicode文字列 | 属性の仕様 | - |
| Webページ | 全般 | user.wWWHomePage | Unicode文字列 | 属性の仕様 | - |
| 国/地域(ISO-3166) | 住所 | user.c | Unicode文字列 | 属性の仕様 | 想定する値はISO-3166のアスキー2文字のコード(ISなど)ですが、入力チェックはありません。国・地域はc、co、countryCodeがGUIの設定変更でまとめて更新されます。属性同期などでYESODから反映する場合は、不整合が起きないよう運用してください |
| 国/地域(表示) | 住所 | user.co | Unicode文字列 | 属性の仕様 | 入力例: アイスランドなど。入る値はWindowsの仕様によります |
| 国/地域 | 住所 | user.countryCode | 32バイト整数値 | 属性の仕様 | ユーザーが選択した言語の国コードを指定する属性と記載がありますが、入る値はWindowsの仕様によります |
| 郵便番号 | 住所 | user.postalCode | Unicode文字列 | 属性の仕様 | - |
| 都道府県 | 住所 | user.st | Unicode文字列 | 属性の仕様 | - |
| 市区町村 | 住所 | user.l | Unicode文字列 | 属性の仕様 | - |
| 私書箱 | 住所 | user.postOfficeBox | Unicode文字列の配列 | 属性の仕様 | LDAP上は配列ですが、Windowsで入力する際はSetの入力チェックがかかります |
| 番地 | 住所 | user.streetAddress | Unicode文字列 | 属性の仕様 | - |
| 自宅 | 電話 | user.homePhone | Unicode文字列 | 属性の仕様 | - |
| 自宅(その他) | 電話 | user.otherHomePhone | Unicode文字列の配列 | 属性の仕様 | - |
| ポケットベル | 電話 | user.pager | Unicode文字列 | 属性の仕様 | - |
| ポケットベル(その他) | 電話 | user.otherPager | Unicode文字列の配列 | 属性の仕様 | - |
| 携帯 | 電話 | user.mobile | Unicode文字列 | 属性の仕様 | - |
| 携帯(その他) | 電話 | user.otherMobile | Unicode文字列の配列 | 属性の仕様 | - |
| FAX | 電話 | user.facsimileTelephoneNumber | Unicode文字列 | 属性の仕様 | - |
| FAX(その他) | 電話 | user.otherFacsimileTelephoneNumber | Unicode文字列の配列 | 属性の仕様 | - |
| IP電話 | 電話 | user.ipPhone | Unicode文字列 | 属性の仕様 | - |
| IP電話(その他) | 電話 | user.otherIpPhone | Unicode文字列の配列 | 属性の仕様 | - |
| メモ | 電話 | user.info | Unicode文字列 | 属性の仕様 | - |
| 会社名 | 組織 | user.company | Unicode文字列 | 属性の仕様 | - |
| 「部署」 | 組織 | user.department | Unicode文字列 | 属性の仕様 | - |
| 役職 | 組織 | user.title | Unicode文字列 | 属性の仕様 | - |
| 上司 | 組織 | user.manager | DN参照 | 属性の仕様 | 入力されたDNをそのまま更新します。Active Directoryの管理者が正しい値を入力してください |
| 姓ふりがな | フリガナ | user.msDS_PhoneticLastName | Unicode文字列 | 属性の仕様 | - |
| 名ふりがな | フリガナ | user.msDS_PhoneticFirstName | Unicode文字列 | 属性の仕様 | - |
| 表示名ふりがな | フリガナ | user.msDS_PhoneticDisplayName | Unicode文字列 | 属性の仕様 | - |
| 会社名ふりがな | フリガナ | user.msDS_PhoneticCompanyName | Unicode文字列 | 属性の仕様 | - |
| 部署名ふりがな | フリガナ | user.msDS_PhoneticDepartment | Unicode文字列 | 属性の仕様 | - |
| 拡張項目1 | なし | user.extensionAttribute1 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| 拡張項目2 | なし | user.extensionAttribute2 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| 拡張項目3 | なし | user.extensionAttribute3 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| 拡張項目4 | なし | user.extensionAttribute4 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| 拡張項目5 | なし | user.extensionAttribute5 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| 拡張項目6 | なし | user.extensionAttribute6 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| 拡張項目7 | なし | user.extensionAttribute7 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| 拡張項目8 | なし | user.extensionAttribute8 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| 拡張項目9 | なし | user.extensionAttribute9 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| 拡張項目10 | なし | user.extensionAttribute10 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| 拡張項目11 | なし | user.extensionAttribute11 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| 拡張項目12 | なし | user.extensionAttribute12 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| 拡張項目13 | なし | user.extensionAttribute13 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| 拡張項目14 | なし | user.extensionAttribute14 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| 拡張項目15 | なし | user.extensionAttribute15 | Unicode文字列 | 属性の仕様 | 事前に用意されている拡張項目です |
| その他ADのグループクラスが持つ各種属性 | なし | user.attr.<指定したい属性のLdap-Display-Name> | Unicode文字列 | - | 属性のLdap-Display-Nameをそのままkeyとして指定すると、その属性へ値をセットできます。必須項目および任意項目にある属性は対象外です。その場合はattr.を付けずに設定してください。YESODが保証するのは、指定した属性とその値をActive Directoryへ送るところまでです。実際に反映されるかどうかは属性の仕様によります |
グループプッシュ(グループ)
割当種別の「グループ」は、グループプッシュに対応しています。グループプッシュそのものの説明は、グループプッシュとはを参照してください。
グループの親子関係
YESODで親子関係のあるグループの作成タスクを両方実行すると、Active Directoryに作成されたグループへその親子関係が反映されます。
Active Directoryでは、親グループの「メンバー」属性へ子グループが追加されます。「メンバー」属性には、グループに所属しているアカウントと子グループの両方が表示されます。
「メンバー」属性で表現される親子関係は、論理的なものです。Active Directoryのツリー上では、これらのグループは同一の階層下に並列で作成されます。

グループの作成先の階層は、「同期する項目」のparentDnで指定できます。グループごとに作成先の階層を制御する場合は、この項目を設定してください。
グループの作成
グループの作成の挙動は、次の2つで変わります。
- Active Directoryの「ゴミ箱」機能が有効になっているかどうか
- 作成先の階層に、同一の名前のグループが存在するかどうか
「ゴミ箱」機能が有効である場合は、次のとおりです。
| 状況 | 挙動 |
|---|---|
| 同一階層上に同じ名前のグループが存在せず、「ゴミ箱」に同一階層から捨てられた同じ名前のグループが存在する | 「ゴミ箱」内のグループを復元し、情報を更新する |
| 同一階層上に同じ名前のグループが存在せず、「ゴミ箱」に同一階層から捨てられた同じ名前のグループも存在しない | グループを新規作成する |
| 同一階層上に同じ名前のグループが存在する | そのグループの情報を更新する |
「ゴミ箱」機能が無効である場合は、次のとおりです。
| 状況 | 挙動 |
|---|---|
| 同一階層上に同じ名前のグループが存在しない | グループを新規作成する |
| 同一階層上に同じ名前のグループが存在する | そのグループの情報を更新する |
グループの削除
Active Directoryの「ゴミ箱」機能が有効かどうかで、挙動が変わります。
| 状況 | 挙動 |
|---|---|
| 「ゴミ箱」機能が有効になっている | グループを「ゴミ箱」に移動する |
| 「ゴミ箱」機能が有効になっていない | グループを完全削除する |
グループプッシュで同期する項目
| 属性 | 必須 | key | デフォルト値 | 型 | 例 | 備考 |
|---|---|---|---|---|---|---|
| グループ名(cn / commonName) | ✅ | cn | group.groupNameLocal | 文字列 | - | 最大64文字です。超過した場合は先頭64文字だけ反映されます。同一階層内の既存グループと重複する値は指定できません |
| グループ名(昔のバージョンのOS用) | ✅ | sAMAccountName | group.groupNameLocal | 文字列 | - | 最大20文字です。超過した場合は先頭20文字だけ反映されます。階層に関係なく、同じActive Directoryドメイン内の既存グループと重複する値は指定できません |
| グループの種類 | ✅ | groupType | "GlobalSecurityGroup" | 文字列 | "GlobalSecurityGroup" "DomainLocalSecurityGroup" "UniversalSecurityGroup" "GlobalDistributionGroup" "DomainLocalDistributionGroup" "UniversalDistributionGroup" | グループの種類とスコープを制御する値です。種類2つ(セキュリティグループ、配布グループ)×スコープ3つ(ドメインローカルグループ、グローバルグループ、ユニバーサルグループ)の6通りがあります。詳細はgroupTypeを参照してください |
| 作成先のコンテナ・OU | - | parentDn | - | 文字列 | ドメイン直下に作成する場合: "DC=yesodco,DC=local" 特定のOUの配下に作成する場合: "OU=Groups,DC=yesodco,DC=local" | グループの作成先となるコンテナー・OUなどのDistinguishedNameを指定します。未指定の場合は、業務アセット作成時に指定した「BaseDn」の直下に作成します。「BaseDn」の配下ではない要素は指定できません。グループ作成タスクの実行時のみ考慮されます。作成後に値を変更しても、属性同期の対象にはなりません |
| メールアドレス | - | mail | - | 文字列 | - | グループ自体のメールアドレスです |
| 説明 | - | description | - | 文字列 | - | - |
| 注意書き(メモ) | - | info | - | 文字列 | - | - |
| グループの管理者 | - | managedBy | - | 文字列 | "CN=yesodadmin,CN=Users,DC=yesodco,DC=local" | DistinguishedName形式の文字列で指定します |
| その他ADのグループクラスが持つ各種属性 | - | attr.<指定したい属性のLdap-Display-Name> | - | 文字列 | - | group classで定義されている属性のLdap-Display-Nameをそのままkeyとして指定すると、その属性へ値をセットできます。cn sAMAccountName groupType mail description info managedBy は対象外です。その場合はattr.を付けずに設定してください。YESODが保証するのは、指定した属性とその値をActive Directoryへ送るところまでです。実際に反映されるかどうかは属性の仕様によります |
グループプッシュ(コンテナーオブジェクト)
割当種別の「コンテナーオブジェクト」は、グループプッシュに対応しています。
グループプッシュで作成できるのは、組織単位(Organizational Unit)のみです。コンテナーの作成は、Active Directoryの仕様上できません。
OUの親子関係
YESODで親子関係のあるグループの作成タスクを両方実行すると、Active Directoryに作成されたOUへその親子関係が反映されます。Active Directoryでは、親OUの配下の階層に子OUが追加されます。

子OUは必ず親OUの配下に作成されます。親OUが存在しない最上位のOUについては、作成先の階層を「同期する項目」のparentDnで指定できます。作成先の階層を制御する場合は、この項目を設定してください。
コンテナーオブジェクトの作成
OUの作成の挙動は、次の2つで変わります。
- Active Directoryの「ゴミ箱」機能が有効になっているかどうか
- 作成先の階層に、同一の名前のOUが存在するかどうか
「ゴミ箱」機能が有効である場合は、次のとおりです。
| 状況 | 挙動 |
|---|---|
| 同一階層上に同じ名前のOUが存在せず、「ゴミ箱」に同一階層から捨てられた同じ名前のOUが存在する | 「ゴミ箱」内のOUを復元し、情報を更新する |
| 同一階層上に同じ名前のOUが存在せず、「ゴミ箱」に同一階層から捨てられた同じ名前のOUも存在しない | OUを新規作成する |
| 同一階層上に同じ名前のOUが存在する | そのOUの情報を更新する |
「ゴミ箱」機能が無効である場合は、次のとおりです。
| 状況 | 挙動 |
|---|---|
| 同一階層上に同じ名前のOUが存在しない | OUを新規作成する |
| 同一階層上に同じ名前のOUが存在する | そのOUの情報を更新する |
コンテナーオブジェクトの削除
Active Directoryの「ゴミ箱」機能が有効かどうかで、挙動が変わります。
| 状況 | 挙動 |
|---|---|
| 「ゴミ箱」機能が有効になっている | OUを「ゴミ箱」に移動する |
| 「ゴミ箱」機能が無効になっている | OUを完全削除する |
コンテナーオブジェクトのグループプッシュで同期する項目
| 属性 | 必須 | key | デフォルト値 | 型 | 例 | 備考 |
|---|---|---|---|---|---|---|
| 組織単位名(cn / ou) | ✅ | name | group.groupNameLocal | 文字列 | - | 最大64文字です。超過した場合は先頭64文字だけ反映されます。同一階層内の既存OUと重複する値は指定できません |
| 作成先のコンテナ・OU | - | parentDn | - | 文字列 | ドメイン直下に作成する場合: "DC=yesodco,DC=local" 特定のOUの配下に作成する場合: "OU=Groups,DC=yesodco,DC=local" | OUの作成先となるコンテナー・OUなどのDistinguishedNameを指定します。未指定の場合は、業務アセット作成時に指定した「BaseDn」の直下に作成します。この値が考慮されるのは、そのOUが階層構造の最上位のOUである場合のみです。子要素の場合はparentDnの値に関係なく、親要素の配下に作成されます。「BaseDn」の配下ではない要素は指定できません。OU作成タスク・移動タスクの実行時のみ考慮されます。作成後に値を変更しても、属性同期の対象にはなりません |
| 説明 | - | description | - | 文字列 | - | - |
| OUの管理者 | - | managedBy | - | 文字列 | "CN=yesodadmin,CN=Users,DC=yesodco,DC=local" | DistinguishedName形式の文字列で指定します |
| その他ADのOUクラスが持つ各種属性 | - | attr.<指定したい属性のLdap-Display-Name> | - | 文字列 | - | organizationalUnit classで定義されている属性のLdap-Display-Nameをそのままkeyとして指定すると、その属性へ値をセットできます。name description managedBy は対象外です。その場合はattr.を付けずに設定してください。YESODが保証するのは、指定した属性とその値をActive Directoryへ送るところまでです。実際に反映されるかどうかは属性の仕様によります |