【認証認可】セッション管理とは
概要
認証にあたる技術として、セッション管理の仕組みを概要レベルで解説する。
セッション管理とは
セッションとは、同一ユーザーにおけるクライアントとサーバー間の通信の、開始から終了までの一連のやりとりのことである。
セッション管理とは、この一連のやり取りを管理することであり、ユーザーを識別し、ユーザーの属性や状態などを管理する。
その一方で、Webで使われるプロトコルのHTTPは状態管理を行わないステートレスなものであるため、何かしらの方法でセッション管理を行う必要がある。
本記事では、セッション管理でよく使われる、サーバーで生成したセッションIDをクライアントのcookieに保持させる方法について解説する。
セッション管理のイメージ
セッション管理は、ユーザーが会員サイトなどへログインするところから始まるが、具体的には以下のようなイメージとなる。
①ユーザーがIDとパスワードをログイン画面に入力する。
②ログインボタンを押すと、IDとパスワードがサーバーへ送信される。
③サーバーは、受信したIDとパスワードを、データベースなどに保持するユーザー情報と突合し、正規のユーザーであることを確認する。
④確認OKであれば、セッションIDを生成し、ユーザーIDとセッションIDをセットにして、サーバー内にこれを保持する。
⑤セッションIDをクライアントに送信する。
⑥ブラウザのcookieにセッションIDを保存する。
⑦ログイン後は、サーバーへのリクエストのたびに、セッションIDをサーバーに送信する。
⑧サーバーは、受信したセッションIDと、サーバー内に保持するセッションIDをとつごうし、どのユーザーからのリクエストであるかを確認する。
⑨確認OKであれば、サーバー側でリクエストを処理し、その結果をクライアントに送信する。
以上が、セッションIDとcookieを利用したセッション管理のイメージである。
セッション管理は、ユーザー認証がOKとなった場合にサーバーが生成するセッションIDを、サーバーとクライアントの双方で保持し、
これを受け渡すことで、クライアントとサーバーの一連のやり取りを実現する方法である。
以上、セッション管理を概要レベルで解説させていただきました。
なお、上記を動画にて解説したものは以下となります。
こちらもご参考にしていただけると幸いです。
Discussion