RapidMiner(ラピッドマイナー)はデータ可視化、データ加工、モデル作成、評価、運用まで一括サポートする機械学習プラットフォームです。KSKアナリティクスはRapidMinerの正規販売代理店です。

RapidMiner Identity (RMID)

RMIDはRapidMiner Goが利用する認証/認可サービスです。

設定

RMIDには2つのレベルの設定があります。

  • Springプロファイル
  • 環境変数

RMIDはSpring Bootアプリケーションなので、docker-compose-services.ymlの SPRING_PROFILES_ACTIVE環境変数使用して設定します。これはアクティブspringプロファイルのコンマ区切りのリストです。

利用可能なプロファイル

Springプロファイル 詳細
db-postgresql RMIDはPostgreSQLデータベースを使用します
is-db DBをIDPとして使用します
is-auth0 Auth0 IDPを使用します
is-ldap LDAP IDPを使用します
is-saml SAML IDPを使用します
on-prem オンプレミスインストレーション

デフォルト値はdb-postgresql,is-db,on-premです。これはデフォルトデータベースはPostgreSQL、デフォルトIDPは内部データベース、アプリケーションはオンプレミスで稼働している事を示しています。

環境変数の使用

プロファイルに加えて、環境変数を指定する事もできます。環境変数はプロファイルのデフォルト値を上書きします。

デフォルト環境変数の一覧

環境変数名 詳細
DB_HOST DBのdockerサービス (デフォルトはrapidminer-automodel-db)
BASE_URL フロントエンドで利用される外部ベースURL – 例: http://localhost:30000
AUTH_SECRET AMやRMIDなどのサービス間で利用される秘密キー
RMID_FRONTEND_TRACKING_ENABLED イベントトラッキングサービスの有効化 (内部分析)
TOKEN_MAX_AGE 認証トークンの有効期限 (秒で指定、デフォルトは1日)
_JAVA_OPTIONS JVMに渡されるJavaオプション。メモリ設定などに使用します。

データベース

RMIDは専用のデータベースがあります。デフォルトのdockerの設定ではこれはRapidMiner Goのデータベースと同じコンテナ/データベースインスタンス(rapidminer-automodel-db)に存在しますが、個別にデータベースインスタンスに配置する事もできます。サポートされたデータベースプロファイルはdb-postgresqlのみです。

IDP (Identity Provider)

RMIDはユーザーの認証に様々なidentity providers (IDP)を使用する事ができます。

利用可能なIDPとそれに対応するspringプロファイルをご確認ください。

IDP Springプロファイル プロトコル ログインUI/メソッド
DB is-db N/A ユーザー名/パスワードを入力するフォーム, HTTP POST
Auth0 is-auth0 OAuth2 password grant ユーザー名/パスワードを入力するフォーム, HTTP POST
LDAP capable 3rd party IDP is-ldap LDAP ユーザー名/パスワードを入力するフォーム, HTTP POST
SAML capable 3rd party IDP is-saml SAML SAMLプロバイダへリダイレクトするハイパーリンク

複数のIDPを切り替える事ができます。その場合、RMIDは成功するまでそれらの全てで認証しようとします。

使用方法

RMIDのログイン画面には/rmid/authでアクセスする事ができます。

ログインタイプは利用するIDPにより異なります。IDPがDB, LDAP, AUTH0の場合はユーザー名/パスワードを入力するフォーム、SAMLの場合はSAMP IDPへリダイレクトするリンクがログイン画面に表示されます。SAMLと他のIDPをどちらも利用する場合はRMID_FRONTEND_LOGINTYPE: LOGINTYPE_DUALの環境変数を利用してデュアルログインタイプを設定する必要があります。この設定を行うとログイン画面にはログインフォームとリンクの両方が表示されます。

ログインに成功するとページは自動的にRapidMiner Goにリダイレクトされます。ログアウトすると再度RMIDにリダイレクトされます。

管理

RMID Administration appには/rmid/adminからアクセスする事ができます。デフォルトのユーザー名/パスワードはadmin/changeitです。

ユーザー

RMID_USERSテーブルにはユーザー毎にエントリーが存在し、 プロファイルテーブルには設定したIDPのエントリーが存在します。RMID_USERSテーブルにはユーザーのdisplayNameとRapidMiner Goに関連するフィールドが含まれます。

activeフィールドのスイッチをオフにするとユーザーは無効化されます。この操作を行うとユーザーは5分でRapidMiner Goを含むRMIDを利用する全てのサービスからログアウトされます。ログアウトの時間は設定で変更する事ができます。

ユーザープロファイル

プロファイルテーブルには特定のIDPから取得したユーザーデータが含まれます。

ローカルユーザーはadmin appで作成、更新され、RMID_PROFILE_LOCALテーブルに保存されます。外部プロファイルはread-onlyで、そのコンテンツは外部IDPのユーザー情報に応じてログイン時に作成、更新されます。

例えば、is-auth0, is-saml プロファイルがactiveな場合、RMID_PROFILE_LOCAL, RMID_PROFILE_SAML テーブルにはそれらのIDPから取得したユーザーデータが含まれます。

この場合、Admin appのUser viewには3つのフォームが含まれます。

  • ユーザーテーブル用の1つの編集可能なフォーム(displayName, active, acceptEula)
  • samlとauth0プロファイル用の2つのread-onlyフォーム
IDP プロファイルテーブル Adminオペレーション 表示名
DB RMID_PROFILE_LOCAL CRUD username
Auth0 RMID_PROFILE_AUTH0 R Auth0 nickname
SAML RMID_PROFILE_SAML R SAML name assertion
LDAP RMID_PROFILE_LDAP R LDAP username

以下はIDPとプロファイルテーブルのリストです。

例: Auth0がIDPに設定されている場合、 Auth0のクレデンシャルでサインインしたユーザーはRMID_USERSテーブルにエントリーを作成します。必要に応じて、RMID_PROFILE_AUTH0テーブルにもエントリーを作成します。Auth0 nicknameはプロファイルテーブルに保存され、RMID_USERS displayNameフィールドにコピーされます。IDP側に変更があった場合はログイン時にnicknameとdisplayNameが更新されます。SAMLの場合はデフォルト表示名のマッピングが変更されます。

グループ、ロール、権限

RMIDはサービスを以下のカテゴリで管理してロールベースの承認システムを定義します。

ユーザー ↔ グループ ↔ ロール ↔ 権限

各カテゴリは多対多の関係です。

ユーザーは付与された権限に応じてAPIエンドポイントとURLにアクセスする事ができます。権限はシステムに事前に定義されており、read-onlyです。また、権限はユーザーに直接付与されるのではなく、ロールに対して付与されます。ロールは事前に定義された権限のセットです。ロールはグループに付与されユーザーはグループに割り当てられます。

例えば、ユーザーにadmin権限を付与したければ、そのユーザーをRMID_ADMINグループに割り当てます。このグループにはデフォルトでADMINロールが付与されており、ADMINロールには’rmid:admin’権限が付与されています。

このシステムでは細かく振る舞いを制御する事ができます。

グループは組織階層を反映させたり、データサイエンスプロジェクトのニーズに合わせて自由に作成する事ができます。

API認証に失敗しました メールまたはパスワードが正しくありません メールアドレスは必須です パスワードは必須です
キャンセル