「認証」と「認可」の違いってわかりますか?(No333)
「認証」という言葉はセキュリティ関連でよく使われます。
これに似たような言葉に「認可」というのもあります。
この二つの言葉が指す内容は全く別のことなのですが、一般的には同様の意味で使われています。
今回は、用語解説となりますが、この二つの違いについてお話します。
認証と認可
調べてみますと、次のような記載が見つかりました。(ことバンク https://kotobank.jp より)
認証:利用者が本人であるかどうかを確認する作業。
認可:認証されたユーザーのシステム資源へのアクセスをそのユーザー権限に応じて判断すること。
これを見て「なるほどね」とはなる方は少数でしょう。
最初にタネをばらしてしまいますと、この二つの違いを意識できないのは、認証と認可をバラバラに行うことがほとんどないからです。
日常的に認証を行う時には同時に認可も行っていることが大半です。
要は、両方いっしょにやってるんで、イマイチ区別できていないということです。
ざっくり言いますと、認証というのは、本人かどうかを確認することで、認可というのは、本人であることがわかった上で、そのシステムやデータを使っていい範囲を決めることです。
と書いてもよくわからないと思いますので、もう少し詳しくお話します。
認証とは?
認証というのは上でも書いたように本人確認を行うことです。
本人確認は何もシステムだけでなくごく日常的に行われています。
例えば、電話での問合せ時には生年月日や住所をよく聞かれますし、病院でも氏名や生年月日を何度も聞かれます。
これらは、全て本人であるかどうかを確認する行為です。
システムを使う時も同様です。
利用開始時にはログイン画面でIDとパスワードを入力して、サービスが利用できるようになります。
最近であれば、スマホや電話を用いて、さらに認証コードを入力するといった多要素認証も増えていますよね。
システムを利用しようとしている人が本当に本人なのか?を確認する行為を言います。
と、ここまでは違和感のない方が多いと思います。
認可とは?
認可というのは、認証後に使えるサービスを使えるようにすることです。
「何それ?ログインできたんだったらもうシステム使えるでしょ。認可なんていらんよ。」と思われますか?
ここが、最初に書いた認証と認可が混同される原因でもあるのですが、その人が使えるサービスの範囲を決めることが認可です。
例えば、人事システムを考えてみます。
ここでは、各部長が評価を行い、人事部が最終評価を行い、各メンバはその結果を閲覧できる、という方式を採っているものとします。
この人事システムには全メンバがログインできないといけません。
つまり、全員が認証を通せないといけません。
ですが、各メンバが自分や他のメンバの評価を変えられてはいけません。
各メンバは閲覧しかできてはいけないからです。
これをシステム内で実現するには、通常はロール(役割)と呼ばれる機構を組み込みます。
つまり、Aさんは部長さんなので、評価者のロール、Bさんはメンバなので閲覧者のロール、人事部メンバは人事部メンバのロール、といった具合です。
システム上はロールによって使える機能やアクセスできる範囲を決めておきます。
そして、各利用者にはロールを割り当てておきます。
こうすることによって、メンバが利用できる機能範囲を自由に制限することができます。
この仕組みのことを認可と呼びます。
一般にはログイン(認証)できればサービスの機能が使えると考えるわけですが、実はその大半は「認証」ではなく「認可」によって実現されているということです。
識別することに意味あんの?
「違いがあるのはわかったけど、この言葉遊びに意味あんの?」
ぎくっ!
実は、認証と認可を明解に理解しておくべきは、システムを開発する側なのです。
ですので、一般の方にとっては両者を識別するメリットはあまりありません。
ですが、ログインの集中管理(ディレクトリサービスやシングルサインオン)を考えた場合には、この両者の明解な識別が必要になります。
ディレクトリサービスやシングルサインオンというのは、社内にたくさんあるシステムのID/パスワード管理を一元化しましょう、というサービスです。
これ自体はうまく活用できると非常に便利なサービスなのですが、上手に運用するのがかなり難しいのです。
その基礎となるのが「認証」と「認可」です。
世の中にはこれをまるで理解できていないで、売り込みにくる業者がいます。
こういった業者に導入をまかせると、運用が恐ろしく大変になってしまいます。
気軽に「ログイン管理を一元化しましょう」といったセールストークには乗らないようにお気を付けください。
なお、突然出てきたディレクトリサービスやシングルサインオンといったサービスについては話が長くなりますので、改めてお話をしたいと思います。
まとめ
認証と認可という言葉があります。
認証というのは、ログインID+パスワード、スマホ認証などで本人確認をすることです。
認可というのは、システムを利用する際にどの機能が使えるか、どのデータにアクセスしても良いかを決めることです。
両者は上記のように全く異なる機構なのですが、利用者からは両者が識別しづらいですし、ログインすれば当然のように適切な認可が与えられていますから、認可を意識することはほとんどないと思います。
ですが、ディレクトリサービスやシングルサインオンといったログインの集中管理サービスを導入する時にはこの両者の違いを知っていることが大切になってきます。
今回は認証と認可についてお話しました。
次回もお楽しみに。
7年弱、続けているこのメルマガですが、今号で3回目のゾロ目(333号)となりました。
支えていただいている愛読者の皆様には改めて感謝いたします。
今後とも、精進して参りますのでご支援をよろしくお願いいたします。
(本稿は 2023年11月に作成しました)