AuthenticationとAuthorization

AuthenticationとAuthorization

2021-03-20
arch

Authentication(認証)とAuthorization(認可)は異なる。

  • Authentication:“A氏"であるかを識別する。
  • Authorization:“この行為"をしてよいかを識別する。

Authentication

サービスに対しリクエストを送るA氏が、たしかにA氏であるかを識別する。

e.g. ユーザーのログイン認証

関連技術

OpenID Connect
OAuth 2.0をベースに拡張したAuthenticationプロトコル仕様。id_tokenとしてJWTを使用する。
SAML(Security Assertion Markup Language)
サービス間でAuthenticationとAuthorizationを交換するプロトコル仕様。XMLベース。IdP(Identity Provider)とSP(Service Provider)同士で情報を交換する。

Authorization

サービスに対しAをBしたいというリクエストが、たしかにAをBしてよいかを識別する。

e.g. OAuth 2.0を使用したTwitterアプリケーション

Twitterアプリは事前に、ユーザーからOAuth 2.0で、Twitterが保持するそのユーザーデータに対して行う処理の認可を取得する。Twitterアプリはその認可をもとにユーザーデータにアクセスする。
ユーザー自身として操作していないことがAuthenticationと異なる。

関連技術

JWT(JSON Web Tokens)
JSON Web Tokens. キーペアで暗号化したJSONオブジェクト。Authorizationに利用できる。
OAuth 2.0
Authorizationを行うプロトコル仕様。

Refs.