4. 操作方法 一覧へ 6. SaMMAadmin リリースノート
5. Appendix
5.1. SSO連携機能を利用する場合
本章では、SSOを実現するために、Keycloakを利用する場合を例に解説します。
Note
SSO連携機能を利用する場合、postLDAPadminは4.00以降のバージョンをご利用ください。
5.1.1. システム構成
この例では、Keycloakの認証モジュールにApacheのmod_auth_openidcを利用します。 本解説で想定しているシステム構成は以下の通りです。
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の設定例です。
[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と連携している場合の認証フローは以下になります。
- ログイン処理
- 送信者がSaMMAadminへアクセス
- Keycloakのログイン画面へ遷移
- Keycloakのユーザ情報をApacheへ渡す
- Apacheが受けとったKeycloakのユーザ情報を、SaMMAadminへ渡す
- Apacheから渡ってきたKeycloakのユーザ情報に含まれている、WebAuthUserNameで指定した値でログイン
- ログアウト処理
- LogoutRedirectUrlで指定したURLへ遷移
- Keycloakのログイン画面へ遷移
5.1.4. Keycloakとの連携について
postLDAPadminは、ユーザ名とメールアドレスのローカルパートが一致していることが前提になっています。 しかしKeycloakでは、ユーザ名とローカルパートが異なるメールアドレスを登録することができます。 そのため、WebAuthUserNameに設定した値によって、KeycloakとLDAPサーバに登録されているデータが異なる場合があります。
- Keycloakに以下のユーザが登録されている場合を例として解説します。
- ユーザ名:test01
- メールアドレス: user01@test.designet.jp
以下のように、WebAuthUserNameの値によって、LDAPサーバに登録される内容が変わります。
- WebAuthUserName=OIDC_CLAIM_preferred_usernameと設定した場合
- ユーザ名: test01
- メールアドレス: test01@test.designet.jp
※LDAPサーバには、ユーザ名とサーバのドメイン名を組み合わせたものがメールアドレスとして登録されます。
- WebAuthUserName=OIDC_CLAIM_emailと設定した場合
- ユーザ名: user01
- メールアドレス: user01@test.designet.jp
※LDAPサーバには、メールアドレスのローカルパートがユーザ名として登録されます。
Note
postLDAPadminサーバのドメインとメールアドレスのドメインパートが異なる場合、認証に失敗します。
5.2. 宛先ごとに安全化方式を選択する場合
本章では、宛先ごとに安全化方式を選択するための設定を解説します。
Note
宛先ごとに安全化方式を選択するには、以下のバージョンを利用してください。
- SaMMA 5.0.4 以降
- SaMMAadmin 5.0.3 以降
SaMMAadminで、宛先ごとに安全化方式を選択できるようにするには、以下の設定が必要です。
- 設定ファイル(web.conf)にコマンド設定ファイルを追加
- 管理者用イニシャルファイル(initial)に設定を追加
- SaMMAを安全化の選択機能対応に設定
- SaMMAの設定方法については SaMMAマニュアルの安全化の選択機能 を参照してください。
- コマンド設定ファイルを作成
5.2.1. 設定ファイル(web.conf)にコマンド設定ファイルを追加
管理する仮想ドメインのweb.conf内の[postLDAPadmin]セクションに、CommandConfの項目を追加します。
CommandConfには、コマンドリストを設定するファイルを指定します。
:
[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
ユーザ用画面からは設定できません。
- 管理者用受信者設定一覧画面
- 一覧画面に
安全化方法
という項目が表示されます。 - 安全化方法で表示される方式は コマンド設定ファイルを作成 で指定した方式です。コマンド設定ファイルに記載されていないコマンドはそのまま表示されます。
- 一覧画面に
- 管理者用受信者設定追加画面
- 設定項目に
安全化方法
という項目が表示されます。 - プルダウンメニューで選択できるのは コマンド設定ファイルを作成 で指定した方式です。コマンド設定ファイルに記載されていないものは設定できません。
- 設定項目に
- 管理者用受信者設定編集画面
- 設定項目に
安全化方法
という項目が表示されます。 - プルダウンメニューで選択できるのは コマンド設定ファイルを作成 で指定した方式です。
- 設定項目に
Note
変更前の安全化方法が、コマンド設定ファイルに記載されていないコマンドの場合、変更しない、もしくはコマンド設定ファイルに記載されている安全化方法にのみ変更することが可能です。
変更後はコマンド設定ファイルに記載されている安全化方法にしか変更できなくなるため注意してください。