認証と認可、OAuthとか
業界的にOAuth知らないとこの先生き残れなそうなので現在勉強中です。
OAuthについて調べてると、認証と認可という単語がたくさん出てきてごっちゃになるので、言葉の定義から整理してみました。
■認証と認可の違い
参考:認証と認可の違い
簡単にまとめると
- 認証(Authentication):本人確認
- 認可(Authorization):リソースへのアクセス権限の付与
認証と認可は全然違うことがわかった!英単語も違う。また、認可するには認証が必要ということも理解した。
■認証には2種類ある
参考:認証には2種類ある
上で認証をAuthenticationとしてたけど、実は情報セキュリティにおける認証には2つあるらしい。
- Authentication(2者間認証)
認証者と被認証者が事前に共有している情報を確認すること。ユーザIDとパスワードによるログインなど
- Certification(3者間認証)
認証局が発行した証明書により持ち主の正当性を確認すること。
日本語ではどちらも認証なので、ややこしいことになってる。
■OAuth
参考:APIアクセス権を委譲するプロトコル、OAuthを知る
OAuthはAPIアクセス権を委譲するプロトコルである。リソースへのアクセス権限の付与なので、OAuthは認可の技術ということになる。
OAuthのプロトコルについては参考記事で十分に説明されているので割愛。
通常のOAuthでは、サービスプロバイダ、コンシューマ、ユーザの3者が登場する。OAuthプロトコルで定義されているのは、APIへの接続内容をサービスプロバイダ側で確認するのに必要なトークンの発行とそのやりとりの方法だけである。また、認可の技術なので、認証が必要になるのだが、認証手段については定義されていない。