OCIフェデレーション ADFSを用いたOCIコンソールへのログイン 第1部
こんにちは。Oracle Cloud Infrastructure(OCI)特集 編集部です。
今回はOCIフェデレーション機能を用いて、Active Directry(AD)サーバに登録してある資格情報でOCIコンソールへのログインを行いたいと思います。
本ブログは2部構成となっており、第1部ではAD及びActive Directory Federation Services(ADFS)サーバの構築手順を記載し、第2部ではOCIのフェデレーション設定手順を記載します。フェデレーション設定の手順をご覧になりたい場合は以下をご参照ください。
参照:OCIフェデレーション ADFSの資格情報を用いたOCIコンソールへのログイン 第2部
1章 フェデレーション概要
OCIの「フェデレーション」とは、OCIコンソールへログインする際に使用するアイデンティティプロバイダ(IdP)を構成する機能になります。
OCIではテナンシを作成すると、標準的にOracle Identity Cloud Service (IDCS)と自動でフェデレーションが構成されます。事前にIDCSを使用していない限り、OCIコンソールに利用者がログインするためには、管理者がそれらのユーザのIDとPWのセットをIDCSに準備する必要があります。
しかし、Active Directryなど既存のIdPをフェデレーション設定することにより、ユーザは従来の資格情報を利用しOCIコンソールへアクセスすることができます。
OCIフェデレーションを行う上での構成図は以下の通りとなります。
※今回の検証ではAD及びADFSサーバをOCI上に構築し、疑似社内環境としています。
2章 前提条件
・今回は検証目的のため、ADとADFSは同一サーバ上に構成します。
・OCI上に、AD及びADFSを構成するための仮想マシン(Windows Server 2019)を事前に1台構築しておきます。
・作業者がOCIフェデレーションの編集権限を持っているものとします。
・作業者がAD及びADFSサーバの管理者権限を持っているものとします。
・利用者(個人PC)からADFSサーバへの名前解決ができるものとします。
3章 ADサーバの構築
OCI上に作成しておいた仮想マシンにADを構成します。ADサーバの構築については以下ブログをご参照ください。
OCI上にADを構築してみた
ADの構築方法については上記ブログと相違ないですが、ドメイン名は今回作業用に指定する必要があります。
今回筆者は「federationadfskensyo.tk」としています。
ドメイン名については、基本的にどんな値でも問題ありません。今回は無料のグローバルドメインを取得し、外部インターネット上で名前解決できるように設定しましたが、結論として必要ありませんでした。
筆者はOCIコンソール接続時にOCI側からIdPに接続できるように設定を行うと思っており、OCI側からADサーバのサーバ名を名前解決できるように無料のグローバルドメインを取得していましたが、それは誤りでした。
ログインユーザがOCIコンソール接続しようとすると、使用するIdPを選択する画面が表示されます。IdPを選択するとOCI側ではそのIdPのURLのみを保持しており、ユーザがそのURLへ接続するようリダイレクトさせます。そのため、IdPに接続するのはあくまでログインするユーザー側であり、OCI側からIdPに接続することはありませんでした。当然、OCI側からIdPへの名前解決は不要であり、代わりにログインユーザのPCからIdPへ名前解決できる必要があります。
また、AD上にOCIへログインする想定のユーザを作成します。今回は以下の通り作成しました。
4章 ADCSインストール、セットアップ
ADサーバの構築が完了したら、ADFS導入の事前作業としてADCS(証明書サービス)をインストールし、自己証明書を作成します。
自己証明書を作成しなくてもフェデレーションの設定はできるかと思います(未検証)が、フェデレーション構成時の設定が多少異なります。
①.NET Framework 3.5 Features のインストール
1. サーバーマネージャーを起動して「役割と機能の追加」をクリックし、「役割と機能の追加ウィザード」を起動します。
2. 「インストールの種類の選択」画面で「役割ベースまたは機能ベースのインストール」を選択します。
3. 「対象サーバーの選択」画面で「サーバープールからサーバー選択」を選択し、自身のサーバーを選択します。
4. [機能の選択]画面で「.NET Framework 3.5 Features」にチェックを入れ、「次へ」をクリックします。
5. 「インストール」をクリックします。
②ADCS のインストール
1. サーバーマネージャーを起動して「役割と機能の追加」をクリックし、「役割と機能の追加ウィザード」を起動します。「次へ」をクリックします。
2. 「インストールの種類の選択」画面で「役割ベースまたは機能ベースのインストール」を選択して、「次へ」をクリックします。
3. 「対象サーバーの選択」画面で「サーバープールからサーバー選択」を選択し、自身のサーバーを選択します。「次へ」をクリックします。
4. 「サーバーの役割選択」画面で、「Active Directory 証明書サービス」を選択します。 「次へ」をクリックします。
5. 「機能の選択」画面では何も選択せず、「次へ」をクリックします。
6. 「役割サービスの選択」画面で「証明機関」を選択して、「次へ」をクリックします。
7. 「インストール」をクリックします。
③ADCS の構成
1. サーバーマネージャーの上部フラッグに警告マークが表示されているので、クリックします。
2. 「対象サーバーに ActiveDirectory 証明書サービスを構成する」をクリックし、ADCS の構成ウィザードを起動します。
3. 「資格情報」画面で証明書サービスを構成するための管理者アカウントを確認し、そのまま「次へ」をクリックします。
4. 「役割サービス」画面で「証明機関」を選択して「次へ」をクリックします。
5. 「セットアップの種類」画面で「エンタープライズ CA」を選択して「次へ」をクリックします。
※注意:エンタープライズCAが選択できない場合はADFS用サーバにログインしているユーザを「Domain Admins」グループに追加する必要があります。
Ⅰ.サーバーマネージャーの「ツール」から「Active Directry ユーザーとコンピューター」を選択します。
Ⅱ.対象の作業アカウントをダブルクリックし、「所属するグループ」タブから「追加」をクリックします。
Ⅲ.「表示するオブジェクト名を入力してください」欄に「Domain Admins」と入力します。
Ⅳ.「名前の確認」をクリックし、入力した「Domain Admins」がアクティブ化されたら「OK」を選択します。
Ⅴ.「所属するグループ」に「Domain Admins」が表示されていることを確認します。
6. 「CA 種類」画面で「ルート CA」を選択して「次へ」をクリックします。
7. 「秘密キー」画面で「新しい秘密キーを作成」を選択して「次へ」をクリックします。
8. 「CA の暗号化」画面で任意のハッシュアルゴリズムを選択し、「次へ」をクリックします。今回は「SHA256」 を選択しました。
9. 「CA の名前」画面で共通名を任意で変更し、「次へ」をクリックします。
10. 「有効期間」画面で証明機関の有効期限を入力し、「次へ」をクリックします。今回は「5年」としました。
11. 「CA データベース」画面でデータベースの場所を任意で指定し、「次へ」をクリックします。今回はデフォルトで設定しました。
12. 「確認」画面にて設定した内容を確認し、問題なければ「構成」をクリックします。
13. 「閉じる」をクリックして ADCS の構成ウィザードを閉じます。
④証明書テンプレートの作成
1. サーバーマネージャーの「ツール」メニューから「証明機関」を選択します。
2. 「証明書テンプレート」を右クリックして「管理」をクリックします。
3. 「証明書テンプレートコンソール」が起動するので、テンプレートの一覧から「Web サーバー」を右クリックして「テンプレートの複製」をクリックします。
4. 「新しいテンプレートのプロパティ」画面で「全般」タブへ移動し「テンプレートの表示名」に任意の値を入力します。
5.「要求処理」タブへ移動し「秘密キーのエクスポートを許可する」にチェックを入れます。
6.「セキュリティ」タブへ移動し「グループ名またはユーザー名 」で「追加」をクリックします。
7.「オブジェクトの種類」をクリックします。
8.「コンピューター」にチェックを入れます。
9.「選択するオブジェクト名を入力してください」欄にADCSをインストールしたサーバのホスト名を入力し、「名前の確認」ボタンをクリックします。ホスト名がアクティブ化されたら「OK」をクリックします。
10.追加したサーバ名が選択された状態で、「アクセス許可」の「登録」権限の「許可」にチェックを入れます。
⑤証明書の発行
1. 「ファイル名を指定して実行」で「MMC」を入力し、コンソールを起動します。
2. 「ファイル」メニューから「スナップインの追加と削除」をクリックします。
3. 「利用できるスナップイン」から「証明書」を選択し、「追加」をクリックします。
4. 「証明書スナップイン」画面で「コンピューターアカウント」を選択し、「次へ」をクリックします。
5. 「ローカルコンピューター」を選択して「完了」をクリックします。
6. 「スナップインの追加と削除」画面で「OK」をクリックします。
7. 「個人」を右クリックして「すべてのタスク」から「新しい証明書の要求」をクリックします。
8. 「証明書の登録」画面で「次へ」をクリックします。
9. 「証明書の登録ポリシーの選択」画面で「Active Directory 登録ポリシー」が選択された状態で「次へ」をクリックします。
10. 「証明書の要求」画面で作成した証明書テンプレートをチェックし、「この証明書を登録するには情報が不足しています。設定を構成するには、ここをクリックしてください」をクリックします。
11. 「証明書のプロパティ」画面の「サブジェクト」タブで以下を追加し、「OK」をクリックします。
「サブジェクト名」:種類を「共通名」に変更し、「値」にADFS をインストールしたサーバーの FQDNを入力後「追加」をクリックします。
「別名」:種類を「DNS」に変更し、「値」にADFS をインストールしたサーバーの FQDNを入力後「追加」をクリックします。
12. 「証明書の要求」画面で作成した証明書テンプレートが選択されていることを確認して、「登録」をクリックします。
13. 証明書の登録が完了すると、 「証明書インストールの結果」画面に「状態:成功」と表示されます。「完了」をクリックし画面を閉じます。
⑥KDS ルートキーの作成
1. PowerShell アイコンを右クリックし、「管理者として実行」を選択して起動します。
2. 以下のコマンドを実行し、KDSルートキーを作成します。
KDSルートキーは後続の手順で作成するサービスアカウント(gMSA)のパスワードを生成する上で必要になります。
コマンド:Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10))
⑦gMSA の作成
1. PowerShell アイコンを右クリックし、「管理者として実行」を選択して起動します。
2. 以下のコマンドを実行します。
コマンド:New-ADServiceAccount <サービスアカウント名> -DNSHostName <サービスの DNS ホスト名> -ServicePrincipalNames <サービス プリンシパル名(SPN 名) >
※<サービスアカウント名>は任意のものを指定してください。
※<サービスの DNS ホスト名>はADをインストールしたサーバのFQDNを指定してください。
※<サービス プリンシパル名(SPN 名) >はADをインストールしたサーバのFQDNの頭に「http/」をつけた値を指定してください。
例.)http/AD-tuikakensyo.federationadfskensyo.tk
※ここで指定したサービスアカウント名は、後続手順 5章 ADFSインストール、セットアップ ⑨AD FS の構成 項番6. にて使用します。
5章 ADFSインストール、セットアップ
①ADFS のインストール
1. サーバーマネージャーを起動して「役割と機能の追加」をクリックし、「役割と機能の追加ウィザード」を起動します。「次へ」をクリックします。
2. 「インストールの種類の選択」画面で「役割ベースまたは機能ベースのインストール」を選択し、「次へ」をクリックします。
3. 「対象サーバーの選択」画面で「サーバープールからサーバー選択」を選択し、インストール先となるサーバーを選択します。「次へ」をクリックします。
4. 「サーバーの役割選択」画面で、「Active Directory Federation Services」を選択し、「次へ」をクリックします。
5. 「サーバーの機能」画面で何も選択せず、「次へ」をクリックします。
6. ADFS を利用する上での注意事項が表示されます。「次へ」をクリックします。
7. インストールオプションの確認が表示されます。確認後、問題がなければ「インストール」をクリックします。
8. ADFS のインストールが完了すると、「構成が必要です。(マシン名)でインストールが正常に完了しました」と表示されます。「閉じる」をクリックして「役割と機能の追加ウィザード」を閉じます。
⑨ADFS の構成
1. サーバーマネージャーの上部フラッグに警告マークが表示されているので、クリックします。
2. 表示されたメニュー、展開後の構成から「このサーバーにフェデレーションサービスを構築します」をクリックし、Active Directory フェデレーションサービス構成ウィザードを起動します。
3. 今回は新しいフェデレーションサーバーを作成のため、「フェデレーションサーバーファームに最初のフェデレーションサーバーを作成します。」を選択します。[次へ]をクリックします。
4. 「Active Directory ドメインサービスへの接続」画面で、ADのドメイン管理者のアクセス許可をもっているアカウントを指定します。
5. 「サービスのプロパティの指定」画面で以下を設定し、「次へ」をクリックします。
「SSL 証明書 」:「4.2 SSL 証明書の作成」で作成したSSL 証明書
「フェデレーションサービス名」:SSL証明書の選択後に自動的に設定されます。
「フェデレーションサービスの表示名 」:任意のフェデレーションサービス名 を入力
6. 「サービスアカウントの指定」画面で「既存のドメインユーザーアカウントまたはグループ管理されたサービスアカウントを使用してください」を選択し、「4.3 サービスアカウントの作成」で作成した gMSA を設定します。「次へ」をクリックします。
7. 「構成データベースの指定」画面で、「Windows Internal Database を使用してサーバーにデータベースを作成します。」 を選択します。「次へ」 をクリックします。
8. 「オプションの確認」画面で設定した内容の確認が表示されます。確認後、問題なければ「次へ」をクリックします。
9. 「前提条件のチェック」画面では、警告が表示されますが、「すべての前提条件のチェックに合格しました。」というメッセージが表示されていれば問題ないため、 「構成」 をクリックします。
10. 「閉じる」をクリックして ADFS構成ウィザードを閉じます。
以上でAD、ADFSサーバの構築は完了です。
次回の記事では、今回構築したADFSサーバをIdPとして、OCI「フェデレーション」の構成手順を記載します。
次回の記事:OCIフェデレーション ADFSの資格情報を用いたOCIコンソールへのログイン 第2部