ケルベロス認証の仕組み

ケルベロス認証の仕組みについて簡単に説明します。

ケルベロス認証の目的

多数のサービス(つまりサーバのこと)を利用するにはそれぞれでユーザー認証をする必要がありますが、ユーザー認証プロセスを一元化させて、ユーザー認証せずに(つまり最初の一度だけで)サービスを利用できるようにします。
これにより、シングルサインオンを実現します。


ケルベロス認証の仕組み

チケットという制度を使っています。サービスチケット(ST)と呼ばれていて、このサービスチケットをプリンシパル(つまりサーバのこと)に渡すことでサービスを利用できるようになります。切符を渡して入場するといったイメージで間違ってないです。

しかし、サービスチケットを用意するプロセス、ユーザー認証をするプロセス、サービスチケットが盗まれないように管理するプロセスがまじりあって実現しています。

2つのサーバが登場します。
  • 認証サーバ(AS) ・・・ ユーザーアカウントの認証をします。パスワードを管理しています。
  • チケット発行サーバ(TGS) ・・・ サービスチケットの発行をします。
※Windows Active Directory ではドメインコントローラが両方とも担当します。

2つのチケットが登場します。
  • チケット認可チケット(TGT) ・・・ アカウントの認証ができるともらえます。
  • サービスチケット(ST) ・・・ 各プリンシパルに提示して使います。

①ユーザー認証をしてチケット認可チケット(TGT)を取得します。認証先は認証サーバです。
※もちろんチケット認可チケットは暗号化されてやり取りされます。

②プリンシパル利用時、チケット認可チケット(TGT)を送ってサービスチケット(ST)を要求します。要求先はチケット発行サーバです。
※もちろんチケット認可チケット(往路)もサービスチケット(復路)も暗号化されてやり取りされます。

③サービスチケットを使って、プリンシパルにアクセスします。
※もちろんサービスチケットも暗号化されてやり取りされています。

プリンシパル利用のたびに、②と③を繰り返します。

ここでは暗号化の仕組みは乗せないことにします。
最低限の用語と仕組みさえここで学んでおけば、他のサイトでも確認できると思います。


ケルベロス認証の通信ポート

TCP/UDP 88: Kerberos 認証
TCP 464: kpasswd サービス
※いずれもクライアント→認証サーバ(Windowsならドメインコントローラ)です。


Q&A

2016年8月のWindowsUpdate適用後、リモートサーバのパスワード変更ができなくなった。

エラーメッセージ
  • 認証要求を処理するドメイン コントローラーにアクセスできません。しばらくしてから再実行してください。

発生原因
  • MS16-101の適用で、リモートからのパスワード変更で古い認証方式(NTML認証)のパスワード変更ができなくなった。
  • ドメインに参加したPCからスタンドアロンサーバのパスワード変更をする場合、NTLM認証になるため、リモートからのパスワード変更は実質できなくなった。

参考URL
https://blogs.technet.microsoft.com/jpntsblog/2016/08/17/ms16-101/
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14163777479

0 件のコメント:

コメントを投稿