Skip to content

MS_KerberosAuthentication

nishi_74322014 edited this page Aug 4, 2026 · 1 revision

ケルベロス認証

概要

ケルベロス認証(Kerberos Authentication)

  • クライアント・サーバ間のネットワーク認証方式の一つ。
  • Active Directoryドメイン アカウントを使用しシングルサインオンを提供する。
  • MITのAthenaプロジェクトによって開発され、RFCで規定されている。

用語

KDC : Key Distribution Center

  • Active Directory(以下、ADと略す)のドメイン コントローラに同梱される。
  • クライアント・サーバから見て第3者であるKDCを介してユーザとホストが互いに相互認証する。
    • 2者間認証は行わず、3者間認証を行う。
    • KDCは
      • 認証と暗号化用の鍵の配布を行う鍵管理センタ。
      • 各参加者とそれぞれ秘密の鍵(暗号鍵)を共有する。
      • 下記の3つのサーバ機能を持っている。

AS : Authentication Server

認証サーバー機能。ユーザーからの認証を受け付ける。

TGS : Ticket Granting Server

チケット交付サーバー機能。各サーバーを利用するためのチケットを発行する。

KDB : Kerberos Database Server

ケルベロスDBサーバー機能。

その他の用語

TGT : Ticket Granting Ticket

  • チケット発行のための大もとのチケット。
  • TGTは以下を含む。
    • ASとユーザ間で共有する… ASキー
    • TGSとユーザ間で共有する… TGSチケット / TGSキー

レルム : realm

  • ケルベロスで管理される範囲を示す(ADであればドメインのこと)。
  • ≒ 全て大文字で記載されたドメイン名

プリンシパル : principals

レルム内で管理されるユーザ、ホスト、サービス

  • ユーザ プリンシパル
    • ユーザ名@レルム
    • ユーザ名/グループ名@レルム
  • ホスト プリンシパル
    • ホスト名/FQDN名@レルム
  • サービス プリンシパル(SPN
    • サービス名/FQDN名@レルム
  • Kerberosチケット交付サービスプリンシパル

詳細

シーケンス

(1) ユーザー

ドメイン アカウントを KDC-AS に送信する。

(2) KDC-AS

  • ドメイン アカウントを認証する。
  • ユーザーに対してASキーで暗号化したTGTを発行する。

(3) ユーザー

  • TGTをASキーで復号化して、TGSキーとチケットを取得。
  • TGSチケットに情報を付与してTGSキーで暗号化する。
  • コレを用いて、KDCのTGSに対して証明書(チケットとセッション鍵)の発行を依頼する。

(4) KDC-TGS

  • TGSキーでTGSチケットを取り出す。
  • ユーザーを認証し、KDBの共通鍵で暗号化された証明書(チケットとセッション鍵)を発行する。

(5) ユーザー

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

(6) サーバー

  • 認証チケットをセッション鍵で復号化する。
  • これを、更にKDBの共通鍵で復号化する。
  • ユーザーを識別してアクセスを許可する。

移行メモ(正誤): 上記シーケンスの (4)〜(6) で「KDBの共通鍵」としている鍵は、 正確には アクセス先サービス(サーバー)とKDCが共有する長期鍵(サービス アカウントの鍵)。 サービス チケットはこの鍵で暗号化されるため、 クライアントはチケットの中身を復号できず、そのままサーバーへ提示する。 したがって (5) の「証明書をKDBの共通鍵で復号化し」は、 正しくは「TGSキーで包まれた外側だけを復号し、サービス チケットは復号せずそのまま提示する」。 原文はKDCの内部鍵をまとめて「KDBの共通鍵」と表現したものと解される。

構築手順

概要

  • WWWクライアントとWWWサーバをドメインに追加
  • WWWクライアント側、ブラウザを構成
    • 統合 Windows 認証の有効化
  • WWWサーバ側、IIS(MS_IIS.md)を構成
    • 統合 Windows 認証の有効化
    • SPNをIISのマシン上に登録(IISでは暗黙的に行われるもよう)
  • ドメイン、Active Directoryを構成
    • 委任の資格情報を持つすべてのコンピュータで委任を有効にする
  • アプリケーションサーバ、ASP.NET(MS_ASPNET.md)側を構成
    • 統合 Windows 認証の有効化
    • 委任を行う場合は偽装(サービス・タスク系のアカウント問題: MS_ServiceAndTaskAccountIssues.md)を設定

参考

複数ドメインを跨るSSO

信頼関係

ドメイン間のフォレストの信頼関係を設定する必要がある
Active Directory(概要))。

FIM/MIM

  • FIM/MIMなどの統合ID管理ソリューションの、プロビジョニング機能を使用して、
    異なるドメインで同じアカウントを使用して認証可能(ただし、OSSにならない)。
  • クレームベース認証を使用するという手段も有効(こちらはSSOになる)。

補足(最新化): FIM は 2021年、MIM 2016 も延長サポートが 2029年1月までとされている。 現在の統合 ID 管理は Microsoft Entra ID Governance が後継。

参考

関連


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

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally