私はこれら2つの用語がかなり特定されていることを確認し(特にWebベースのシナリオではこれに限定されないと思います)、違いがあるかどうか疑問に思っていました。
どちらもあなたがあなたがしていることをすることを許されていることを意味しているように私には思えます。これは単なる命名法なのでしょうか、それとも意味に基本的な違いがあるのでしょうか。
私はこれら2つの用語がかなり特定されていることを確認し(特にWebベースのシナリオではこれに限定されないと思います)、違いがあるかどうか疑問に思っていました。
どちらもあなたがあなたがしていることをすることを許されていることを意味しているように私には思えます。これは単なる命名法なのでしょうか、それとも意味に基本的な違いがあるのでしょうか。
回答:
確かに根本的な違いがあります。認証は、システムがユーザーを安全に識別できるメカニズムです。認証システムは、質問に対する回答を提供しようとします。
対照的に、認証は、システムが制御するリソースに対して、特定の(認証された)ユーザーが持つ必要があるアクセスのレベルを決定するメカニズムです。Webベースのシナリオに関連するかどうかに関係なく、データベース管理システムは、特定の特定の個人にデータベースから情報を取得する機能を提供するが、データベースに格納されたデータを変更する機能を提供しないように設計されている場合があります。他の個人にデータを変更する能力を与えながら、データベース。承認システムは、質問に対する回答を提供します。
スティーブ・ライリーは、彼らが区別されなければならない理由について、非常に良いエッセイを書いています。
承認とは、クライアントがリソースを使用する権限またはファイルにアクセスする権限を持っているかどうかをサーバーが判断するプロセスです。
サーバーは、誰が情報やサイトにアクセスしているかを正確に知る必要があるときに、サーバーによって使用されます。
これを最も簡単な言葉で説明する画像を作成しようとしました
1)認証とは、「あなたが言っているのはあなたですか?」という意味です。
2)承認とは、「自分がしようとしていることを実行できるようにする必要があるか」という意味です。
これは、下の図でも説明されています。
認証:
アイデンティティが真か偽かを検証するプロセスです。言い換えると、ユーザーが自分が本当に自分であると主張しているユーザーであることを確認します。
認証タイプ:
OpenIDは認証のオープンスタンダードです。
認可
特定のIDまたはロールを持つユーザーがアクセスできるリソースを決定する手法。
OAuthは認証のオープンスタンダードです。
認証:アプリケーションは、誰がアプリケーションにアクセスしているかを知る必要があります。したがって、認証は、whoという単語に関連しています。アプリケーションはログインフォームで確認します。ユーザーはユーザー名とパスワードを入力し、これらの入力はアプリケーションによって検証されます。検証が成功すると、ユーザーは認証済みとして宣言されます。
認可は、ユーザーがアプリケーションにアクセスできるかどうか、またはどのユーザーがアクセスできるか、どのユーザーがアクセスできないかを確認することです。出典: Authentcation Vs Authorization
定義またはテクノロジーを明示的に指定しようとする残りの応答と比較します。もっと貴重な例を提出します。
認証(AuthNとも呼ばれます)について話すときは、アイデンティティについて考えます。認証は「この人は彼らがそうであると言う人ですか?」と答えようとします。これは、パスポートまたは国民IDチェックに相当するソフトウェアです。あるいは、より現実的に言えば、認証は、他の人の顔を見て、これが大学の友達であり、迷惑な2階の隣人ではないことを認識するときと同じようなプロセスです。
一方、承認(AuthZとも呼ばれます)はすべて権限に関するものです。承認は「この人はこのスペースで何ができるのか」という質問に答えます。家の鍵やオフィスのバッジと考えることができます。玄関を開けてもらえますか?あなたの迷惑な隣人はあなたのアパートに自由に入ることができますか?さらに、あなたのアパートにいったい誰がトイレを使えるのですか?あなたの台所の食器棚に隠されたクッキーの隠し物から誰が食べられますか