みなさん、こんにちは。
今回はユーザー連携部分のお話です。
当然、この手の製品の管理コンソールですとユーザーの作成はローカルとLDAPと連携する方法があり、ICPも同様です。
LDAP連携機能では、多くの皆さんが使われているであろう Microsoft Active Directory との連携も対応していますので、ちょっとセットアップしてみたいと思います。
環境
ICP環境は前回、前々回などと同じ環境です。
- ICP Master server 1台
- ICP Worker server 1台
今回はActive Directoryと連携するので、下記のActive Directoryを用意しています。
AD 環境
今回のゴール
下記のことができるように確認します。
- OU=icp のユーザーが ICPのユーザーとして登録できること
- ADのセキュリティグループ icpgroup に所属しているユーザーでログインができること
- 登録したユーザーには特定のリソースしか表示、利用できないこと
ADを登録
ICPでのLDAPの登録は管理コンソールからできます。
管理コンソールにログインして、
メニューの[管理]-[IDおよびアクセス]に移動します。
接続の作成をクリックします。
下記の内容を参考に設定します。
LDAP認証の部分は Distinguished Name(DN) で書く必要があります。
DNがわからないという方は、下記のようにコマンドプロンプトから確認したユーザーを入れてみてください。
入力後、接続の確認をして、保存します。
チームの登録
次にチームを登録します。
チームに対して、AD上のユーザーやセキュリティグループを割り当てたり、利用可能なリソースの割り当てを行います。
メニューの[管理]-[IDおよびアクセス]-[チーム]に移動します。
チームの作成をクリックします。
ポップアップウインドウで下記を参考に入力します。
作成をクリックします。
チームが登録されることが確認できます。
チームに登録されているセキュリティグループの確認
さきほどのチーム登録時に指定したセキュリティグループicpgroupが登録されていることと、グループに登録されているユーザーもICP上で確認可能か見てみます。
管理コンソールで作成したチーム名をクリックします。
今回であれば、icp-teamです。
チームに登録されているグループの一覧が表示されます。
まだ1グループしか登録していないので、icpgroupのみが登録されています。
icpgroupをクリックします。
icpgroupに所属しているユーザーの一覧が表示されます。
セキュリティグループに登録されているユーザーのログイン確認
セキュリティグループに登録されているユーザーもICP上で確認できましたので、そのユーザーでICP管理コンソールにログインできるか試してみます。
今開いている管理コンソールをログオフするか、別の種類のWebブラウザまたはシークレットモードで起動したWebブラウザを起動します。
※あとの工程上、ログオフせずに別のWebブラウザまたはシークレットモードのWebブラウザのほうが都合がよいです。
ログイン画面で先ほど確認したセキュリティグループに登録されているユーザーでログインします。
今回は user2 を利用します。
ログインでエラーがでることもなく、管理画面のようこそ画面が表示されることが確認できます。
チームにADユーザーを個別に登録
次に、作成済みのチームicp-teamにADユーザーを個別に登録してみます。
ICP管理コンソールを開き、adminでログインします。
メニューの[管理]-[IDおよびアクセス]-[チーム]に移動します。
その後、icp-teamに移動し、ユーザータブを表示します。
ユーザーの追加をクリックします。
下記を参考にユーザーを検索します。
検索結果が表示されていますので、今回はuser3を選択します。
このユーザーはセキュリティグループicp-teamには登録されていないユーザーです。
役割のカラムで役割をドロップダウンリストから選択できます。今回は管理者のまま、追加をクリックします。
ユーザーの一覧画面が表示され、ユーザー登録が完了していることが確認できます。
登録したユーザーでログインしてみる
登録したユーザーでICP管理コンソールにログインできるか確認してみます。
今開いている管理コンソールをログオフするか、別の種類のWebブラウザまたはシークレットモードで起動したWebブラウザを起動します。
※あとの工程上、ログオフせずに別のWebブラウザまたはシークレットモードのWebブラウザのほうが都合がよいです。
先ほど登録したuser3でログインします。
ログインでエラーがでることもなく、管理画面のようこそ画面が表示されることが確認できます。
リソースを見てみる
せっかくなので、user3で操作できるリソースを見てみます。
名前空間(name space)が割り当てられていないので操作ができません。
チームに対してリソースの割り当てを行います。
管理者アカウントでICP管理コンソールにログインし、メニューの[管理]-[IDおよびアクセス]-[チーム]に移動します。
その後、icp-teamに移動し、リソースタブを表示します。
リソースの管理をクリックします。
リソースの管理画面が表示されます。 今回は defaultとibm-chartsにチェックを付け、保存します。
↓
再度、user3でICP管理コンソールにログインします。
メニューの[ワークロード]-[デプロイメント]を開きます。
先ほどとは違い、エラーは表示されません。
実際にリソースが利用できるか確認してみます。
管理コンソール右上のカタログをクリックします。
検索画面に liberty と入力し、表示された結果から ibm-open-liberty を選択します。
構成をクリックし、下記のパラメーターを入力します。
記載のない設定は変更せず、インストール をクリックします。
Helmリリースの表示を開き、少し時間をあけてステータスを確認します。
デプロイメントのステータスの使用可能が1になっており、ポッドのステータスもRunningになっていることが確認できました。
先ほどのHelmカタログからデプロイする際のターゲット名前空間のドロップリストはDefaultだけになっていましたので、user3ではdefault以外の名前空間のリソースに対しての権限を持っていないことも確認できました。
以上がAD連携の連携後の簡単な動作確認の方法でした。
NameSpace(名前空間)ごとに割り当てチームを決めることで、別のチームのNameSpaceへの影響も抑えられますし、そもそもユーザー管理をICP上でコツコツやるのは大変!という要望にもこたえられるかと思いますのでぜひ試してみてください。
現状の挙動として、ちゃんとAD上に存在していて、ICP上のチームに登録されているセキュリティグループにも所属しているADユーザーでもログインできない場合は、一度ICP上のADの登録画面で対象のADを編集で開き、再度保存してみてください。
今回も長々とありがとうございました。
すずきけ