Metacat 2.3.0 セットアップ手順 (付属機能)¶
Metacat に付属しているその他の機能を使用するための手順を記す。
LDAP機能¶
cgi-bin/ldapweb.cgi を使用して、ブラウザ上から、 Metacat へのログインや、LDAP に新規アカウントを作成したりできる。
前提¶
この CGI は、ユーザの DN が uid, o, dc の3つの部分から 構成されていることを前提にしている。ここでは、o 以降が
o=myorg,dc=mydomain,dc=tld
であるとして説明する。
ソースコードの修正¶
ソースコード中に DN の一部がハードコードされている部分があるので、 手作業で修正する。修正するべきファイルは、 /usr/local/apache-tomcat-6.0/webapps/metacat/style/common/common-settings.js
--- common-settings.jsp.orig 2014-02-14 15:27:49.000000000 +0900
+++ common-settings.jsp 2014-02-14 15:28:17.000000000 +0900
@@ -69,7 +69,7 @@
String LOGIN_LABEL = "Login";
// last part of LDAP username to be appended after organization
- String LDAP_DOMAIN = ",dc=ecoinformatics,dc=org";
+ String LDAP_DOMAIN = ",dc=mydomain,dc=tld";
String KNB_SITE_URL = PropertyService.getProperty("application.knbSiteURL");
String CONTEXT_NAME = PropertyService.getProperty("application.context");
および、webapps/metacat/style/common/templates/loginForm.tmpl。
--- loginForm.tmpl.orig 2014-02-14 15:26:06.000000000 +0900
+++ loginForm.tmpl 2014-02-14 15:26:26.000000000 +0900
@@ -92,6 +92,7 @@
"padding-top: 2px; padding-bottom: 2px;"><select name=
"organization" style="width:140px;">
<option value="" selected>— choose one —</option>
+ <option value="myorg" >myorg</option>
<option value="NCEAS" >NCEAS</option>
<option value="LTER" >LTER</option>
<option value="KU" >KU</option>
Perl の準備¶
ldapweb.cgi は Perl CGI であり、幾つかの Perl モジュールを要求する。
# pkg install p5-libwww
# pkg install p5-Config-Properties
# pkg install p5-XML-LibXML
# pkg install p5-XML-LibXSLT
# pkg install p5-Template-Toolkit
# pkg install p5-CGI-Session
# pkg install p5-Digest-SHA1
# pkg install p5-perl-ldap
# pkg install p5-DateTime
# pkg install p5-Captcha-reCAPTCHA
Google reCaptcha key の取得¶
ldapweb.cgi はスパム防止のために Google reCaptcha を使用するので、 Google からそのキーを取得する必要がある。
- Google にログインする。 (Google アカウントを持っていない場合はアカウントを作成する)
- https://www.google.com/recaptcha/admin/create を開く。
- 自サイトの URL を入力して Create Key をクリックする。
- 画面に表示された Public Key と Private Key をメモする。
設定¶
slapd の アクセス制御設定
パスワードを各自が変更できるようにする。 /usr/local/etc/openldap/slapd.conf に以下を設定する。
access to * by self write by * read by anonymous auth
LDAP に myorg 用のエントリを作成する。
ここでは、myorg.ldif というファイルに下記の内容が含まれているものとする。
dn: o=myorg,dc=mydomain,dc=tld objectClass: dcObject objectClass: organization dc: myorg o: myorg.mydomain.tld
これを LDAP に投入する。
# ldapadd -h localhost -D "cn=Manager,dc=mydomain,dc=tld" -W -f myorg.ldif (LDAP 管理者パスワードを入力する)
/usr/local/apache-tomcat-6.0/webapps/metacat/WEB-INF/metacat.properties に myorg 用の設定を追加する。
ldap.templates.organizationList=myorg (修正) organization.name.myorg=myorg (以下追加) organization.base.myorg=dc=mydomain,dc=tld organization.org.myorg=o=myorg organization.user.myorg=cn=Manager,dc=mydomain,dc=tld organization.password.myorg=ldapadminpass organization.expiration.myorg=36
myorg 以外の organzation 設定(organization.name.NCEAS など)は 消してしまっても良い。
/usr/local/apache-tomcat-6.0/webapps/metacat/WEB-INF/metacat.properties に Google reCaptcha key を設定する。
ldap.recaptcha.publickey=(取得した PublicKey をコピーする) ldap.recaptcha.privatekey=(取得した PrivateKey をコピーする)
/usr/local/apache-tomcat-6.0/webapps/metacat/style/skins/default/default.properties の email 関係の プロパティを修正する。これらの情報はアカウント操作をした際の 確認メールに使用される。
email.sender=(適切に設定する) email.recipient=(適切に設定する) email.admin=(適切に設定する)
Apache が CGI を実行するように設定する。 具体的には、 /usr/local/etc/apache24/httpd.conf の、 mod_cgi の LoadModule 設定のコメントを外す。
CGI のファイルと URL を関連づける。 /usr/local/etc/apache24/Includes/metacat.conf に以下を追加する。
ScriptAlias /metacat/cgi-bin/ /usr/local/apache-tomcat-6.0/webapps/metacat/cgi-bin/ <Directory "/usr/local/apache-tomcat-6.0/webapps/metacat/cgi-bin/"> Options +ExecCGI Require all granted </Directory>
CGI の処理を Apache に実行させるために、tomcat へのリバースプロキシを 禁止する。/usr/local/etc/apache24/Includes/metacat.conf に以下を追加する。
ProxyPass /metacat/cgi-bin ! (ProxyPass /metacat よりも前の位置に追加すること。)
設定を読み込ませる。
# service tomcat6 restart # service apache24 reload # service slapd restart
確認¶
- Metacat トップページのログインフォームの、organization ドロップダウン メニューに、 myorg が追加されていることを確認する。
- ログインフォームの create a new account をクリックして、 organization ドロップダウンメニューに myorg が追加されていること、 reCaptcha が表示されていることを確認する。
- 新規アカウントの作成、パスワードリセット、パスワード変更が実行できるか 確認する。