owncloud x Active Directoryのユーザー登録自動化をAWXでやってみる


owncloudとActive Directoryでユーザー認証の連携しているシステムをAWX(Ansible Tower)を使ってユーザー登録を自動化してみた例です。

環境

項目 バージョン
owncloud 10.2.1
AWX 6.0.0.0
Windows Server 2016

処理の流れ

  • WinRMでADにアクセスしてADユーザーを作成
    • owncloudは owncloud Users に属していないとログインできないようにする
    • そのため、作成したユーザーには owncloud Users を紐付ける
    • ユーザーは OU=owncloud に作成します
  • SSHでowncloudサーバにアクセスしてADユーザーのディレクトリを作成する
    • owncloudのCLIツールで登録したユーザー情報をADから取得する
    • ディレクトリは objectGUID 名で作成する(owncloud上の管理)

Playbook

Playbookは以下の2つを使います。

domain_operation.yml

パラメーターの詳細は以下ドキュメントを参照ください。

https://docs.ansible.com/ansible/latest/modules/win_domain_user_module.html#win-domain-user-module

create_user_owncloud.yml

ldap:search を使ってADからユーザー情報を取得します。
取得した情報を元にユーザー用のディレクトリを作成します。
ちなみに取得出来る情報は以下のものです。

ユーザーが存在する場合の実行結果は ユーザー名 (objectGUID) です。

owncloud設定

AWX設定

AD user operation

ADのユーザーを登録するテンプレートです。

owncloud create user operation

owncloud上にADユーザーのディレクトリを作成するテンプレートです。

create owncloud user

上記2つのテンプレートを使ったワークフローです。
ワークフローは AD user operation -> owncloud create user operation の順番で実行するようにしています。
ワークフローでは以下のSURVEYを設定しています。

都道府県 のデフォルトは日本語で入れているので数値参照(10進数)でエンコードされています。

実行

以下がデモ動画です。

Create users in active directory and owncloud with AWX(Ansible Tower) from sky_joker on Vimeo.

ADにユーザーを作成してowncloudにログインすることが出来ました 🙂

最後に

ちなみに、owncloud上にユーザーのディレクトリを作成しなくても初回ログイン時に自動で作成されます。
ここで作った理由は、例えばログインする前にファイルを事前に作っておきたい場合などで使えるかもと思って試しにやっています。
例えば、標準のファイルなどを事前に入れておきたい時とかに使えるかもと思っています 🙂
後は、AnsibleやTower/AWXで作成したファイルの保存先にユーザー名を指定する場合は、同じような処理が必要なので後々役立つかもしれないと言う備忘録的な感じで書いていたりします。

それでは、みんなでハッピーオートメーション!

2 Comments

  1. アバター
    池上修一 2019年8月16日
    • アバター
      インフラ おじさん 2019年8月16日

Leave a Reply

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください