0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

認証(Authentication)と認可(Authorization)の違い

Posted at

目的

認証(Authentication)と 認可(Authorization)は,それぞれ異なる役割を持っており.以下でその違いを簡単に説明する.

結論

認証は本人確認,認可は権限の確認.したがって,認証後に認可を行う流れとなる.


認証 (Authentication)

認証は,ユーザーが誰であるかを確認するプロセスである.あるユーザーからアクセスがあった際に,そのユーザーが本物であることを確認する.

  • 目的 : ユーザーの身元を確認する
  • 質問 : 「あなたは誰ですか?」
    • ユーザー名とパスワードによるログイン
    • 生体認証(指紋,顔認証など)

認可 (Authorization)

認可は,認証されたユーザーがどのリソースにアクセスできるかを決定するプロセス.ユーザーがシステム内で行える操作やアクセスできるデータを制限する.

  • 目的 : ユーザーが実行できる操作やアクセスできるリソースを管理する
  • 質問 : 「あなたには何をする権限がありますか?」
    • ユーザーが特定のファイルを編集する権限を持っているかどうか
    • 管理者と一般ユーザーに異なるアクセス権を設定する

認証と認可の関係

認証は認可の前提条件である.ユーザーが正しく認証されていなければ,認可のプロセスが成立しない.
つまり,認証が成功して初めて認可のプロセスを経る.これによりユーザーの権限が決まる.


開発における認証と認可の違いを意識する必要がある場合

開発の際,認証と認可を区別して考えることが重要である.
以下のようなシチュエーションでは,その違いを意識する必要がある.

1. APIの設計

  • RESTful APIでは,認証は通常,トークン(例えばJWT)を用いて行われる.認証後,APIはそのトークンを使ってリクエストが正当なものかを確認する.その後,認可を行ってユーザーのアクセス権限に基づいた処理を行う.
  • 例: ユーザーが特定のリソースにアクセスできるかどうかは,認証が成功した後の認可処理で決定される.

2. ユーザー管理システム

  • システムで異なる役割(例えば,一般ユーザー,管理者)を持つユーザーがいる場合,それぞれの役割に応じてアクセス制限を設定する必要がある.認証後,認可を行ってそのユーザーが特定の機能にアクセスできるかどうかを判断する.

3. セキュリティの強化

  • 特定のリソースにアクセスするために多要素認証(MFA)を使うことがあります.この場合,認証後に追加の確認を行うことがあり,認可処理に影響を与える場合があります.認証の強化と認可の設定を適切に組み合わせることで,セキュリティが強化できる.

4. 権限の細かい制御

  • 高度な権限管理が必要なアプリケーション(例えば,企業内システム)では,認証が成功した後に細かいアクセス制御が必要となる.ユーザーがどのリソースにアクセスできるかを認可で制御する.

総じて,開発中に認証と認可の違いを意識することで,セキュリティがしっかりと管理され,予期せぬアクセス問題を防ぐことができる.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?