Krugle Authentication Service (KAS) Configuration Guide - krugle-jp/Krugle-Library GitHub Wiki
KAS概要
Krugle Searchでは、必要に応じて設定されたプロジェクト毎に権限を設定し、特定のユーザーまたはグループにのみ検索/参照を許容することができます。 デフォルトではこの機能は無効となっており、アクセスに際するログイン認証は行われない設定となっています。 このドキュメントでは、AIOサーバーに標準で実装されているKAS(Krugle Authentication Service)の機能を以下の手順で有効化することにより、外部のLDAPサーバーを介したユーザー認証と権限付与を行う方法をご案内します。
KASによる認証/認可
KASによる認証/認可を設定することにより、各サービスは以下のように稼働します。
1. Krugle Search
- UI 'https://YOUR_AIO_SERVER' にアクセスした際、ログイン認証画面が表示されます
- ログインしたユーザーの属性に応じて検索/参照できるプロジェクトが制限されます
- 管理画面から、プロジェクト毎にユーザー属性との関連付けをすることができます
2. KrugleAI-Web
- KrugleAI-Webではシステム設定として固定のユーザーを設定します。
- その固定ユーザーに許可されたプロジェクトに対してのみAI-Jobの実行が可能です。
3. KLiP
- 端末毎に拡張機能の設定にてユーザー名を指定することができます
- Krugle Search同様、ログインしたユーザーの属性に応じて検索/参照できるプロジェクトが制限されます。
KASの設定手順
前提: 外部のLDAPサーバをご用意ください。 今回の例では以下の設定が投入されていることを前提とします。
- LDAPサーバ構成: OpenLDAP,phpLDAPadmin
- 管理ログイン: cn=admin,dc=krugle,dc=com
- パスワード: password
- 使用ポート: 389/tcp
** サンプルデータ構造
ユーザ設定 (ユーザー名 -- 所属グループ)
- test_user1 - developers、qa
- test_user2 - developers
- test_user3 - developers
- test_user4 - qa
- test_user5 - qa
- test_user6 - qa、pm
グループ設定
- developers (cn=developers,ou=groups,dc=krugle,dc=com)
- qa (cn=qa,ou=groups,dc=krugle,dc=com)
- pm (cn=pm,ou=groups,dc=krugle,dc=com)
OU設定
- groups
- users
AiOサーバ上にOpenLDAPをインストールしている場合は、ポート389番をファイアウォールで許可してください。
ufw allow 389
ufw status | grep 389
[AiOサーバ] 環境設定
※ Filesystem SCMIの設定が完了している必要がありますのでご確認ください。
-
Krugleサービスを停止:
sudo systemctl stop krugle -
Docker設定の変更:
vi /opt/krugle/docker-compose.yml
'filesystem-scmi'サービスの'volumes'配下(145行〜)に以下の項目を追加
- /opt/krugle/scmi/filesystem-scmi/ldap1.properties:/opt/scmi/filesystem-scmi-runtime/ldap1.properties
- LDAP設定の投入:
vi /opt/krugle/scmi/filesystem-scmi/ldapkas.properties
# Use this switch to enable or disable this plugin (default is enabled=true)
enabled=true
# The domain that should be added to the email value if it doesn't contain the @ sign
# email.defaultdomain=domain.com
# Comma separated list of groups that should be included (you can use the wildcards * and ?)
#includeGroups=group1,group2,user*
# Comma separated list of groups that should be excluded (you can use the wildcards * and ?)
#excludeGroups=group1,group2,user*
ldap.systems=ldap1
- LDAPコネクションプロパティの編集:
vi /opt/krugle/scmi/filesystem-scmi/ldap1.properties
ldapHost=YOUR_LDAP_SERVER_HOST
ldapPort=389
ldapRootContext=OU=users,DC=krugle,DC=com
ldapGroupBase=OU=groups,DC=krugle,dc=com
ldapMailAttributeName=mail
ldapManagerDn=CN=admin,DC=krugle,DC=com
ldapManagerPassword=YOUR_ADMIN_PASSWORD
ldapAuthenticationTypes=SIMPLE
ldapAllowMultipleOus=false
ldapSsl=false
ldapUserNameFormat=cn={0}
- 注1)ldapManagerDn/Passwordには、ドメインユーザ参照権限のある一般ユーザIDをご指定ください。
- 注2)多階層のOUにユーザーが存在する場合、'ldapAllowMultipleOus' を 'true'に変更してください。
- KrugleAI-Webで使用するユーザーを設定
vi /opt/krugle/ai-core/settings_live.py
KE_USERNAME = "YOUR_USERID"
KE_PASSWORD = "YOUR_PASSWORD"
- 注3)KrugleAI-Webで処理可能なプロジェクトはKE_USERNAMEで設定されたユーザIDの持つ参照権限に依存しますのでご注意ください。
- Krugleサービスを再起動:
sudo systemctl start krugle
[管理UI] KASの設定
- ConfigurationタブのAuthenticationメニューに移動
- Editボタンを押下
- Krugle Authentication Service(KAS)を選択
- LDAP KAS URLには、'http://YOUR_AIO_SERVER:8748/kas' を指定
- テスト用ユーザー名とパスワードを指定してSave
- 以下の画面に遷移することを確認
[管理UI] プロジェクト毎の権限設定
- 管理UIのProjectsタブに移動
- 任意のプロジェクトのProject Nameをクリック
- Project Details画面中、最下段に'Access control:'の項目があることを確認
- ’Edit'ボタンから編集画面に移動
- 最下段の'Set Groups'にて、LDAPサーバで設定したグループを選択
- 'Save' -> 'Next' -> 'Finish'で設定を反映
[Shasta] ログイン設定
AIOサーバ以外で個別に構築されたShastaを稼働させる場合、shasta.confファイルのYOUR_KE_USERNAMEとYOUR_KE_PASSWORDを任意のユーザIDとパスワードに置き換えてください。
[KLiP] ログイン設定
以上で設定は完了です。
動作の確認
Krugle Search (k7)にアクセスすると、以下のログイン画面が出ることをご確認ください。
注意事項: KASサービスを停止する場合の手順
- 管理画面からKASサービスを停止
- /opt/krugle/ai-web/settings_live.py のKE_USERNAME/KE_PASSWORDの設定内容を削除
- KLiPで設定されたKlip:Krugle Enterprise Usernameの設定内容を削除
- Krugleサービスの再起動 'systemctl restart krugle'