株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

IBM Cloud Private 3.1.1 AD連携機能を試してみる

みなさん、こんにちは。

今回はユーザー連携部分のお話です。
当然、この手の製品の管理コンソールですとユーザーの作成はローカルとLDAPと連携する方法があり、ICPも同様です。

LDAP連携機能では、多くの皆さんが使われているであろう Microsoft Active Directory との連携も対応していますので、ちょっとセットアップしてみたいと思います。

環境

ICP環境は前回、前々回などと同じ環境です。
- ICP Master server 1台
- ICP Worker server 1台

今回はActive Directoryと連携するので、下記のActive Directoryを用意しています。

AD 環境

20190129_17h32_37

今回のゴール

下記のことができるように確認します。

  1. OU=icp のユーザーが ICPのユーザーとして登録できること
  2. ADのセキュリティグループ icpgroup に所属しているユーザーでログインができること
  3. 登録したユーザーには特定のリソースしか表示、利用できないこと

ADを登録

ICPでのLDAPの登録は管理コンソールからできます。

管理コンソールにログインして、
20190129_17h36_35

メニューの[管理]-[IDおよびアクセス]に移動します。
20190129_17h36_45 接続の作成をクリックします。

20190129_17h37_07a

下記の内容を参考に設定します。
LDAP認証の部分は Distinguished Name(DN) で書く必要があります。

20190131_14h28_15

20190129_18h00_45s

DNがわからないという方は、下記のようにコマンドプロンプトから確認したユーザーを入れてみてください。
20190129_18h24_06

入力後、接続の確認をして、保存します。

チームの登録

次にチームを登録します。
チームに対して、AD上のユーザーやセキュリティグループを割り当てたり、利用可能なリソースの割り当てを行います。

メニューの[管理]-[IDおよびアクセス]-[チーム]に移動します。
チームの作成をクリックします。
20190129_18h25_20

ポップアップウインドウで下記を参考に入力します。

20190131_14h28_25 20190130_10h49_32

作成をクリックします。
チームが登録されることが確認できます。

チームに登録されているセキュリティグループの確認

さきほどのチーム登録時に指定したセキュリティグループicpgroupが登録されていることと、グループに登録されているユーザーもICP上で確認可能か見てみます。

管理コンソールで作成したチーム名をクリックします。
今回であれば、icp-teamです。

20190129_18h49_14

チームに登録されているグループの一覧が表示されます。
まだ1グループしか登録していないので、icpgroupのみが登録されています。
icpgroupをクリックします。

20190129_18h50_51

icpgroupに所属しているユーザーの一覧が表示されます。

20190130_10h52_36

セキュリティグループに登録されているユーザーのログイン確認

セキュリティグループに登録されているユーザーもICP上で確認できましたので、そのユーザーでICP管理コンソールにログインできるか試してみます。

今開いている管理コンソールをログオフするか、別の種類のWebブラウザまたはシークレットモードで起動したWebブラウザを起動します。
※あとの工程上、ログオフせずに別のWebブラウザまたはシークレットモードのWebブラウザのほうが都合がよいです。

ログイン画面で先ほど確認したセキュリティグループに登録されているユーザーでログインします。
今回は user2 を利用します。

20190130_10h53_32

ログインでエラーがでることもなく、管理画面のようこそ画面が表示されることが確認できます。
20190130_10h57_13

チームにADユーザーを個別に登録

次に、作成済みのチームicp-teamにADユーザーを個別に登録してみます。

ICP管理コンソールを開き、adminでログインします。
メニューの[管理]-[IDおよびアクセス]-[チーム]に移動します。
その後、icp-teamに移動し、ユーザータブを表示します。
ユーザーの追加をクリックします。
20190130_10h57_45

下記を参考にユーザーを検索します。
20190131_14h30_18

検索結果が表示されていますので、今回はuser3を選択します。
このユーザーはセキュリティグループicp-teamには登録されていないユーザーです。
役割のカラムで役割をドロップダウンリストから選択できます。今回は管理者のまま、追加をクリックします。

20190130_10h58_27

ユーザーの一覧画面が表示され、ユーザー登録が完了していることが確認できます。

登録したユーザーでログインしてみる

登録したユーザーでICP管理コンソールにログインできるか確認してみます。

今開いている管理コンソールをログオフするか、別の種類のWebブラウザまたはシークレットモードで起動したWebブラウザを起動します。
※あとの工程上、ログオフせずに別のWebブラウザまたはシークレットモードのWebブラウザのほうが都合がよいです。

先ほど登録したuser3でログインします。
20190130_11h38_54

ログインでエラーがでることもなく、管理画面のようこそ画面が表示されることが確認できます。
20190130_11h39_08

リソースを見てみる

せっかくなので、user3で操作できるリソースを見てみます。
20190130_15h20_23

名前空間(name space)が割り当てられていないので操作ができません。
チームに対してリソースの割り当てを行います。

管理者アカウントでICP管理コンソールにログインし、メニューの[管理]-[IDおよびアクセス]-[チーム]に移動します。
その後、icp-teamに移動し、リソースタブを表示します。
リソースの管理をクリックします。

20190131_11h48_10

リソースの管理画面が表示されます。 今回は defaultibm-chartsにチェックを付け、保存します。

20190131_11h49_33
20190131_11h58_36

再度、user3でICP管理コンソールにログインします。
メニューの[ワークロード]-[デプロイメント]を開きます。

20190131_13h46_04

先ほどとは違い、エラーは表示されません。
実際にリソースが利用できるか確認してみます。
管理コンソール右上のカタログをクリックします。

20190131_13h46_04_2

検索画面に liberty と入力し、表示された結果から ibm-open-liberty を選択します。

20190131_13h46_36

構成をクリックし、下記のパラメーターを入力します。

20190131_14h28_58

記載のない設定は変更せず、インストール をクリックします。

20190131_13h55_14

Helmリリースの表示を開き、少し時間をあけてステータスを確認します。
デプロイメントのステータスの使用可能1になっており、ポッドのステータスもRunningになっていることが確認できました。

20190131_13h56_56 20190131_13h57_10

先ほどのHelmカタログからデプロイする際のターゲット名前空間のドロップリストはDefaultだけになっていましたので、user3ではdefault以外の名前空間のリソースに対しての権限を持っていないことも確認できました。

以上がAD連携の連携後の簡単な動作確認の方法でした。

NameSpace(名前空間)ごとに割り当てチームを決めることで、別のチームのNameSpaceへの影響も抑えられますし、そもそもユーザー管理をICP上でコツコツやるのは大変!という要望にもこたえられるかと思いますのでぜひ試してみてください。

現状の挙動として、ちゃんとAD上に存在していて、ICP上のチームに登録されているセキュリティグループにも所属しているADユーザーでもログインできない場合は、一度ICP上のADの登録画面で対象のADを編集で開き、再度保存してみてください。

今回も長々とありがとうございました。

すずきけ