年末年始にFirebaseを初めて使って、Webアプリを作ってました。😀
(Webエンジニアからすると、今では当たり前かもしれませんが、)IDaaS(Identity as a Service)を使った認証の仕組みが、従来の業務用Webアプリの認証と異なっていて、面白いなと思ったので、記事にまとめてみました。
業務用Webアプリの認証のよくある例
Basic認証・Digest認証などありますが、実際の業務ではForm認証が多いかなと思います。
HTML上に、ユーザIDとパスワードの入力欄があり、それを自分で実装したサーバプログラムに投げて、サーバ側で判定するという仕組みですね。
シーケンス図で示すと、こんな感じでしょうか。(本ページ内の図はアバウトに描いています🙇♂️)
サーバの方が、クライアントよりも先に、認証に成功したことを検知していますね。
IDaaS認証の例
次に、IDaaSを使った認証の例を見てみます。
Googleや各種SNSなどのアカウントで認証する時の流れです。
IdP(アイデンティティプロバイダ)(Googleなどの認証サーバ)が登場します。
クライアントの方が、サーバよりも先に、認証に成功したことを検知しています。
クライアントは、認証に成功したことを、サーバに伝えていますが、サーバは、クライアントから送られてきたデータを鵜呑みにはできないので、トークンの妥当性を、IdPを通じて検証する必要があります。
まとめ
認証機能付きのWebアプリを作る際は、認証の仕組みをよく理解する必要があります。
次回は、Firebase Authenticationを使って、実際の様子をお見せします。
参考
Firebase Authenticationで学ぶ ソーシャルログイン入門 ID管理の原則にそった実装のベストプラクティス
わかりやすく、かつ、詳しく書かれていました。