オープンソース

next up previous contents
Next: 4. クライアントの設定 Up: MEDACA Previous: 2. 準備


3. インストール

3.1 SabreDAVインストール

SabreDAVのパッケージは公式サイトからバージョン1.8.0をダウンロードしてください。

http://code.google.com/p/sabredav/

ファイルはzipで提供されていますので、展開する必要があります。

# unzip SabreDAV-X.X.X.zip

※X.X.Xは版数となります。

展開されたパッケージを配置します。

# mv SabreDAV /usr/local/lib/SabreDAV

3.2 Dg_Commonのpearインストール

Dg_Commonは、以下のURLから入手することができます。

https://github.com/designet-inc-oss/libdg

パッケージをダウンロードしたら、 pear installを実行して、パッケージをインストールしてください。

# pear install DgCommon-X.X.X.tgz

※X.X.Xは版数となります。

インストールを行うと、以下のファイルが配置されます。

/usr/share/pear/Dg_phplib/Dg_Common.php

3.3 Dg_LDAPのpearインストール

Dg_LDAPは、以下のURLから入手することができます。

https://github.com/designet-inc-oss/libdg

パッケージをダウンロードしたら、 pear installを実行して、パッケージをインストールしてください。

# pear install DgLDAP-X.X.X.tgz

※X.X.Xは版数となります。

インストールを行うと、以下のファイルが配置されます。

/usr/share/pear/Dg_phplib/Dg_LDAP.php

3.4 MEDACAの入手と展開

MEDACAは、以下のURLから入手することができます。

https://github.com/designet-inc-oss/MEDACA

MEDACAはrpmパッケージで提供されています。rpmコマンドでインストールしてください。

# rpm -iv medaca-X.XX-X.noarch.rpm

※X.X.Xは版数となります。

MEDACAは以下のディレクトリにインストールされます。

/usr/medaca

3.5 LDAPサーバの設定

LDAPサーバとしてOpenLDAPを例に解説を行います。LDAPサーバの設定は次の手順で設定を行います。

  • スキーマファイルの読み込み
  • LDAPデータベースの索引
  • 設定内容の有効化
  • LDAPの基本構造の作成

3.5.1 スキーマファイルの読み込み

MEDACAが扱うLDAPエントリには、MEDACA特有のオブジェクトクラスが含まれます。MEDACAのrpmパッケージには、スキーマファイルmedaca.schemaが同梱されています。OpenLDAP の場合は、このmedaca.schemaを読み込むだけでMEDACAのオブジェクトクラスを利用できるようになります。

/etc/openldap/slapd.confに以下の設定を追記してください。

slapd.confの設定(追加行)
include /usr/medaca/schema/medaca.schema

※/etc/openldap/slapd.confが存在しない場合は、/usr/share/openldap-servers/slapd.conf.obsoleteのコピーを使用してください。

# cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf

3.5.2 MEDACAで管理するLDAPデータ

medaca.schemaによって使用できる属性は表のとおりです。


表: medaca.schema
項目 内容 解説
オブジェクトクラス calendarResource リソース(*1)を格納する構造型のオブジェクトクラスです。
必須属性 resource リソース名を指定します。
collectionNumMax コレクション(*2)数の制限値を指定します。
collectionCount コレクション数を指定します。
オプション属性 calendarAdminU カレンダーの所有者を指定します。
オブジェクトクラス calendarCollection コレクションを格納する構造型のオブジェクトクラスです。
必須属性 collectionNumber コレクション番号を指定します。
collectionDescription コレクションの表示名を指定します。
collection コレクション名を指定します。
collectionActive コレクションの有効無効フラグを指定します。

1: 有効

0: 無効

authorityDefault コレクションのデフォルト権限を指定します。

0:読み取り

1:読み書き

2:禁止

calendarCTag カレンダー情報を識別するためのタグ番号を指定します。
オプション属性 authorityOrder ユーザ権限の順序情報を指定します。
authorityArticle ユーザの権限情報を指定します。

形式: ID:権限U名称

権限は以下の通りです。

0:読み取り

1:読み書き

2:禁止

オブジェクトクラス calendarData カレンダーデータを格納する構造型のオブジェクトクラスです。
必須属性 calObjectUri カレンダーデータのURIを指定します。
calData カレンダーデータを指定します。
calTime カレンダー更新時間を指定します。

※1 リソースとは、個々のユーザに割り当てられるカレンダー情報の格納領域です。

※2 コレクションとは、1つのリソースに紐づいたカレンダー情報のグループです。

3.5.3 LDAPデータベースの索引

MEDACAでは、LDAPの検索フィルタに属性「resource」を使用するため、次の例のように索引(index)を設定してください。

slapd.confの設定例(追加行)
index resource eq

3.5.4 設定内容の有効化

OpenLDAP 2.4からslapdの設定方法が変更になりました。新しい設定方法では、/etc/openldap/slapd.d/ 配下にツリー構造で設定ファイルを格納する必要があります。以下では、 slapd.confの設定内容をもとに/etc/openldap/slapd.d/ 配下のファイル群を生成する方法について解説します。

デフォルトで配置されている/etc/openldap/slapd.d/配下のファイルを削除してください。

# rm -rf /etc/openldap/slapd.d/*

slaptestコマンドによって/etc/openldap/slapd.d/配下に新しい設定ファイルを作成してください。

# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

作成したファイルのパーミッションを以下の通り設定してください。

# chown -R ldap:ldap /etc/openldap/slapd.d

slapdを再起動してください。

# /etc/init.d/slapd restart

3.5.5 LDAPの基本構造の作成

LDAPの基本構造を準備します。OpenLDAPの場合は、LDAPの基本構造を作成するために次のようなファイル(init.ldif)を用意します。

LDAPの初期設定例(init.ldif)
# designet.jp ← トップのDNのデータ
dn: dc=designet,dc=jp
dc: designet
objectClass: dcObject
objectClass: organization
o: designet

# calendar, designet.jp ← カレンダー情報のrootオブジェクト
dn: ou=calendar,dc=designet,dc=jp
ou: calendar
description: calendar
objectClass: organizationalUnit

LDIFファイルが用意できたら、次のようにldapaddコマンドで登録します。

$ ldapadd -x -D "cn=Manager,dc=designet,dc=jp" -f init.ldif -W

3.6 MEDACAの設定

MEDACAの設定は以下の手順で行います。

  • 設定ファイルの編集
  • DIGEST認証用パスワードファイルの作成

3.6.1 設定ファイルの編集

MEDACAの環境設定ファイルが/usr/medaca/etc/medaca.conf としてインストールされますので、環境に合わせて編集してください。
各項目の詳細は5.1節を参照してください。

medaca.conf の設定例
SyslogFacility=local1
DBtype=LDAP
LdapServer=127.0.0.1
LdapPort=389
LdapBindDn=cn=Manager,dc=designet,dc=jp
LdapBindPw=secret
LdapBaseDn=ou=calendar,dc=designet,dc=jp
AutoResourceCreate=1
AutoCreateCollectionName=home
DebugMode=0

ユーザのパスワードのパスワード管理にLDAPを使用する場合は 設定ファイルに認証用のLDAPの設定項目を追加する必要があります。

medaca.conf の設定例(追加行)
AuthLdap=1
AuthLdapServer=127.0.0.1
AuthLdapPort=389
AuthLdapBindDn=cn=Manager,dc=designet,dc=jp
AuthLdapBindPw=secret
AuthLdapBaseDn=ou=User,dc=designet,dc=jp
AuthLdapFilter=(uid=%s)

3.6.2 DIGEST認証用パスワードファイルの作成

MEDACAはユーザ認証の仕組みとして、SabreDAVのフレームワークを利用したDIGEST認証または認証用のLDAPを利用することができます。 ユーザ認証にLDAPを使用する場合はDIGEST認証用のパスワードファイルを作成する必要はありません。

ユーザ認証にパスワードファイルを使用する場合は ユーザがMEDACAにアクセスできるように、DIGEST認証用のパスワードファイルを作成する必要があります。

パスワードファイルはhtdigestコマンドによって/usr/medaca/etc/にpasswdというファイル名で作成します。

htdigestコマンド書式
htdigest [ -c ] passwdfile realm username

-cオプションはパスワードファイルを新しく作成する場合にのみ指定します。エントリを追加する場合、-cオプションの指定は必要ありません。

パスワードファイルを新しく作成する場合の実行例を以下に示します。realmの値には「MEDACA」を指定するようにしてください。

# htdigest -c /usr/medaca/etc/passwd MEDACA caluser

エントリ追加のための実行例を以下に示します。パスワードファイルを新しく作成する場合と同様、realmの値には「MEDACA」を指定するようにしてください。

# htdigest /usr/medaca/etc/passwd MEDACA caluser2

パスワードファイルには以下のような内容が書き込まれます。

passwd の設定例
caluser:MEDACA:7b961a1146b71ea19789c321b7694cc8
caluser2:MEDACA:745f1c75ea9d081a66c56f07a5b96b23

passwd は、Webサーバの実行アカウントで読み取ることができる必要があります。Webサーバの実行アカウントをファイルの所有者とするように設定してください。また、他のアカウントによって読み取ることができないように権限を設定してください。

# chown root:apache /usr/medaca/etc/passwd
# chmod 640 /usr/medaca/etc/passwd

3.7 Webサーバの設定

Apacheの設定のためにhttpd.confファイルを編集します。以下の3点の設定を行ってください。

  • ディレクトリアクセス制御設定
  • phpのinclude_pathの設定
  • エイリアス設定

3.7.1 ディレクトリアクセス制御設定

MEDACAのインストールディレクトリに対してアクセス許可の設定を行ってください。

httpd.confの設定例
<Directory "/usr/medaca/cal">
order deny,allow
deny from all
allow from all
</Directory>

3.7.2 phpのinclude_pathの設定

MEDACAがSabreDAV、Dg_Common、Dg_LDAPのライブラリを参照できるように、前節で設定した<Directory>ディレクティブの中に以下の設定を追加してください。
次は、SabreDAVを/usr/local/lib/SabreDAV/に展開した場合の例です。

php_value include_path ".:/usr/local/lib/SabreDAV/:/usr/share/pear/Dg_phplib/"

3.7.3 エイリアス設定

MEDACAのインストールディレクトリをクライアントからアクセスするURLにマッピングするために、以下のエイリアスを設定します。

Alias /cal/ "/usr/medaca/cal/"

3.8 syslogの設定

MEDACAのログを出力するためにはsyslogの設定が必要です。 環境設定ファイルのSyslogFacilityで指定した値にあわせて設定してください。
下記の例は、local1のファシリティを/var/log/medaca.logに出力するためのsyslogの設定です。

/etc/rsyslog.confの設定例
# MEDACA Log
local1.* /var/log/medaca.log


next up previous contents
Next: 4. クライアントの設定 Up: MEDACA Previous: 2. 準備
2016年12月13日