業務システムを開発するとき、多くのシステムで必要になるのがログイン機能です。
一見すると、
「メールアドレスとパスワードを入力してログインできればよい」
という単純な機能に見えます。
しかし実際にログイン機能を設計する場合は、
- 誰が利用できるのか
- 何をログインIDとして使うのか
- アカウントを誰が発行するのか
- パスワードを忘れた場合はどうするのか
- 退職者のアカウントをどうするのか
- 誰がどの画面を見られるのか
- ログイン状態をどのくらい維持するのか
- 不正ログインをどう防ぐのか
など、多くの項目を決める必要があります。
特に業務システムでは、ログイン機能だけではなく「認証・ユーザー管理・権限管理」をセットで設計することが重要です。
例えば管理者と一般社員で同じ画面を表示してしまえば、ログイン自体が安全でも、本来見せるべきではない情報が閲覧される可能性があります。
この記事では、システム開発に詳しくない企業担当者にも分かるように、ログイン機能を設計するときに押さえておきたい基本的な論点を整理します。
ログイン機能を設計するときは「ログイン画面」だけを考えない
ログイン機能というと、次のような画面を思い浮かべる方が多いでしょう。
- メールアドレス
- パスワード
- ログインボタン
しかし、これはログイン機能の一部分にすぎません。
実際には、ログインの前後にさまざまな処理があります。
例えば一般的な業務システムなら、
- 管理者がユーザーを登録する
- ユーザーへ初期設定の案内を送る
- ユーザーがパスワードを設定する
- ログインする
- ユーザーの権限に応じた画面を表示する
- 一定時間操作がなければログアウトする
- パスワードを忘れた場合は再設定する
- 退職・異動時にアカウントや権限を変更する
といった一連の仕組みが必要です。
そのため、ログイン機能を設計するときには、
「どうやってログインさせるか」だけでなく「ユーザーをどのように管理するか」まで考える必要があります。
最初に理解したい「認証」と「認可」の違い
ログイン機能を設計するときに重要なのが、「認証」と「認可」の違いです。
似た言葉ですが、役割が異なります。
認証とは
認証は、
「あなたは誰ですか?」を確認する仕組み
です。
例えば、
- メールアドレス+パスワード
- 社員番号+パスワード
- Googleアカウント
- Microsoftアカウント
- ワンタイムパスワード
- 生体認証
などを使って本人であることを確認します。
ログイン処理は主に認証に該当します。
認可とは
認可は、
「そのユーザーは何をしてよいですか?」を判断する仕組み
です。
例えば、
一般社員は、
- 自分の申請を登録できる
- 自分の申請だけ閲覧できる
上長は、
- 部下の申請を閲覧できる
- 申請を承認できる
管理者は、
- 全ユーザーを閲覧できる
- ユーザーを登録・停止できる
といった違いです。
つまり、
「ログインできるか」
と、
「ログイン後に何ができるか」
は別々に設計する必要があります。
ログイン機能の設計で決めるべき10の項目
業務システムのログイン機能では、少なくとも次の項目を整理しておくと設計を進めやすくなります。
1.誰がシステムを利用するのか
最初に決めたいのが利用者です。
例えば、
- 自社社員だけ
- グループ会社の社員
- 取引先
- 顧客
- 一般ユーザー
- システム管理者
などがあります。
利用者によって適切なログイン方式は変わります。
例えば社員100人が利用する社内システムと、不特定多数の顧客が利用する会員サイトでは、アカウント管理の方法が大きく異なります。
社内システムの例
利用者:
- 営業担当
- 営業部長
- 経理担当
- システム管理者
この場合、それぞれに必要な権限も整理します。
単に、
「社員が利用する」
だけで終わらせず、利用者の種類まで整理することが重要です。
2.ログインIDを何にするか
次に決めるのがログインIDです。
代表的なのは、
- メールアドレス
- 社員番号
- 任意のユーザーID
- 電話番号
などです。
Webサービスではメールアドレスを利用するケースが多いですが、社内システムでは社員番号を使うこともあります。
例えば、
“`text
ログインID:社員番号
例:A00123