11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Entra Kerberos 認証 を構成し オンプレミスへ SSO する

Last updated at Posted at 2024-03-13

はじめに

Microsoft Entra Kerberos 認証(旧名称:Azure AD Kerberos 認証)を検証してみました。

この構成を行う事で Microsoft Entra 参加済みデバイス から、オンプレミスの Active Directory で認証されたファイルサーバーへ SSO でアクセスできるようにもなることを知り、検証して 記事にもまとめておこうと思いました。

なお、これをやってみようと思ったきっかけは他にもありまして、Windows Hello for Business の ハイブリッド(Cloud Kerberos 信頼の展開)を使いたかったのですが、その前提条件になっていたのが 本構成でした。

Windows Hello for Business
- ハイブリッド(Cloud Kerberos 信頼の展開)の前提条件
https://learn.microsoft.com/ja-jp/windows/security/identity-protection/hello-for-business/deploy/hybrid-cloud-kerberos-trust?tabs=intune#deploy-microsoft-entra-kerberos
(抜粋)
image.png
上記の赤下線部 を実現するのが、本記事で紹介している手順です。


1. 想定される利用シーン

image.png
※上記の図は、以下の公開情報より、抜粋&加筆しています。
https://learn.microsoft.com/ja-jp/entra/identity/authentication/howto-authentication-passwordless-security-key-on-premises#use-sso-to-sign-in-to-on-premises-resources-by-using-fido2-keys

背景

  • 組織では、オンプレミス の Active Directory ドメイン と、Microsoft Entra テナントが、Microsoft Entra Connect で同期されています。

  • オンプレミス ドメインに登録されている ユーザーが、"Microsoft Entra 参加済み の PC" を使用して、在宅勤務をしています。

"Microsoft Entra 参加済み PC" とは、Windows 10 / 11 が、Microsoft Entra テナントに 参加 (Join) した状態です。
そのため、オンプレミスの Active Directory には参加して "いない" 状態です。

利用シーン

  • VPN や Zscaler などのセキュアな仮想ネットワークを通じて、社内のファイルサーバーを参照します。
  • PC 持参でオフィスに出社した際に、PC を 社内 LAN に接続して、社内のファイルサーバーを参照します。

事象
このような時、ファイルサーバーへアクセスした際に、"認証窓" が開きます。
フォルダにアクセスの都度、認証が求められて 利便性が損なわれます。
これは、PC が ドメインコントローラー と認証していないことが原因で発生します。

image.png

解決策
"Microsoft Entra Kerberos 認証" を構成すると、認証窓 が開くことなくファイルサーバーに SSO でアクセスさせることが可能になります。

① ドメイン参加 PC の振る舞い
ドメインコントローラーに参加した PC は、サインイン時に Kerberos 認証を行いチケットを取得しますので、ファイルサーバーへのアクセス時に チケットを提示できるため、そのまま アクセスする事ができます。

② WORKGROUP PC の振る舞い
ドメインコントローラーに参加していない PC(WORKGROUP)が、ファイルサーバーにアクセスすると、認証窓 が開きます。これは、経験したことがある人は多いのでは無いでしょうか?

③ Microsoft Entra 参加済み PC の振る舞い
ドメインにログオンしていないため、WORKGROUP と同じ結果となって、認証窓 が開きます。この ③ のパターンで 認証窓を出さずに SSO させる仕組みが、Microsoft Entra Kerberos 認証 です。

オンプレミスへの SSO が適用できるのは、オンプレミスのドメインユーザー(ハイブリッドユーザー)のみ です。
テナント側で 作成されたユーザー(クラウドユーザー)では、利用できません。

これは、ファイルサーバーのアクセス権には オンプレミスのユーザーが割り当てられているためです。クラウドユーザーには権限がありません。


2. 前提事項

  • オンプレミス Active Directory ドメインコントローラー と、Microsoft Entra ID が Microsoft Entra Connect で同期されていること

  • PC は、Microsoft Entra 参加済み (Join 済み) デバイスであること

  • オンプレミス側から同期された ユーザーアカウント で 参加済みデバイスへサインインしていること
    image.png

  • デバイスは、オンプレミスのドメインコントローラーや ファイルサーバーと、プライベートなネットワークで疎通できること


3. 構成手順

コマンドを用いて操作しますが、そんなに難しいことはしていません。
以下の2ステップのみです。

3-1. 専用モジュール (AzureADHybridAuthenticationManagement) をインストールする
3-2. オンプレミス側に Kerberos サーバーオブジェクトを作成する

3-1. 専用モジュール を インストールする

以下の公開情報の手順を、画面キャプチャ付きで紹介します。

公開情報: AzureADHybridAuthenticationManagement モジュールをインストールする
https://learn.microsoft.com/ja-jp/entra/identity/authentication/howto-authentication-passwordless-security-key-on-premises#install-the-azureadhybridauthenticationmanagement-module

1.貼り付ける内容(下記の枠内をコピー)

# First, ensure TLS 1.2 for PowerShell gallery access.
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
# Install the AzureADHybridAuthenticationManagement PowerShell module.
Install-Module -Name AzureADHybridAuthenticationManagement -AllowClobber

2.作業用マシン で、PowerShell(管理者)を開いて、貼り付けて実行する
image.png
※ 応答を求められたら、"Y" はい で回答します。

私は、ドメインコントローラーと Entar Connect が同居しているサーバー自身 に入れてしまいしたが、公開情報を読む限りは、インターネットにアクセス可能で、ドメインコントローラーとも疎通可能な 別のマシン上でも動作するようです。

但し、通信要件が整っていないと 3-2. 章で失敗する場合もあるようですので、うまく行かない場合は、Entra Connect サーバー にモジュールを導入して リトライしてみてください。

3.モジュールインストール中の画面
image.png

4.エラー無く、プロンプトに戻れば、導入完了です。


3-2. Kerberos サーバー オブジェクトを作成する

以下の公開情報の手順を、画面キャプチャ付きで紹介します。
前章で、専用モジュールを導入したマシン上で 引き続き 作業します。

公開情報:Kerberos サーバー オブジェクトを作成する
https://learn.microsoft.com/ja-jp/entra/identity/authentication/howto-authentication-passwordless-security-key-on-premises#create-a-kerberos-server-object

(2024/8/24 追記)
私の検証時は、上記の記事のうち 「すべての資格情報を要求すプロンプト例1」 のパターンで実施しました。

その他の 例2~4 を実行する場合の説明が 以下の Support Blog で説明されていますので、実行がうまく行かない場合は、その他の例 のパターンも試していただくと良いと思います。

Japan Azure Identity Support Blog:クラウド Kerberos 信頼デプロイ方法
https://jpazureid.github.io/blog/azure-active-directory/how-to-deploy-cloud-kerberos-trust/

1.貼り付ける内容(下記の枠内をコピー)

# Specify the on-premises Active Directory domain. A new Azure AD
# Kerberos Server object will be created in this Active Directory domain.
$domain = $env:USERDNSDOMAIN
$domain
# Enter an Azure Active Directory global administrator username and password.
$cloudCred = Get-Credential -Message 'Microsoft Entra ID の全体管理者のアカウントを入力してください'

# Enter a domain administrator username and password.
$domainCred = Get-Credential -Message 'オンプレミス ドメインのドメイン管理者のアカウントを入力してください'

# Create the new Azure AD Kerberos Server object in Active Directory
# and then publish it to Azure Active Directory.
Set-AzureADKerberosServer -Domain $domain -CloudCredential $cloudCred -DomainCredential $domainCred

上記枠内の項目についての意味
$domain = $env:USERDNSDOMAIN ← 実行する環境のドメイン名を取得
$domain ← 変数の内容を表示($env で取得したドメイン名)
$cloudCred = Get-Credential ← Microsoft Entra ID 全体管理者用 認証窓を表示
$domainCred = Get-Credential ← AD DS ドメイン管理者用 認証窓を表示
Set-AzureADKerberosServer -Domain $domain -CloudCredential $cloudCred -DomainCredential $domainCred ← 指示されたドメイン上に Kerberosサーバーオブジェクトを作成する

2.前章でモジュールをインストールしたマシン上で、PowerShell(管理者)を開いて、貼り付けて実行する
image.png

3.認証窓には、Microsoft Entra ID の全体管理者を入力
image.png

4.認証窓には、オンプレミス ドメインの ドメイン管理者 を入力
image.png

5.多要素認証 (MFA) が求められたら、それに応じます。

6.ドメインコントローラーで、Active Directory ユーザーとコンピューター (ADUC) を開くと Domain Controllers OU に、AzureADKerberos という名前のコンピューターオブジェクトが追加されている事が確認できます。
image.png
※興味深いのは、このオブジェクトは、ドメインコントローラー 扱いになっている点です。

拡張機能 の表示を有効にすると、以下のように krbtgt_AzureAD ユーザーが追加されたことも確認できます。
image.png

7.ステータスの確認
以下の Get コマンドを実行して確認します。

Get-AzureADKerberosServer -Domain $domain -CloudCredential $cloudCred -DomainCredential $domainCred

実行結果
image.png

注意
公開情報には、以下のコマンドで オブジェクトの状態を確認するように記載されていますが、誤記があってエラーになります。
image.png
※例1を使った場合には、$userPrincipalName に値が無い事が原因です。


4. 動作確認

4-1. 前提

必ず、オンプレミス側に存在し、クラウド側へ同期されているユーザーを使います。
オンプレ側
image.png
クラウド側
image.png

4-2. 確認

  1. Microsoft Entra 参加済み デバイスへ、同期された "クラウド側ユーザー" でサインインします。
    image.png
     
  2. 以下のように オンプレミス側のファイル共有を開きます。
    下図では、¥¥[ファイルサーバー名] を入力して ドメコンの 共有 を表示させてます。
    認証窓が表示されずに、1発で フォルダが表示されれば OK です。
    image.png

Microsoft Entra Kerberos の構成に失敗している 又は、オンプレ側に存在しないアカウントでサインインして、パスにアクセスすると、以下のように 認証窓が出てしまいます。
image.png

以上で、Microsoft Entra Kerberos 認証 の構成は完了です。
おつかれさまでした。


5. 参考情報

この記事で紹介した手順が記載されている公開情報

実は、上記よりも判りやすく記載されている公開情報(SQL 用ですが)

※上記は、"グループ ポリシー オブジェクト (GPO) を構成する" 以降は、関係無いので無視して大丈夫です。

くらう道さんの記事です。図もあって 判りやすい
※AVD に RDP する際の SSO の構成まで記載されています。

Deep dive - Azure AD Kerberos の仕組み

11
5
11

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
11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?