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>&#8212; choose one &#8212;</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 が表示されていることを確認する。
  • 新規アカウントの作成、パスワードリセット、パスワード変更が実行できるか 確認する。