「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-戻る
--[[認証基盤]]
--[[Windows]]
---[[ドメイン サービス (AD DS)]]

* 目次 [#j2fa2c16]
#contents

*概要 [#c60041d0]
ケルベロス認証(Kerberos Authentication)

-クライアント・サーバ間のネットワーク認証方式の一つ。
-[[Active Directory>ドメイン サービス (AD DS)]]で[[ドメイン アカウント]]を使用しシングルサインオンを提供する。
-MITのAthenaプロジェクトによって開発され、RFCで規定されている。
--https://www.ietf.org/rfc/rfc1510.txt
--https://www.ietf.org/rfc/rfc4120.txt
--https://www.ietf.org/rfc/rfc4121.txt

*詳細 [#td2790c4]
*用語 [#oa6b15f9]

**KDC : Key Distribution Center [#pf40165f]
[[Active Directory(以下、ADと略す)のドメイン コントローラ>ドメイン サービス (AD DS)]]に同梱される。
-[[Active Directory(以下、ADと略す)のドメイン コントローラ>ドメイン サービス (AD DS)]]に同梱される。

-クライアント・サーバから見て第3者である~
KDC を介してユーザとホストが互いに相互認証する。
KDCを介してユーザとホストが互いに相互認証する。

-認証と暗号化用の鍵の配布を鍵管理センタ。
-KDC は各参加者とそれぞれ秘密の鍵(暗号鍵)を共有する。
--2者間認証は行わず、3者間認証を行う。

--KDCは
---認証と暗号化用の鍵の配布を鍵管理センタ。
---各参加者とそれぞれ秘密の鍵(暗号鍵)を共有する。
---下記の3つのサーバ機能を持っている。

***AS : Authentication Server [#b0b6a421]
認証サーバー機能

-ユーザーからの認証を受け付ける。

-余談だが、OAuthは、Authorization Server、~
ケルベロスは、Authentication Serverで、~
上記は、スペルミスでは無い。
***TGS : Ticket Granting Server [#abeea1f5]
チケット交付サーバー機能

***TGS : Ticket Granting Server [#abeea1f5]
-各サーバーを利用するためのチケットを発行する。

**用語 [#oa6b15f9]
***KDB : Kerberos Database Server [#abeea1f5]
ケルベロスDBサーバー機能

-各ユーザの認証情報や、共通鍵などを保存する。
-内部的に[[ディレクトリ サービス]]などが利用される。

**その他の用語 [#nf45ef66]

-Kerberosの用語~
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-ja-4/s1-kerberos-terminology.html

***TGT : Ticket Granting Ticket [#s7252b21]
チケット発行のための大もとのチケット。
-チケット発行のための大もとのチケット。

***TGS : Ticket Granting Server [#facebb7b]
各サーバーを利用するためのチケットを発行する。
-TGTは以下を含む。

--[[AS>#b0b6a421]]とユーザ間で共有する...
---[[AS>#b0b6a421]]キー

--[[TGS>#abeea1f5]]とユーザ間で共有する...
---[[TGS>#abeea1f5]]チケット
---[[TGS>#abeea1f5]]キー

***レルム : realm [#d6d9d3fc]
-ケルベロスで管理される範囲を示す(ADであればドメインのこと)。
-ケルベロスで管理される範囲を~
示す(ADであればドメインのこと)。

-≒全て大文字で記載されたドメイン名

***プリンシパル : principals [#u0205178]
レルム内で管理されるユーザ、ホスト、サービス
-ユーザ プリンシパル~
--ユーザ名@レルム
--ユーザ名/グループ名@レルム

-ホスト プリンシパル
--ホスト名/FQDN名@レルム

-サービス プリンシパル([[SPN]])
--サービス名/FQDN名@レルム

-Kerberosチケット交付サービスプリンシパル

*詳細 [#td2790c4]

**シーケンス [#reea59d4]

***(1) ユーザー [#pbdd0ceb]
[[ドメイン アカウント]]をKDC-ASに送信する。
[[ドメイン アカウント]]を[[KDC>#pf40165f]]-[[AS>#b0b6a421]]に送信する。

***(2) KDC-AS [#y759419c]
***(2) [[KDC>#pf40165f]]-[[AS>#b0b6a421]] [#y759419c]
-[[ドメイン アカウント]]を認証する。
-ユーザーに対してTGTを発行する。
-ユーザーに対して[[AS>#b0b6a421]]キーで暗号化した[[TGT>#s7252b21]]を発行する。

***(3) ユーザー [#p55ab628]
TGTを使用して、KDCのTGSに対して~
アクセスするサーバーへのチケット発行を依頼する。
-[[TGT>#s7252b21]]を[[AS>#b0b6a421]]キーで復号化して、[[TGS>#abeea1f5]]キーとチケットを取得。

***(4) KDC-TGS [#ge76a0f5]
ユーザーに対して暗号化された証明書を発行する。
-[[TGS>#abeea1f5]]チケットに情報を付与して[[TGS>#abeea1f5]]キーで暗号化する。

-コレを用いて、[[KDC>#pf40165f]]の[[TGS>#abeea1f5]]に対して~
証明書(チケットとセッション鍵)の発行を依頼する。

***(4) [[KDC>#pf40165f]]-[[TGS>#abeea1f5]] [#ge76a0f5]
-[[TGS>#abeea1f5]]キーで[[TGS>#abeea1f5]]チケットを取り出す。

-ユーザーを認証し、[[KDB>#abeea1f5]]の共通鍵で暗号化された~
証明書(チケットとセッション鍵)を発行する。

***(5) ユーザー [#s578b535]
-証明書を復号化しチケットとセッション鍵を取り出す。
-アクセス先のサーバーへチケットを提出する。
-証明書を[[KDB>#abeea1f5]]の共通鍵で復号化し証明書(チケットとセッション鍵)を取り出す。
-チケットにクライアント情報を付与し、認証チケットとする。
-認証チケットをセッション鍵で暗号化して、アクセス先のサーバへ提出する。

***(6) サーバー [#c97bbb0e]
-チケットを復号化しユーザー情報とセッション鍵を取り出す。
-ユーザーを認識し、そのユーザーに合ったアクセスを許可する。
-認証チケットをセッション鍵で復号化する。
-これを、更に[[KDB>#abeea1f5]]の共通鍵で復号化する。
-ユーザーを識別してアクセスを許可する。

**構築手順 [#cf9e57a0]

***概要 [#p98bf501]
-WWWクライアントとWWWサーバをドメインに追加

-WWWクライアント側、ブラウザを構成
--統合 Windows 認証の有効化

-WWWサーバ側、[[IIS]]を構成
--統合 Windows 認証の有効化
--[[SPN]]を[[IIS]]のマシン上に登録~
([[IIS]]では暗黙的に行われるもよう)

-ドメイン、[[Active Directory]]を構成
--委任の資格情報を持つすべてのコンピュータで委任を有効にする

-アプリケーションサーバ、[[ASP.NET]]側を構成
--統合 Windows 認証の有効化
--[[委任]]を行う場合は[[偽装>サービス・タスク系のアカウント問題#vaded437]]を設定

***参考 [#vf11ee12]

-設定方法
--認証を委任する場合の ASP.NET アプリケーションの構成方法~
https://support.microsoft.com/ja-jp/help/810572/how-to-configure-an-asp-net-application-for-a-delegation-scenario
--IIS で Kerberos を利用する方法 - Web/DB プログラミング徹底解説~
https://www.keicode.com/iis/iis-kerberos.php

-確認方法
--IdM実験室: Kerberos 認証の設定を確認する~
http://idmlab.eidentity.jp/2012/11/kerberos.html

--Kerberos Authentication Tester~
Michel Barneveld's Blog - Michel Barneveld~
http://blog.michelbarneveld.nl/michel/archive/2009/12/05/kerberos-authentication-tester.aspx

**複数[[ドメイン>Active Directory(概要)#mddefc78]]を跨るSSO [#u602ffb1]

***[[信頼関係>Active Directory(概要)#d40c03fa]] [#tc3cc2c5]
[[ドメイン>Active Directory(概要)#mddefc78]]間の[[フォレスト>Active Directory(概要)#e6994dc1]]の[[信頼関係>Active Directory(概要)#d40c03fa]]を設定する必要がある。

-IBM Knowledge Center - 複数の Active Directory ドメインをまたがる Web クライアント用の Windows シングルサインオン~
https://www.ibm.com/support/knowledgecenter/ja/SSKTMJ_9.0.1/admin/conf_windowssinglesignonforwebclientsacrossmultipleac_t.html

***[[FIM/MIM]] [#j3abdae9]
-[[FIM/MIM]]などの統合ID管理ソリューションの、プロビジョニング機能を使用して、~
異なるドメインで同じアカウントを使用して認証可能(ただし、OSSにならない)。

-[[クレームベース認証]]を使用するという手段も有効(こちらはSSOになる)。

*参考 [#bb851493]
-Insider's Computer Dictionary [Kerberos] - @IT~
http://www.atmarkit.co.jp/icd/root/11/87736911.html

-情報セキュリティ入門 - ケルベロス認証:ITpro~
http://itpro.nikkeibp.co.jp/article/COLUMN/20060518/238303/

-Kerberos 認証の概要~
https://technet.microsoft.com/ja-jp/library/Hh831553.aspx

**3 Minutes Networking [#y5b979b1]
http://www5e.biglobe.ne.jp/%257eaji/3min/

-補講第4回Kerberos(1) プリンシパルとレルム~
http://www5e.biglobe.ne.jp/%257eaji/3min/ex/sup04.html
-補講第5回Kerberos(2) 鍵配布センター~
http://www5e.biglobe.ne.jp/%257eaji/3min/ex/sup05.html
-補講第6回Kerberos(3) チケット~
http://www5e.biglobe.ne.jp/%257eaji/3min/ex/sup06.html
-補講第7回Kerberos(4) KDCセキュリティ~
http://www5e.biglobe.ne.jp/%257eaji/3min/ex/sup07.html
-補講第8回Kerberos(5) クロスレルム認証~
http://www5e.biglobe.ne.jp/%257eaji/3min/ex/sup08.html

**[[ベース クライアント セキュリティ モデル]] [#bd0d6374]
***[[SPN]] [#v5f6eb18]
***[[委任]] [#qd8fb669]
***[[ドメイン アカウント]] [#aff6e078]

----
Tags: [[:IT国際標準]], [[:Windows]], [[:認証基盤]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS