Webアプリケーションのコンテキストにおける違いは何ですか?私は略語 "auth"をたくさん見ます。それは auth - enticationまたは auth - orizationの略ですか?それとも両方ですか?
認証 は、誰かが本当に彼らがそうであると主張しているのかを確認するプロセスです。
認可 誰が何をすることを許可されているかを決定する規則を指します。例えば。 Adamはデータベースの作成と削除を許可されているかもしれませんが、Usamaは読み取りのみを許可されています。
2つの概念は完全に直交し独立していますが、 both はセキュリティ設計の中心であり、どちらか一方を正しく取得できないと妥協の道が開かれます。
Webアプリに関して言えば、大まかに言って、認証はログイン資格情報をチェックしてユーザーがログインしていることを認識するかどうかを確認することです。またはコンテンツを作成します。
手短に言ってください。 :-)
認証 =ログイン+パスワード (あなたは誰ですか)
認可 = permissions (あなたが許可されていること)
短い「auth」は、最初のものか両方を指す可能性が最も高いです。
として 認証対認可 それを置く:
認証 は、システムが安全にユーザーを識別できるようにするメカニズムです。認証システムは、質問に対する答えを提供します。
- ユーザーは誰ですか?
- ユーザーは本当に自分を代表しているのですか?
対照的に、 Authorization は、システムによって制御されているリソースを保護するために、特定の認証済みユーザーがどのレベルのアクセス権を持つ必要があるかをシステムが決定するメカニズムです。例えば、データベース管理システムは、特定の特定の個人にデータベースから情報を検索する能力を提供するが、データベースに格納されたデータを変更する能力を提供しない一方、他の個人にデータを変更する能力を与えるように設計され得る。承認システムは質問に対する答えを提供します。
- ユーザーXはリソースRにアクセスすることを許可されていますか?
- ユーザーXは操作Pを実行する権限がありますか?
- ユーザーXは、リソースRに対して操作Pを実行することを許可されていますか?
私は 検証 および 許可 を認証および承認よりも優先します。
私の頭の中やコードの中では、「検証」と「許可」を考えるほうが簡単です。
認証は検証であり、承認は許可をチェックしています。認証はどちらかを意味しますが、「ユーザー認証」、すなわち「ユーザー認証」としてより頻繁に使用されます。
2つの単語は似ているように聞こえ、概念は密接に関連していて一緒に使用されているので、混乱は理解できます。また、すでに述べたように、 Auth という略語は役に立ちません。
他の人たちはすでに認証と認可が何を意味するのかについてよく説明しています。これは、2つを明確に区別するのに役立つ簡単な規則です。
- Auth enti カチオンはあなたのIDを検証します enti ty(または authenticicity 、あなたがそれを好めば)
- 作者 才化はあなたの 作者 ity、すなわち何かにアクセスしそしておそらく変更するあなたの権利を確認する。
認証 は、宣言されたIDを検証するプロセスです。
通常 authorization がこれに続きます。
@ Kerrekの回答に追加。
認証は一般化された形式です(全従業員がマシンにログインできます)
承認は特殊な形式です(ただし、管理者のみがMachineでアプリケーションをインストール/アンインストールできます)。
認証は、ログインユーザー名とパスワードを確認するプロセスです。
承認は、あなたが何かにアクセスできることを確認するプロセスです。
Authentication
は、自分の身元を確認することを意味します。認証とは、ユーザー名/ユーザーIDやパスワードなどの資格情報を検証して本人確認を行うことです。次に、システムは、自分が資格情報を使用していると言っているものであるかどうかを確認します。パブリックネットワークでもプライベートネットワークでも、システムはログインパスワードを介してユーザーIDを認証します。通常、認証はユーザー名とパスワードで行われますが、認証には他にもさまざまな方法があります。
Authorization
は、システムへのアクセスが許可されていることを意味します。承認は、認証されたユーザーが特定のリソースにアクセスできるかどうかを判断するプロセスです。
続きを読む こちら