4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IBM Cloud: IBMidを利用せずにIBM Cloudのユーザーを作成する方法(App ID連携)

Last updated at Posted at 2023-04-28

1. はじめに

IBM Cloudにログインするためには一般的にはIBMidを利用するが、IBM Cloud: SAM Federation方式の比較(IBMid Federation v.s. IBM Cloud App ID)にも記載した通り、IBMidを利用せずに外部IdPを使うことも可能である(つまりIBMidのようにメールアドレスをIDとして利用する必要もない)。今回は、そのための連携ツールであるIBM Cloud App IDと、そのApp IDに内包されているユーザー管理ツールのCloud Directoryを使って、ユーザーの作成、ログイン、CLIやClient-to-Site VPNが利用できることまでを確認してみた。

P.S. App IDのユーザーでIBM Cloudのポータルを利用するを参考にさせてもらいました。

2. App IDの注文

https://cloud.ibm.com/catalog/services/app-idから注文可能。

image.png

3. App ID: 利用可能なIdPを選択。

今回は、外部IdPとしてApp IDに付随するCloud Directoryを利用する。よって、Cloud Directory以外は利用できないように構成する。(デフォルトでは、Facebook, Google, Anonymousが有効になっている)。
外部SNSで認証されたユーザーが誰でもIBM Cloudアカウントにログインできてしまうようなことを避けるため、必ずCloud Directory以外は無効にする。IBM Cloud docsにも同様の注意が記載されている。
image.png

4. App ID: Cloud Directoryの設定

参考情報

  • ログイン方式は(せっかくIBMidを使わないのだから)、Email and passwordではなくUsername and passwordを今回は選択してみる。
  • URLを知っている人が勝手にユーザーを追加できてしまうことを避けるため、Allow users to sign-up to your appはNoにする(これは必ずNoにすることをお勧めします)。
  • 今回は、勝手にアプリから勝手にパスワードを変更したり、ユーザー情報を編集させたくないので、今回はAllow users to manage their account from your appもNoにする。image.png

5. Default IDP URLの構成

IBM Cloud Portalの Manage -> Access(IAM)-> Identity providers もしくはhttps://cloud.ibm.com/iam/identity-providers にて構成。
IBM Cloud Portalにて、このApp IDを登録する。まず、最初にDefault IDP URLを構成する。App IDで認証する際には、https://cloud.ibm.comではなく、このhttps://cloud.ibm.com/authorize/xxxxというURLを使って認証する。よって、このxxxxはアカウント固有の識別子となる。

image.png

6. IBM CloudのIdentity Providerとして上記で作成したIBM Cloud App IDを登録

IBM Cloud Portalの Manage -> Access(IAM)-> Identity providers もしくはhttps://cloud.ibm.com/iam/identity-providers にて構成。
Createを選択して、今回注文したApp IDインスタンスを登録する。

  • 名称などを入力image.png
  • realm IDで切り替えられるように、Set as the defaultにはチェックを入れない。image.png
  • このIdPにアクセスする時のIdP URLは以下からでも確認できる。
    image.png
    image.png

7. App ID: Cloud Directoryでのユーザーの作成

  • usernameとpasswordを登録する。image.png

8. ユーザーへの動的な権限の追加

今回はClient-to-site VPNのための権限を動的に追加する構成を追加した。ユーザーが初回ログインするまで、アカウントにユーザーは追加されないのであらかじめ静的に権限を付与しておくことはできない。App IDで連携されたユーザーに動的に権限を付与しておくために、IBM Cloud: App IDのユーザーに動的に権限を設定するを参考にして動的ruleを追加する。

(運用的には手間になるが、ユーザーが初回ログインした後に、IAMで権限を付与しても良い。テスト・検証目的ならこのやり方でもいいかもしれない)

9. App ID ログイン画面のカスタマイズ

タブ名やフッターノートは簡単に変更できるが、ロゴはUIから変更できなかった。IBM Cloud: App IDのログイン画面にロゴをアップロードする方法を参考に、お好みでやってください。分かりやすくするため、私は変更しておきました。

10. Customer Portalへのログインテスト

App ID連携したIDPにアクセスする際には、https://cloud.ibm.comではなく、以下のいずれかを利用する。

  • セクション6でSet as the defaultにチェックが入れているならばhttps://cloud.ibm.com/authorize/xxxxxでアクセス可能。

  • セクション6でSet as the defaultにチェックが入れていない場合には、https://cloud.ibm.com/authorize/xxxxxにアクセスした際に、
    image.png
    のような選択肢が出るので、ここで該当のApp IDを選択しても良い。image.png

  • もしくは直接https://cloud.ibm.com/authorize/xxxxx/<Realm ID>でアクセスしても良い。

いずれにしても、上記のいずれかを選択することで、以下のようにApp IDで構成されるログイン画面に転送される。
image.png

認証が完了すると、IBM Cloudポータルにログインできる。
image.png

11. CLIでのログインテスト

IBM Cloud: 認証用passcodeの取得方法で紹介した通り、App ID連携されたユーザーでもログイン可能。

12. Client-to-Site VPNユーザーの検証

今回は、Client-to-Server VPNにて、「ユーザーIDとパスワード」を選択している際の検証である(クライアント証明書方式であれば、そもそもApp ID連携しているかどうかに関係なく成功できてしまうに決まっているので)。

  1. passcodeを取得するIBM Cloud: 認証用passcodeの取得方法にて取得可能。
  2. 認証時に今回Cloud Directoryで作成したユーザーのユーザー名を入れる(IBMidではないためメールアドレスではない!)。パスワード欄には上記で取得したpasscodeを入力。
    image.png
  3. 無事ログインできた。Client-to-Server VPNの接続履歴からも確認可能。image.png

VPC上のサーバーにもPC端末から接続できる。

syasuda@MacBook ~ % ping 10.0.0.4
PING 10.0.0.4 (10.0.0.4): 56 data bytes
64 bytes from 10.0.0.4: icmp_seq=0 ttl=63 time=82.822 ms
64 bytes from 10.0.0.4: icmp_seq=1 ttl=63 time=125.507 ms
64 bytes from 10.0.0.4: icmp_seq=2 ttl=63 time=170.078 ms
64 bytes from 10.0.0.4: icmp_seq=3 ttl=63 time=216.251 ms
^C
--- 10.0.0.4 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 82.822/148.665/216.251/49.744 ms
4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?