「認証と認可ってごっちゃになるんだよな」に対する説明用ポエム。ざっくりイメージを掴むの向け。
認証
ある個人を特定すること。
「Aさんですね?」
認可
行動やリソースの使用を許可すること。
「伺っております。奥へどうぞ」
もともと 認可 = 認証 で長いこと来ていた。
認証 = 認可 の時代
認可は「玄関を開けて中へ入る」ことに例えることができる。
「鍵」を持っている人間は「玄関を開けて中へ入る」ことができる。これは明らかに行動の許可。なので、認可だ。
(この「鍵」とはつまりIDとパスワード、またはそれに類するもろもろのことだ)
周囲の知らない人間からすれば、家の鍵を開けて入る人間はまあその家の人間だろう、としか思われない。これが 認可 = 認証 の時代である。
しかし、様々なサービスが普及するとこの「鍵」が増えすぎるという事態が発生した。鍵束がジャラジャラして邪魔になったようなものである。
単に邪魔なだけならまだしも、管理が行き届かなくなるのは自明である。
また横着して同じ「鍵」を使い回すことも行われるようになった。これはセキュリティ上問題である。
ここで認証と認可を切り離す需要が生まれた。
認証 ≠ 認可の時代
認可と切り離された認証は、つまり身分証明である。
ある信頼できそうな発行元によって「これはこの人である」という確認を受け、その旨証明書を発行してもらう。
(これは「IDトークン」なんて名前で呼ばれる)
実際にサービスを利用するときは「身分証明書」を提示するだけでよい。あとはサービスの提供者が発行元に連絡を取るなりなんなりして確認してくれる。
本物だと確認されれば、その個人に対して認可されるべき全てのサービス/リソースへとアクセスできる。
この仕組はまさに身分証明書そのもので、マイナンバーカードやパスポート、免許証などは政府によって個人が認証された結果、その証明として発行されたものであるということが出来る。
こう言えば、認証と認可の違いも、ごっちゃにするとどう危険なのかもなんとなく想像できるだろう。
するとどうなるか。こんなイメージになる。
玄関に鍵穴はなく、駅改札のような非接触読み取り機がある。IC付きのマイナンバーカードをそこにタッチすると情報が読み取られ、宅内有線とインターネットを経由して認証局へ問い合わせる。
無事認証が成功するとドアが開き、機械はこう言う。
「認証に成功しました。ロックを解放します。おかえりなさい、XX様」
むすび
ネットの世界では、今のところ「国」というものが身分証明をしているわけではない (そういう国がないわけではないが) 。
そのかわり、現在強力なサービスを展開している企業群、すなわち Google や facebook や twitter 、その他各種大物たちが「認証 ≒ 身分証明を代行するよ」、と名乗りを上げた。
……というと語弊があるが、世に数多ある「Google アカウントでログイン」だの「facebook アカウントでログイン」だの「twitter アカウントでログイン」だのの正体は概ねこういうことであり、OpenID Connect だのなんだのという「外部に認証してもらう」システムはこのためにある。