はじめに

みなさん、こんにちは。
Oracle Cloud Infrastructure検証チームです。

今回は、SSO認証を使用してOracle Cloud Infrastructure(OCI)にログインする方法について、ご紹介したいと思います。

SSO認証には、oktaというID管理ツールを使用します。

SSOとは「シングルサインオン」の略で、一度の認証手続きで複数のWebアプリケーションやクラウドサービスを利用できるようにする仕組みのことを表します。

前置き

oktaを使用してOCIでSSO認証をするためには、ざっくり以下のステップが必要です。

  1. OCI Identity and Access Management(以下IAM)から必要な情報を収集
    IAMとはクラウドサービスなど、企業が利用するシステムごとに設定された複数のIDを統合管理し、同時にアクセス権限の適切な管理を行うための仕組みです。
  2. Identity Provider(以下IdP)としてOktaを構成
    IdPとはクラウドサービスなどにアクセスするユーザーの認証情報を保存・管理するサービスです。
  3. OktaがIdPとして機能するように、OCI IAMを構成
  4. OCI IAMでIdPポリシーを作成
  5. ログインテスト

1. OCI IAMから必要な情報を収集

OCI IAMには、使用しているアイデンティティ・ドメインのメタデータをダウンロードするためのダイレクトURLが用意されており、Oktaは、OCIドメインURLを使用してOCI IAMに接続します。

「アイデンティティとセキュリティ」メニューから「ドメイン」を選択します。

作業するアイデンティティ・ドメインの名前をクリックし、「セキュリティ」、「アイデンティティ・プロバイダ」の順にクリックします。

「SAMLメタデータのエクスポート」をクリックします。

「Metadataファイル」オプションを選択し、「XMLのダウンロード」をクリックします。

ダウンロードしたXMLファイルの名前をOCIMetadata.XMLに変更します。

アイデンティティドメインの画面に戻り、ドメイン情報の「ドメインURL」をコピーし保存します。

後の工程で使用します!

 

2. IdPとしてOktaを構成

ブラウザでoktaにログインします。

検証では、oktaの30日無料トライアルを使用しました。

検索欄にOracle Cloud Infrastructureと入力し、使用可能なオプションから「Oracle Cloud Infrastructure IAM」を選択します。

「統合の追加」をクリックします。

一般設定のアプリケーションラベルにラベルを入力し完了をクリックします。(今回はOCI IAM)

追加された「OCI IAM」のページで「サインオン」タブをクリックします。

ページの下に移動しSAML Signing Certificates(SAML署名証明書)で「Actions」をクリックします。

証明書情報が出力され、下記二点をメモしておきます。

  • entityID
  • SingleLogoutService URL
  • SingleSignOnService URL

「Actions」から「Download certificate(証明書のダウンロード)」をクリックし、ダウンロードされたファイルの拡張子を.pemに変更します。

3. OktaがIdPとして機能するように、OCI IAMを構成

作業中のOCIコンソールで、「セキュリティ」、「アイデンティティ・プロパイダ」の順にクリックします。

アイデンティティ・プロパイダの画面で、「IdPの追加」をクリックし、「SAML IdPの追加」をクリックします。

SAMLアイデンティティプロパイダの名前を入力し、「次」をクリックします。(今回はokta)

「IdPメタデータの入力」を選択します。

下記項目を入力し、「次」をクリックします。

  • 「アイデンティティ・プロパイダの発行者URL」にSAML署名証明書の「entityID」を入力します。
  • 「SSOサービスURL」SingleSignOnService URLを入力します。
  • 「SSOサービス・バインディング」は、「POST」を選択します。
  • 「アイデンティティ・プロバイダ署名証明書のアップロード」にダウンロードした証明書(.pemのファイル)をアップロードします。

次に、「グローバル・ログアウトの有効化」が選択されていることを確認し、次のように入力します。

  • 「IDPログアウト・リクエストURL」SingleLogoutService URLを入力します。
  • 「ログアウト・バインディング」は、「POST」を選択します。

「ユーザ・アイデンティティのマップ」ページで下記を選択し。「次」をクリックします。

  • 「リクエストされた名前IDフォーマット」「電子メール・アドレス」を選択します。
  • 「アイデンティティ・プロパイダ・ユーザ属性」「SAMLアサーション名ID」を選択します。
  • 「アイデンティティ・ドメイン・ユーザ属性」「プライマリ電子メール・アドレス」を選択します。

「IDPの作成」をクリックします。

「次の手順」ページで「アクティブ化」をクリックした後、「IdPポリシーに追加」をクリックして閉じます。

「アイデンティティ・プロバイダ・ポリシー」をクリックして開き、コンテキスト(3つのドット)メニューから「IdPルールの編集」を選択します。

「アイデンティティ・プロバイダの割当て」をクリックし、「Okta」をクリックしてリストを追加します。

その後、「変更の保存」をクリックします。

「アイデンティティ・プロバイダ」画面から、「okta」をクリックします。

「サービス・プロバイダ・メタデータ」タブを開き、サービス・プロバイダ署名証明書の横にある「ダウンロード」をクリックしてサービス・プロバイダ署名証明書をダウンロードして保存します。

4. OCI IAMでIdPポリシーを作成

Oktaコンソールで、アプリケーションをクリックし、新しいアプリケーションOCI IAMをクリックします。

「サインオン」タブに移動し、「編集」をクリックします。

「Enable Single Logout」を選択し、前のステップでダウンロードした証明書を参照し、「アップロード」をクリックします。

「Advanced Sign-on Settings」で、OCI IAMドメインURLを入力し、「保存」をクリックします。
入力方法は下記画像の通りです。

5. ログインテスト

さて、実際にSSO認証でOCIにログインすることができるかテストします。

OCIのログイン画面を表示します。

OCIのログイン画面の下部に、oktaのログインボタンが追加されています。

oktaのログインボタンをクリックします。

oktaのログイン画面が表示されるので、oktaユーザのパスワードを入力して「確認」をクリックします。

OCIにログインすることができました。

今回使用したoktaでは、ログインする際に多要素認証を求める設定も追加できるため、OCIのID管理をしつつセキュリティ面も強化できます。

おわりに

今回はSSO認証を使ってOCIにログインを試してみましたが、いかがでしたでしょうか?

ID管理ツールと組み合わせると簡単に設定ができました!

最後までご覧いただきありがとうございました!

Oracle Cloudをご検討の際は弊社までお問い合わせください。