オープンソース

一覧へ

5. Appendix

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

本章では、SSOを実現するために、Keycloakを利用する場合を例に解説します。

Note

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

5.1.1. システム構成

この例では、Keycloakの認証モジュールにApacheのmod_auth_openidcを利用します。 本解説で想定しているシステム構成は以下の通りです。

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

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

Apacheのmod_auth_openidcの設定ファイルには以下の設定が必要です。

OIDCRedirectURI http://test.designet.jp/postldapadmin/user/redirect_uri

Note

redirect_uri の部分は、Keycloak側に設定した値と合わせてください。

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

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

  • WebAuthMode
  • WebAuthMakeUser
  • WebAuthUserName
  • LogoutRedirectUrl
  • LdapFilter

以下はweb.confの設定例です。

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クライアントによって異なりますので、各マニュアルをご確認ください。
    • 設定値の利用場面については 認証フロー を参照してください。

LogoutRedirectUrlは、デフォルトではSaMMAadminのユーザログイン画面へ遷移します。 そのため、SSO連携機能を利用している場合にログアウトボタンを押しても、SSO連携機能により自動で再ログインしてしまいます。

SaMMAadminからログアウトできるようにするためには、LogoutRedirectUrlにログアウト用のURLを指定する必要があります。 ログアウト用のURLは、利用しているSSOクライアントのマニュアルを参照してください。

5.1.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.1.4. Keycloakとの連携について

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

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

以下のように、WebAuthUserNameの値によって、LDAPサーバに登録される内容が変わります。

  • WebAuthUserName=OIDC_CLAIM_preferred_usernameと設定した場合

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

  • WebAuthUserName=OIDC_CLAIM_emailと設定した場合

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

Note

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

5.2. 宛先ごとに安全化方式を選択する場合

本章では、宛先ごとに安全化方式を選択するための設定を解説します。

Note

宛先ごとに安全化方式を選択するには、以下のバージョンを利用してください。

  • SaMMA 5.0.4 以降
  • SaMMAadmin 5.0.3 以降

SaMMAadminで、宛先ごとに安全化方式を選択できるようにするには、以下の設定が必要です。

5.2.1. 設定ファイル(web.conf)にコマンド設定ファイルを追加

管理する仮想ドメインのweb.conf内の[postLDAPadmin]セクションに、CommandConfの項目を追加します。

CommandConfには、コマンドリストを設定するファイルを指定します。

web.confの追加例
:
[postLDAPadmin]
:
CommandConf=/usr/local/etc/samma/command.conf ←追加

指定したコマンドファイルの作成は コマンド設定ファイルを作成 を参照してください。

5.2.2. 管理者用イニシャルファイル(initial)に設定を追加

web.confに追記した項目をpostLDAPadminで使用できるようにするために、イニシャルファイルを編集します。

postLDAPadminを/usr/local配下にインストールした場合、管理者用イニシャルファイルは以下の場所に配置されます。

  • /usr/local/postldapadmin/htdocs/admin/postldapadmin/initial

管理者用イニシャルファイルに以下の設定を追加します。

管理者用イニシャルファイルの追加例
$conf_keys["postldapadmin"]["commandconf"] = "no_check";

5.2.3. コマンド設定ファイルを作成

コマンド設定ファイルは、管理者用受信者設定で安全化方式として選択できるコマンドのリストを設定するファイルです。 コマンド設定ファイルには指定したコマンドの表示名を設定します。

web.confに設定したコマンド設定ファイルを作成します。 以下は、 /usr/local/etc/samma/command.confのファイルに設定する例です。

Note

文字コードはEUC-JPで作成してください。

コマンド設定ファイルの例
# コマンド                  # 安全化方式名
/usr/bin/zip                ZIP暗号化
/usr/local/bin/os_uploader  オンラインストレージ連携

5.2.4. 操作画面

宛先ごとに安全化方式を選択する機能は、管理者用受信者設定の画面から操作できます。

Note

ユーザ用画面からは設定できません。

  • 管理者用受信者設定一覧画面
    • 一覧画面に 安全化方法 という項目が表示されます。
    • 安全化方法で表示される方式は コマンド設定ファイルを作成 で指定した方式です。コマンド設定ファイルに記載されていないコマンドはそのまま表示されます。
SaMMAadmin管理者用受信者一覧画面
  • 管理者用受信者設定追加画面
    • 設定項目に 安全化方法 という項目が表示されます。
    • プルダウンメニューで選択できるのは コマンド設定ファイルを作成 で指定した方式です。コマンド設定ファイルに記載されていないものは設定できません。
SaMMAadmin管理者用受信者追加画面
  • 管理者用受信者設定編集画面
    • 設定項目に 安全化方法 という項目が表示されます。
    • プルダウンメニューで選択できるのは コマンド設定ファイルを作成 で指定した方式です。
SaMMAadmin管理者用受信者編集画面

Note

変更前の安全化方法が、コマンド設定ファイルに記載されていないコマンドの場合、変更しない、もしくはコマンド設定ファイルに記載されている安全化方法にのみ変更することが可能です。

変更後はコマンド設定ファイルに記載されている安全化方法にしか変更できなくなるため注意してください。

一覧へ