オープンソース

一覧へ

5. Appendix

5.1. SaMMAがサポートするMTA

サポートしているMTAの設定は下記を参照してください。

5.2. 添付ファイル名に外字を使用する場合

添付ファイル名に外字を使用する場合、暗号化したファイルのファイル名が文字化けしてしまうことがあります。 その場合は、以下のように文字コード変換を行う設定をSaMMAの起動スクリプトで行ってください。

5.2.1. iconvのインストール

libiconvのソースパッケージを以下のURLから入手してください。

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

libiconvのソースパッケージをダウンロードしたら、環境に合わせてRPMパッケージを作成してください。 上記のURLのlibiconvソースパッケージでは、/usr/loca/samma配下にインストールされます。

5.2.2. SaMMA起動スクリプトの作成

libiconvをインストールしたら、SaMMAの起動スクリプトを作成してください。

次は、SaMMAのインストールディレクトリが/usr/localの時に、SaMMAの起動スクリプトを/usr/local/bin/sammainitとして作成した場合の例です。

SaMMA起動スクリプトの例(/usr/local/bin/sammainit)
 #!/bin/sh

 export LD_LIBRARY_PATH=/usr/local/samma/lib
 export LD_PRELOAD=/usr/local/samma/lib/preloadable_libiconv.so
 export CHARSET_ALIAS="Shift_JIS=CP932:EUC-JP=EUC-JP-MS:ISO-2022-JP=ISO-2022-JP-MS"

 /usr/local/bin/samma

この起動スクリプトでは、CHARSET_ALIAS環境変数を使用して、CP932、EUC-JP-MS、ISO-2022-JP-MSの変換を可能にしています。

SaMMA起動スクリプトを作成したら、SaMMAを再起動します。 SaMMAをinittabから起動している場合は、/etc/inittabの設定を変更します。

/etc/inittabの設定例
 ml:345:respawn:/usr/local/bin/sammainit

設定後、init qコマンドで設定を反映してください。 設定を反映したら、現在起動しているSaMMAのプロセスをkillコマンドで停止してください。SaMMAが再起動します。

5.3. SSO連携機能を利用する場合

SSO連携機能を利用する場合、postLDAPadminは4.00以降のバージョンをご利用ください。

5.3.1. システム構成

本章では、SSOを実現するために、Keycloakを利用する場合を例に解説します。
この例では、Keycloakの認証モジュールにApacheのmod_auth_openidcを利用します。
本解説で想定しているシステム構成は以下の通りです。
SSO連携機能利用時のシステム構成

SSO連携機能利用時のシステム構成

Apacheのmod_auth_openidcの設定ファイルには以下の設定が必要です。
redirect_uri の部分は、Keycloak側に設定した値と合わせてください。
OIDCRedirectURI http://test.designet.jp/postldapadmin/user/redirect_uri

5.3.2. 設定ファイル(web.conf)の編集

管理する仮想ドメインのweb.confに以下の項目を設定します。
  • WebAuthMode
  • WebAuthMakeUser
  • WebAuthUserName
  • LogoutRedirectUrl
  • LdapFilter

設定例は以下になります。
web.confの設定例(SSO連携)
[global]
:
WebAuthMode=1
WebAuthMakeUser=1
WebAuthUserName=OIDC_CLAIM_preferred_username
LogoutRedirectUrl=redirect_uri?logout=http://test.designet.jp/postldapadmin/user/index.php

[postldapadmin]
:
LdapFilter=(uid=%u)
:
SSO連携機能で設定する項目について解説します。
  • WebAuthMode(デフォルト値:0)
    • SSO連携機能の無効・有効を指定します。
    • 0が無効、1が有効です。
  • WebAuthMakeUser(デフォルト値:0)
    • SSO連携機能でログインする際に、LDAPサーバにユーザがいなかったら作成するかどうかを指定します。
    • 0は作成する、1は作成しないとなります。
  • WebAuthUserName(デフォルト値:OIDC_CLAIM_preferred_username)
    • postLDAPadminに渡すユーザIDが格納されている環境変数名を指定します。
    • デフォルトでは、Keycloakのユーザ名が格納されている環境変数名を指定しています。
    • 環境変数名はSSOクライアントによって異なりますので、各マニュアルをご確認ください。
    • 設定値の利用場面については 認証フロー を参照してください。
  • LogoutRedirectUrl(デフォルト値:index.php)
    • ユーザ画面でログアウトボタンを押した後に遷移するURLを指定します。
    • 設定例では、Keycloakのログイン画面へ遷移するように指定しています。
    • ログアウト用のURLはSSOクライアントによって異なりますので、各マニュアルをご確認ください。
    • 設定値の利用場面については 認証フロー を参照してください。

Note

LogoutRedirectUrlは、デフォルトではSaMMAadminのユーザログイン画面へ遷移します。
そのため、SSO連携機能を利用している場合にログアウトボタンを押しても、SSO連携機能により自動で再ログインしてしまいます。
SaMMAadminからログアウトできるようにするためには、LogoutRedirectUrlにログアウト用のURLを指定する必要があります。
ログアウト用のURLは、利用しているSSOクライアントのマニュアルを参照してください。

5.3.3. 認証フロー

SSO連携機能では、認証の際 web.conf で設定した以下の項目を使用します。

  • ログイン処理 :WebAuthUserName
  • ログアウト処理:LogoutRedirectUrl

Apacheのmod_auth_openidcを利用して、Keycloakと連携している場合の認証フローは以下になります。

SSO連携機能の認証フロー

SSO連携機能の認証フロー

  • ログイン処理
    1. 送信者がSaMMAadminへアクセス
    2. Keycloakのログイン画面へ遷移
    3. Keycloakのユーザ情報をApacheへ渡す
    4. Apacheが受けとったKeycloakのユーザ情報を、SaMMAadminへ渡す
    5. Apacheから渡ってきたKeycloakのユーザ情報に含まれている、WebAuthUserNameで指定した値でログイン
  • ログアウト処理
    1. LogoutRedirectUrlで指定したURLへ遷移
    2. Keycloakのログイン画面へ遷移

5.3.4. Keycloakとの連携について

postLDAPadminは、ユーザ名とメールアドレスのローカルパートが一致していることが前提になっています。
しかしKeycloakでは、ユーザ名とローカルパートが異なるメールアドレスを登録することができます。
そのため、WebAuthUserNameに設定した値によって、KeycloakとLDAPサーバに登録されているデータが異なる場合があります。

  • Keycloakに以下のユーザが登録されている場合を例として解説します。

以下のように、WebAuthUserNameの値によって、LDAPサーバに登録される内容が変わります。
  • WebAuthUserName=OIDC_CLAIM_preferred_usernameと設定した場合

※LDAPサーバには、ユーザ名とサーバのドメイン名を組み合わせたものがメールアドレスとして登録されます。

  • WebAuthUserName=OIDC_CLAIM_emailと設定した場合

※LDAPサーバには、メールアドレスのローカルパートがユーザ名として登録されます。

Note

postLDAPadminサーバのドメインとメールアドレスのドメインパートが異なる場合、
認証に失敗します。

一覧へ