マルチフォレストADFSでデスクトップSSO

こんにちは。サイオステクノロジーの小川です。

今回はマルチフォレストADFSでのクライアント端末で別のフォレストに所属しているアカウントにログインしてデスクトップSSOが可能であるかの検証を行ったので、それについての記事になります。

構成

本検証の構成は以下になります。

  • オンプレADドメイン情報

フォレスト1のドメイン名:domain1.com

フォレスト2のドメイン名:domain2.com

  • ホスト情報(参加ADドメイン)

OS:Windows Server 2019

フォレスト1のドメインコントローラ:mfad1.domain1.com

フォレスト2のドメインコントローラ:mfad2.domain2.com

AADC:aadc.domain1.com

ADFS:adfs.domain1.com

ADFSProxy:wap

OS:Windows 10

クライアント端末:client.domain2.com

 

構築手順

本検証環境の構築手順になります。本記事では1~6の手順は省略し、7以降の設定について記載します。

  1. フォレスト1を構築
  2. フォレスト1にAADC参加、AADCを構築
  3. フォレスト1にADFS参加、ADFSを構築
  4. WAPを構築
  5. フォレスト2を構築
  6. フォレスト2にクライアント端末を参加
  7. フォレスト1とフォレスト2の信頼関係を構築
  8. デスクトップSSOの設定
  9. 動作確認

⇒マルチフォレストの構成でデスクトップSSOできることを確認

7.フォレスト1とフォレスト2の信頼関係を構築

マルチフォレストの信頼関係を設定します。ドメインコントローラのサーバマネージャーを開き、Toolsから「Active Directoryドメインと信頼関係」を選択します。

ドメインを右クリックしプロパティを選択します。

「新しい信頼」をクリックしフォレスト間の信頼関係を設定していきます。

ウィザードが開くので、「次へ」を選択します。信頼関係を結ぶ対象のフォレストのドメインを入力します。

フォレストの信頼を選択します。

信頼関係の方向を選択します。双方向を選択します。

信頼関係を作成する対象「このドメインのみ」を選択します。

認証レベルで「フォレスト全体の認証」を選択します。

信頼関係を結ぶパスワードを設定します。

信頼関係の選択完了が表示されるので信頼関係を結ぶフォレストを確認し「次へ」をクリックします。

信頼関係の作成完了が表示されるので「次へ」を選択します。

新しい信頼ウィザードが完了するので「完了」を選択します。

信頼関係が作成されます。

プロパティを確認すると設定したフォレストのドメインが追加されていることが確認できます。

もう一方のADでも同様に設定をします。

8.デスクトップSSOの設定

信頼関係が構築できたので、デスクトップSSOの設定を行います。設定はADFSサーバとクライアント端末で設定する必要があります。

ADFSサーバの設定

ADFSサーバに管理者でログインし、管理者権限でPowershellを開きます。

認証の拡張保護が有効であることを確認します。

> (Get-AdfsProperties).ExtendedProtectionTokenCheck
Allow

Allowでない場合は以下コマンドを実行します。

> Set-ADFSProperties –ExtendedProtectionTokenCheck "Allow" 

デスクトップSSOを有効にする設定を行います。chromeとFirefoxでそれぞれ設定します。

現行の設定をGet-AdfsProperties | select -ExpandProperty WiaSupportedUserAgentsコマンドを実行して確認します。

> Get-AdfsProperties | select -ExpandProperty WiaSupportedUserAgents
MSAuthHost/1.0/In-Domain
MSIE 6.0
MSIE 7.0
MSIE 8.0
MSIE 9.0
MSIE 10.0
Trident/7.0
MSIPC
Windows Rights Management Client
MS_WorkFoldersClient
=~Windows\s*NT.*Edge

これにChromeとFirefoxの設定を追加します。

Chromeの設定

以下コマンドを実行します。

> Set-AdfsProperties -WIASupportedUserAgents ((Get-ADFSProperties | Select -ExpandProperty WIASupportedUserAgents) + "Mozilla/5.0")

Firefoxの設定

以下コマンドを実行します。

> Set-AdfsProperties -WIASupportedUserAgents ((Get-ADFSProperties | Select -ExpandProperty WIASupportedUserAgents) + "Chrome")

Get-AdfsProperties | select -ExpandProperty WiaSupportedUserAgentsコマンドを実行して、ChromeとMozilla/5.0が追加されていることを確認します。

> Get-AdfsProperties | select -ExpandProperty WiaSupportedUserAgents
MSAuthHost/1.0/In-Domain
MSIE 6.0
MSIE 7.0
MSIE 8.0
MSIE 9.0
MSIE 10.0
Trident/7.0
MSIPC
Windows Rights Management Client
MS_WorkFoldersClient
=~Windows\s*NT.*Edge
Chrome
Mozilla/5.0

「Windows管理ツール」から「サービス」を開き、「Active Directory Federation Services」を選択し、ADFSを再起動します。

クライアント端末の設定

クライアント端末で別フォレストに所属する認証アカウントでログインします。

ChromeとFirefoxでそれぞれ以下の設定を行います。

Chromeの設定

「コントロール パネル」 -> 「ネットワークとインターネット」 -> 「インターネット オプション (インターネット のプロパティ)」 -> 「詳細設定」 タブから 「統合 Windows 認証を使用する 」 が有効化(既定) になっていることを確認します。

次に 「インターネット オプション(インターネット のプロパティ)」 -> 「セキュリティ」タブ -> 「ローカル イントラネット」 -> 「サイト」 -> 「詳細設定」 からフェデレーションサービス名を追加します。

次に 「インターネット オプション(インターネット のプロパティ)」 -> 「セキュリティ」タブ -> 「ローカル イントラネット」 -> 「レベルのカスタマイズ」 -> から ユーザ認証のログオン、「イントラネット ゾーンでのみ自動的にログオンする(既定)」 を選択します。

Firefoxの設定

Firefoxを起動し、アドレスバーに  about:config を入力します。

下記のパラメーターを検索して、設定します。

対象名
network.negotiate-auth.delegation-uris https://<フェデレーションドメイン>
network.automatic-ntlm-auth.trusted-uris https://<フェデレーションドメイン>
network.automatic-ntlm-auth.allow-proxies true
network.negotiate-auth.allow-proxies true

以上で、設定は完了です。

9.動作確認

  1. フォレスト2に参加しているクライント端末からフォレスト1のユーザでログイン
  2. Officeにアクセス
  3. 認証情報を入力せずにサインインできることを確認する

フォレスト2に参加しているクライント端末からフォレスト1のユーザでログインをします。

今回の認証アカウントは認証用ADに「multiforest01@<フェデレーションドメイン>」を作成しました。

※Azure上にクライアント端末を作成しているため、リモートデスクトップ接続を許可する設定をしています。

ブラウザを開きOfficeにアクセスします。 (https://portal.office.com?domain_hint=<フェデレーションドメイン名>

資格情報を入力せずにログインでき、OfficeのPortalにアクセスできました。

まとめ

本検証で、信頼関係を結ぶことで、ADFSを構成しているフォレストとは別のフォレストにドメイン参加している端末からデスクトップSSOできることが確認できました。

 

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

2人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です