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の設定が完了している必要がありますのでご確認ください。

  1. Krugleサービスを停止:  sudo systemctl stop krugle

  2. 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
  1. 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
  1. 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'に変更してください。
  1. KrugleAI-Webで使用するユーザーを設定
vi /opt/krugle/ai-core/settings_live.py
KE_USERNAME = "YOUR_USERID"
KE_PASSWORD = "YOUR_PASSWORD"
  • 注3)KrugleAI-Webで処理可能なプロジェクトはKE_USERNAMEで設定されたユーザIDの持つ参照権限に依存しますのでご注意ください。
  1. Krugleサービスを再起動: sudo systemctl start krugle

[管理UI] KASの設定

  1. ConfigurationタブのAuthenticationメニューに移動
  2. Editボタンを押下
  3. Krugle Authentication Service(KAS)を選択
  4. LDAP KAS URLには、'http://YOUR_AIO_SERVER:8748/kas' を指定
  5. テスト用ユーザー名とパスワードを指定してSave
  1. 以下の画面に遷移することを確認

[管理UI] プロジェクト毎の権限設定

  1. 管理UIのProjectsタブに移動
  2. 任意のプロジェクトのProject Nameをクリック
  3. Project Details画面中、最下段に'Access control:'の項目があることを確認
  4. ’Edit'ボタンから編集画面に移動
  5. 最下段の'Set Groups'にて、LDAPサーバで設定したグループを選択
  1. 'Save' -> 'Next' -> 'Finish'で設定を反映

[Shasta] ログイン設定

AIOサーバ以外で個別に構築されたShastaを稼働させる場合、shasta.confファイルのYOUR_KE_USERNAMEとYOUR_KE_PASSWORDを任意のユーザIDとパスワードに置き換えてください。

[KLiP] ログイン設定

image

以上で設定は完了です。

動作の確認

Krugle Search (k7)にアクセスすると、以下のログイン画面が出ることをご確認ください。

注意事項: KASサービスを停止する場合の手順

  1. 管理画面からKASサービスを停止
  2. /opt/krugle/ai-web/settings_live.py のKE_USERNAME/KE_PASSWORDの設定内容を削除
  3. KLiPで設定されたKlip:Krugle Enterprise Usernameの設定内容を削除
  4. Krugleサービスの再起動 'systemctl restart krugle'