認証、認可の違いについて


みなさん、お疲れ様です。
インフラエンジニアのもりっちです。

今回は初心者の方が引っかかる、「認証・認可」の違いについてご紹介したいと思います。
私も普段から、Microsoft Entra ID を使用しておりますが、昔上司に Microsoft Entra ID は認証・認可を行うサービスであると教わり、混乱をしていました。

結構、この認証・認可の概念をとらえるまでに苦労するので、極力わかりやすく説明をしていきたいと思います。

1.認証とは?

「認証」とは、通信の相手が「誰(何)であるのか」を利用者本人の確認・特定することです。

正直、上の書き方では難しく理解できないですよね💦
みなさんが身近に使っているもので例えてみましょう!

それは、、、メールアドレスやパスワードを使ってログインをする作業です!
例えば、Youtubeアカウントにログインするときは、あらかじめ持っているGmailアカウントなどを使ってログインしますよね?

あのときに入力する、メールアドレスとパスワードを使って、私たちはYoutube(厳密にはGoogle)に対して「認証」を行っています。

その「認証」をYoutube(厳密にはGoogle)側がOKすると、ログインできる仕組みになっています。

Microsoft Entra ID では、Azure portal や 管理センターへサインインするときに、アカウント情報(資格情報)を入力してサインインしますよね?
Azure portal や 管理センターへサインインする。という行為が「認証」に該当します。

このように、「認証」とはそのプラットフォームに対して、自分が持つ情報(メールアドレスやパスワードまたはUPN)を入力して、ちゃんとあなたのサービスにアカウント登録してる〇〇ですよ!って証明するイメージですね。

これが、認証です。

2.認可とは?

続いて「認可」ですが、「認可」は「認証」後に行われる動作です。
例えばですが、「認証」作業を行いディズニーランドに入れたとします。しかし、ディズニーランドに入れても、キャストさんだけが入れるスタッフ専用の場所には入れないですよね?

このように、「認証」を行って該当のプラットフォームに入れたとしても、その全部にアクセスできてしまっては、セキュリティがガバガバになってしまいます。
あなたはディズニーランドで遊んでもいいけど、ここへは入っちゃダメよ。みたいにできる行動を制御します。
これが、「認可」です。

Microsoft Entra ID で例えると、私のテナントに遊びに来てもいいように許可はしておいたけど、ここへはアクセスしないでね?みたいな感じで、ユーザーがアクセスできる範囲を制御できます。

3.Entra ID での具体例

では、実際に Microsoft Entra ID を使って「認証・認可」はどのように行っているのかを簡単に解説したいと思います。

まず「認証」ですが、これは先ほど1.でも説明したとおり、作成されているアカウント情報(資格情報)を入力して、Azure portal や 管理センターへアクセスする動作を指します。
「認証」はセキュリティを強化するために行うため、よりセキュリティを強化する方法として、Microsoft Entra ID では MFA(多要素認証)が用意されています。
MFAを使用することで、より「認証」を強化し怪しい人をブロックして、サインインできないようにすることができます。

次に「認可」ですが、「認可」は「認証」をクリア。つまり テナント内にサインインできてから行われる動作となります。
例として、条件付きアクセスなどで "任意のアプリケーション" を1つ選択し、該当のユーザーに対してブロックとして適用させると、Azure portal や 管理ポータルにはサインインしてアクセスできるにも関わらず、そのサインインしたテナント内で管理されている "任意のアプリケーション" にはアクセスしてもブロックされる動作となります。

これは先ほどの、2.で説明したディズニーランドでいう、ディズニーランドには入園できたけれでも、スタッフ専用の場所には入れない。のと同じです。

Microsoft Entra ID = ディズニーランド
任意のアプリケーション = スタッフ専用の場所

↑と置き換えて考えてください!
以下に、図でも表現しておきます。

認証・認可の図式

4.まとめ

今回は、「認証・認可」について説明をしてきました。
認証は、まずテナントに入ってOKな人かどうかを判断する
認可は、テナント内に入ってはいいけど、これはしちゃダメやここへのアクセスは禁止のように、認証後テナント内に入ってからの制限について

このように、区別をしてもらえるとイメージが掴みやすいかと思います!
今後も Azure に関する内容を中心にブログを書いていくので、フォローしていただけますと幸いです。

それでは、また次回のブログでお会いしましょう~

この記事が気に入ったらサポートをしてみませんか?