RSS

AD は認証はするけど認可はしないと何度言ったr

GW明けから登壇。
終わった後、何を聞きかじったのか
「AD って DB って言ったじゃないですか!やだー」
みたいな質問を立て続けに2つ処理。

DB は AD の一部の要素 (機能) であって、正確には2つの役割(大抵は3つ)、すなわち
データベース
LDAPサーバー
KDC (Key Distribution Center)
の役割を持ち、それらのテクノロジを使って「認証基盤」のサービスを提供するもの、と説明をします。
(もっといえば DNS や WINS でもあったりするのですが、割愛)

で、やはり認証って何?という話によくなります、と。

まぁユーザにとってはどうでもいいのかもしれませんが、、特にAD FS やら単純な SSO の仕組みにおいて認証と認可の違いをいっしょくたにしている人がまだ一定数おられます。

ざっくり言えば、
認証・・・A さんが A さん本人であることを保証すること
認可・・・ある人があるサービスを利用できるかを判定し、利用許可を与えること

ADは両方やってると勘違いしている人が多いですがAD はあくまで認証基盤であって、認可はしません。認可は各サービスがやるものです。

で、まぁ上記のような文言で説明しても分かりにくいのはよくわかるので、よく運転免許にたとえたりする人がおられますが、私はTASPOにたとえたりします。

【TASPOにおける認証】
TASPOカードを持っていること=提出した人が A山B介本人であることを、一般社団法人日本たばこ協会が保証する
と共に、A山B介さんが20歳以上である、という情報をICチップに記録したカードを発行する

【TASPOにおける認可】
認可するのはTASPOカードそのものではなく、タバコを売る側(自動販売機でも売る側)であって、売る側はTASPOカードを読み取ることで、このTASPOカードの持ち主が20歳以上でタバコを吸えることを読み取り、判断し、「タバコを販売する」、というサービスを提供する

みたいな。

もっというと、認可する(販売する)側にとってTASPOカードの持ち主が A山B介本人である、という認証情報は実はそれほど重要ではなく、提出された認証情報の中の「20歳以上か否か」しか重要ではない、のですが、TASPO だとここが上手く伝わらない。

「認証した結果 "KDC" としての Domain Controller が発行した Kerberos Ticket にはTASPOにおける年齢のように各サービスを認可で必要とされる情報は本来持っておらず、Kerberos Ticket に任意の認可情報を持っていない。
ので各サービスは基本的に LDAP でもって "LDAPサーバー" たる Domain Controller に LDAP というお作法で問い合わせをし、"データベース"であるところの Domain Controller は問い合わせに応じて必要な情報を LDAP に乗せて返す、ことが元来の意味での認可」

という部分が TASPO だと実は伝わらない原因かな、と。
(ここでいう年齢のように各サービスが"認可"に必要とする情報を任意に乗せられる方式をクレーム認証方式、といい、その各々の情報をクレームといいますが、それはまた別の話。)

結局、他のたとえを考えよう、という暇クサい試みを同僚とやった結果、
「警官の職務質問」
じゃねぇか、という話に着地し、これは人を選ぶな…という変な空気になりました。

何かこう、腹落ちする奴ないかなぁ

どうでもいいけど、今では市民権を得ましたが、Kerberos 認証を ケルベロス、と名付けた MIT の人を時々中二病認定したい気分に襲われるのは私だけではないはずだ。

ケルベロス認証
http://ja.wikipedia.org/wiki/%E3%82%B1%E3%83%AB%E3%83%99%E3%83%AD%E3%82%B9%E8%AA%8D%E8%A8%BC


 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 コメント:

コメントを投稿