認証
Authentication, AuthN
ユーザーが誰であるかを確認すること
純粋な「認証」には、「リソース」やそれに対する「権限」という概念は含まれない
誰であるかを確認するだけで、ユーザーが何かをできるようになるわけではない
一つのサービスで考えるなら、普通は認証したら、認可も行う
そうじゃないと認証した意味がない
例
パスワードや秘密の質問を使った本人確認など
Challenge/Response認証
認証の3要素
WHAT YOU ARE (inherence factor)
その人自身を提示して、相手にIDを確認させる
e.g. 顔貌、声、指紋、署名
WHAT YOU HAVE (possession factor)
その人だけが持っているものを提示することによって認証する
e.g. 身分証、携帯電話等
WHAT YOU KNOW (knowledge factor)
その人だけが知っていることを提示して認証する
e.g. パスワード、秘密の質問等
ネット上でよく使われるのはこれ
基本的には3要素の内の1つを満たせば認証が完了するが、
より確実な認証を行いたい場合はMFAもある
SNS認証
生体認証
Web Authentication API
https://developer.mozilla.org/ja/docs/Web/API/Web_Authentication_API
https://engineering.mercari.com/blog/entry/2019-06-04-120000/
https://dev.classmethod.jp/articles/webauthn-viewer/
Single Sign On (SSO)
Auth0
https://speakerdeck.com/kthrtty/ren-zheng-nimatuwarusekiyuriteifalsexin-chang-shi
セキュリティ
暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書