CMS:Joomla! によって構築された会員サイトでは、会員がログインした際にメニュー構成を変化させることができます。
例えば、本サイトでは以下のように変化します。
ログイン前
ログイン後
ログインする前には『ログインボックス』を表示していたところに、ログイン後には『お客様専用メニュー』を表示しています。
技術的な細かい話は割愛しますが、以下にこれを実現させるための基本についてお話します。
ログインとは何か
閲覧者がサイトにログインを行うためには、IDとパスワードが必要となります。
ログインとは、このIDやパスワード等を送信することでシステムが認証を行うことを指します。
Joomla! では閲覧者の会員登録(アカウント登録)により、アカウント毎に専用のIDとパスワードを保持することになります。これにより、誰がログインしたかが明確となります。
共有パスワードは危険
時折、共通パスワードのみでログインを行うサイトを見かけますが、この方式はセキュリティー面で大いに問題があります。またBASIC認証のような簡易なログイン方式も同様にセキュリティー上の問題があります。なぜならば、IDとパスワードを暗号化せずに送信する方式なので、第三者に読み取られてしまう可能性があるからです。もしBASIC認証を利用するならば、SSL/TLS(暗号化通信)の導入は必須であり、これにより送信情報が暗号化されないという問題は解決します。しかしログインする会員一人一人に専用のID/パスワードを提供することができず、依然課題が残ります。
そもそもBASIC認証は不特定多数の利用を想定としたものではないと考えるべきです。
パスワード情報を複数の人で共有することは、セキュリティーを担保するために絶対に避けるべきであり、もしこのような方式で運営されているウェブサイトを利用する場合は、個人情報を掲載させたり、個人情報を投稿するようなことは絶対に避けてください。
ユーザグループとアクセス権
Joomla! では、アカウント登録した会員を必ず任意のユーザグループに割り当てます。
システムは、ログインをした会員がどのユーザグループに属しているかを判定し、ユーザグループ毎に設定されたアクセス権によってサイト内の挙動を変化させます。
ウェブサイト内に表示する各メニューには、それぞれどのユーザグループに対しそのメニューを表示するかを決定付けるアクセス権を設定します。
アクセス権を「Public」に設定すれば、ログインをしていない一般閲覧者にもそのメニューが表示され、またアクセスすることができます。
アクセス権を「Registered」に設定すれば、ログインをしていない一般閲覧者にはそのメニューが表示されない、というわけです。
これにより、会員専用の「マイページ」メニューを設けることが可能となります。
通常、アクセス権を「Registered」にした場合は、会員がどのユーザグループに割り当てられていようと、ログインした会員全員がアクセスできることになりますが、個々のユーザグループにおいて専用のアクセス権を任意に設けられますので、例えば「Group A」というアクセス権を設定したならば、「Group A」に属している会員だけにメニューを表示させる、といったことが可能です。
ページ「Joomla! 標準機能」においても本内容を説明していますが、このメニューの例でより一層アクセス権コントロールに対する理解が深まれば幸いです。
会員サイトを構築するなら Joomla!
Joomla! では、メニューに限らず、様々な場面でアクセス権を設定することが可能となっています。これはコアシステムにアクセス権限コントロールが備わっているからこそ実現するものです。
WordPress ではプラグインをインストールすることで似たようなことを行うことはできるのですが、コアシステムにアクセス権限コントロールを持っていないが故、Joomla! と同等のきめ細やかな制御はできないはずです。
元々ブログツールとして出発した WordPress に過度な期待を寄せるのは、そもそもおかしな話です。
会員サイトの運営を行いたいのであれば、Joomla! を選択することが理に適っているのです。