ログインの仕組み〜セッションとクッキーについて〜

IT知識

こんにちは、せこしょーです。
今日はWebサイトを利用する上で馴染み深い「ログイン」についてのIT知識を紹介します。

Webサイトがログインを求める主な理由

  • 利用者に対して個別にカスタマイズされたサービスを提供するため
  • 利用者の個人情報を保護するため
  • 特定のコンテンツや機能にアクセスの制限をかけるため

ログインは誰が管理してくれているのか?

ログイン管理の役割を担っているものは、Webサイトに何気なくアクセスするときに登場してきます。普段はあまり意識しないWebサイトにログインする手順を少し振り返ってみましょう。

  1. まず端末(PCやスマホ)で「ブラウザ」を立ち上げます

2. Webサイト(Webアプリケーション)にアクセスします

3. そしてログインをします

こういう流れですよね。1番最初からすでに出てきてましたが、ログイン管理にはあなたの端末上にある「ブラウザ」が大きく関わっているのです。このブラウザとサーバー上で動作しているWebアプリケーションのやり取りによってログイン管理がされています。基本的にWebサイト(Webアプリケーション)にアクセスするというのは、ブラウザとWebアプリケーションとのやり取りが常に発生しているということもここで抑えておきましょう。

セッションとクッキーについて

ブラウザとWebアプリケーション間のやり取りのことをセッションと呼びます。通常このセッションはユーザーがログイン時に、IDとパスワードを入力してサーバー側で認証されたときにクッキーと呼ばれるログイン証明書のようなものが発行されて開始されます。

ログインのために正しいIDとパスワードを入力した後のサーバー側(Webアプリケーション)と端末側(ブラウザ)の処理をそれぞれ見ていきましょう。

サーバー側(Webアプリケーション)でのログイン管理

まずサーバー側(Webアプリケーション)の処理として、アクセスしてきた端末(ブラウザ)から送信されたログインIDとパスワードがサーバーのデータベースに存在するか確認します。確認できた場合Webアプリケーションはセッションを開始するためにセッションIDなどが記載された「クッキー」を発行してブラウザに送信します。サーバー側ではセッションIDやアクセスしてきたユーザーの個別の情報などをサーバーのメモリやデータベースに保存します。

端末側(ブラウザ)でのログイン管理

サーバー側で発行されたクッキーはブラウザによって保存されます。ブラウザはWebサイトから受け取ったクッキーを自分の端末のハードドライブ上に保存し、次回アクセス時にはそれをサーバーに送信します。

クッキーは以下のような感じで各ブラウザや端末(OS)によって異なる場所に保存されます。この例ではセッションID “123456789abcdefghijklmnopqrstuvwxyz” と有効期限 “2023年2月14日 23:59:59” などが記載されています。

Name: session_id
Value: 123456789abcdefghijklmnopqrstuvwxyz
Expires: Tue, 14-Feb-2023 23:59:59 GMT
Domain: example.com
Path: /
Secure: true
HttpOnly: true

ブラウザの設定からクッキーを確認することもできます。以下はブラウザ「Chrome」の設定からcookieを表示した例です。

2回目以降アクセスするとき

ユーザーがWebアプリケーションに2回目以降アクセスする際は、今度はブラウザからWebアプリケーションに対してクッキーが送信され、クッキーを受け取ったWebアプリケーションはアクセスしてきたユーザーが同一人物かどうかをクッキー記載のセッションIDをサーバーに保存したものと照合します。一致した場合はログイン状態のままサイトが閲覧できる、という仕組みです。

ログインの状態はなぜ切れるのか

ログイン状態が切れる(セッションが切れる)理由の一つにセッションの有効期限切れがあります。以下のクッキーの例で言うとサイト「example.com」のセッションの有効期限は”2023年2月14日 23:59:59″なのでそれ以降はセッションつまりログイン状態が切れます。

Name: session_id
Value: 123456789abcdefghijklmnopqrstuvwxyz
Expires: Tue, 14-Feb-2023 23:59:59 GMT
Domain: example.com
Path: /
Secure: true
HttpOnly: true

通常ブラウザはサーバーで設定されたクッキーの有効期限が来たら保存したクッキーを自動削除します。

ログインの状態が切れる(セッションが切れる)主な理由
  • セッションの有効期限切れ
  • ログアウトする
  • ブラウザを閉じる
  • IPのアクセス制限
  • セキュリティー対策

その他

ブラウザがログインに関わっていることを確認する方法

例えば、普段使っているブラウザでGmailなどログインが必要なサービスにログインした後(もしくはログイン中)に普段使っていない別のブラウザに変えてアクセスするとログインされていないことが確認できます。もしくはブラウザの設定からWebサイトのクッキーを削除するとセッションが切れてログアウトした状態になることからも確認ができます。

ネットの世界はブラウザとサーバーがやり取りをしている

今見ているこの記事もあなたの端末上のブラウザと私が運用しているサーバー上のWebアプリケーション(WordPress)とのやり取りでこの記事が見えています。インターネット上で閲覧できるすべてのWebサイトはどこかのサーバー上に実体があり、あなたの端末とやり取りしようと常に待機している状態です。

せこしょー
せこしょー

今回のテーマと関係ないけど過去の記事で「WordPress」というホームページやブログを作成するWebアプリケーションをサーバー上に構築する方法も紹介してるよ

まとめ

今回はログインの仕組みについてのIT知識を紹介しました。Webサイトへのログインはセッションとクッキーの仕組みによって管理されているおかげで2回目以降のアクセスはわざわざIDとパスワードを入力しなくてもログイン状態を保持してくれていたり、お気に入りリストやショッピングカートの中を保持してくれてたりします。こういった仕組みを知ることでIT感覚が身についていずれ何かの役に立つと思います。今後もこういった記事も書いていきたいと思います!

コメント