14
3

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 3 years have passed since last update.

複数の Oracle Cloud (OCI) テナントに ひとつのIDCSユーザーでログインする方法

Posted at

はじめに

本記事では、1つの IDCS を 複数の OCI テナントにフェデレーションさせる手順について説明します。ユースケースは いろいろあると思いますが、例えば「1つの企業で複数テナントを運用しているが、ユーザーアカウントは1つの認証基盤で管理したい」という場合などにご活用ください。

OCIの認証基盤のおさらい

Oracle Cloud Infrastructure (OCI) では、テナント開設時に、Identity Cloud Service (IDCS) と Identity Access and Management (IAM) という2つの認証基盤がフェデレーションされた状態でプロビジョニングされます。詳細については AWS/Azure 経験者がはじめる OCI 入門 ~ IAM/IDCS編 ~ にも まとめていますので、こちらもぜひご参照ください。

この IAM と IDCS ですが、どちらの認証基盤でユーザーを管理していくべきか?は悩むポイントだと思います。個人的な見解としては、下記の通りです。

  • IAMでの管理が向いているケース
    • OCI の機能に閉じた利用である場合
  • IDCSでの管理が向いているケース
    • 高度な認証オプションを使用する場合
    • PaaS などのサービスも利用する予定がある場合
    • 複数テナントを1つの認証基盤で管理していきたい場合

なぜ最後のケースで IDCS の方が向いているかというと、
IAM でユーザー管理をしている場合、IAM とテナントの関係は 1:1 のため、複数テナントを持っている場合、例え同じユーザーであったとしても、その数だけユーザーIDが必要になります。こういった状況では、管理も煩雑になりますし、混乱・トラブルの原因となりかねません。
こういった場合、IAMユーザーではなく、1つのIDCSにユーザーを追加していき、そのIDCSを「各テナントへフェデレーションさせていく」ことで、1つの認証基盤を用いた運用が実現可能になります。

  • IAM/IDCS/テナントの関係性
images.png

IDCSフェデレーション手順

OCIのテナントにIDCSをフェデレーションする手順は、こちらの OCI ドキュメント:Oracle Identity Cloud Serviceのフェデレート にも記載があります。「もしかして この記事いらない…?」と思う程度には 結構丁寧に書かれているので、ぜひご参照ください。

本記事では、以下の構成で IDCSフェデレーションを行っていきます。
image.png

Step1. フェデレーションに必要な情報を確認する

まず、新たにフェデレーションさせたい IDCSインスタンスから、以下の情報を取得する必要があります。それぞれの取得方法を 順に見て行きましょう。

  1. Oracle Identity Cloud Service ベース URL
  2. クライアントID
  3. クライアント・シークレット

これらの情報を参照するには、まず、新たにフェデレーションさせたい IDCSを持つ OCI テナント (本記事の場合、テナント-B) へ ログインします。この時、ユーザーは IDCSユーザー (管理者ユーザーなど) を使用してください。

次に、右上の人型アイコンの プロファイルサービス・ユーザー・コンソール をクリックします。
image.png
続いて、サービスの一覧から「Oracle Identity Cloud Service」を探し、管理コンソールをクリックします。
image.png
別ウィンドウで、下記 IDCSの管理コンソール画面が表示されます。
image.png
上記画面のURLを見ると、https://idcs-xxxxx.identity.oraclecloud.com/ui/v1/adminconsole となっています。このURLの https〜 から oraclecloud.com までが、Oracle Identity Cloud Service ベース URL となっていますので、まず こちらを控えておきましょう。

次に、クライアントID および クライアント・シークレット を確認していきます。管理コンソール画面 左上の「」メニューから Oracle Cloud Service をクリックして、 COMPUTEBAREMETAL を開きます。

image.png

COMPUTEBAREMETAL アプリケーションの画面で、Configuration タブを開き、General Information から、クライアントID および クライアント・シークレット を取得します。
image.png

※IDCSインスタンスに COMPUTEBAREMETAL アプリケーションが存在しないケースについては、本記事では割愛しています。ドキュメントの手順に従って確認してください。

これで、必要な情報の取得が完了しました。

Step2. アイデンティティ・プロバイダの追加

次に、連携先の OCI テナントにログインし、アイデンティティ・プロバイダの追加を行います。(本記事の場合、テナント-A ) この時、ユーザーは、適切な権限を持つユーザーを使用してください。
アイデンティティ・プロバイダの追加は、OCI コンソールの左上「」メニューから、アイデンティティとセキュリテイフェデレーション から行えます。
image.png

  • 名前:追加するアイデンティティ・プロバイダの名称を設定
  • 説明:追加するアイデンティティ・プロバイダの説明を設定
  • タイプ:"Oracle Identity Cloud Service" を選択
    その他 ADFS連携なども可.
  • Oracle Identity Cloud ServiceベースURL:Step1 で取得した情報を貼付け
  • クライアントID:Step1 で取得した情報を貼付け
  • クライアント・シークレット:Step1 で取得した情報を貼付け
  • アサーションの暗号化:本記事の手順ではチェック不要
    ※チェックすると、IAMサービスが IdPから暗号化を予期されていることを認識する. チェックする場合、IDCS側でアサーションの暗号化も設定する必要がある.
  • 強制認証:チェックしたままでOK
    ※チェックすると、ユーザーが既に別のセッションでサインインしている場合でも、IdPによる再認証を求められる.
  • 認証コンテキストのクラス参照:Government Cloud の場合のみ設定

設定が完了したら、続行 ボタンをクリックします。続いて、グループのマッピングを行います。

image.png

リストボックスから、マッピングさせたい IDCSグループ および IAMグループを選択します。上記のイメージでは Administrator 用のグループ同士を マッピングしていますが、環境の権限設計に合わせてマッピングをしてください。

設定後、アイデンティティ・プロバイダの追加 で作業は完了です。

Step3. ログインの確認

アイデンティティ・プロバイダの追加が完了すると、連携先のテナント (本記事では テナント-A) のユーザー一覧でも、新たに連携された IDCSユーザー (本記事では IDCSユーザー B) が確認できるようになります。

最後に、実際に IDCSユーザー B を使って 連携先のテナント (テナント-A) にログインしてみましょう。

image.png
ログインする際の注意点として、上記の認証基盤の選択画面があります。
ここでは、アイデンティティ・プロバイダとして、そのテナントのデフォルトのIDCS基盤(oracleidentitycloudservice) ではなく、Step2 で作成したアイデンティティ・プロバイダ (自分のIDが登録された認証基盤) を選択 してください。

あとは、そのユーザーの ユーザー名、パスワードを入力すれば、ログインの完了です。

おわりに

いかがでしたでしょうか。意外と簡単な手順になっていて、知ってしまえば5分とかからず連携できてしまいます。

OCIでは、1つの企業が 複数アカウントを利用しなくても 管理がし易いように、コンパートメントなどの機能もありますが、"請求情報を分けたい" ですとか、"権限管理を完全に分けたい" など、要件によって 別テナントを用意することも しばしばあるかと思います。

認証基盤を煩雑化させないため、本記事を参考に、ひとつの認証基盤 "IDCS" で一元化することもご検討頂くとよいと思います。

14
3
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
14
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?