ログイン
パスワード認証によるログイン機能を提供します。
OpenID Connect(OIDC)準拠のセキュアで信頼性の高いログインを実現できます。 Socialログイン(Google等の外部サービス連携)については Socialログイン を参照してください。
概要図
┌─────────────────────────────────┐
│ あなたのアプリ(トップページ) │
│ │
│ ┌─────────────────┐ │
│ │ [ログイン] │ ← クリック │
│ └─────────────────┘ │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ ログイン画面 │
│ │
│ メールアドレス: [__________] │
│ パスワード: [__________] │
│ │
│ ┌─────────────────┐ │
│ │ [ログイン] │ │
│ └─────────────────┘ │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ あなたのアプリ(ログイン完了) │
│ │
│ ようこそ、○○さん │
└─────────────────────────────────┘
できること
パスワード認証
メールアドレス/ユーザー名 + パスワードによるログインを提供します。
最もシンプルで基本的なログイン方式です。Socialログインとの併用も可能です(詳細は Socialログイン)。
セキュリティ機能
不正アクセスを防ぐ仕組みが標準で組み込まれています。
- アカウントロック: ログイン失敗回数でアカウントを一時ロック
- パスワードポリシー: 文字数、複雑さ、有効期限、履歴管理
- 失敗回数のリセット: 成功時または時間経過でリセット
ユーザー管理
ユーザー登録から削除までを一元管理できます。
- 新規ユーザー登録: メールアドレス確認、利用規約同意の管理
- プロフィール管理: ユーザー情報の登録・更新
- パスワードリセット: セキュアなパスワード再設定フロー
- アカウント削除: ユーザーによる退会処理
マルチテナント対応
組織ごとに異なるログイン設定を提供できます。
- テナントAは「パスワードのみ」
- テナントBは「パスワード + MFA」
- テナントCは「パスワード + Socialログイン」
このように、同じidp-serverで複数の組織・サービスを運用できます。
セッション管理
ログイン状態の維持と制御ができます。
- シングルサインオン(SSO): 1回ログインすれば複数アプリで使える
- セッション有効期限: 一定時間後に自動ログアウト
- セッション延長: アクティブなユーザーは期限を延長
- ログアウト: ユーザーによる明示的なログアウト
- 強制ログアウト: 管理者が特定ユーザーをログアウトさせる
SSO(シングルサインオン)の例:
ユーザーがアプリAでログイン
↓
セッション作成(idp-server)
↓
同じユーザーがアプリBにアクセス
↓
既存セッションを使用(再ログイン不要)
導入時に決めること
1. 認証識別子
| 選択肢 | 説明 | 向いているケース |
|---|---|---|
| メールアドレス + パスワード | 最も一般的 | 一般消費者向けサービス |
| ユーザー名 + パスワード | メールアドレスを使わない | 社内システム |
idp-serverでの設定:
- 認証ポリシーで認証方式を定義
2. パスワードの強度をどうするか
| 決めること | 選択肢の例 |
|---|---|
| 最小文字数 | 8文字以上、12文字以上 |
| 必須文字種 | 英数字必須、記号必須 |
idp-serverでの設定:
- パスワードポリシーで文字数、複雑さの要件を設定
3. ログイン失敗時の挙動
| 決めること | 選択肢の例 |
|---|---|
| アカウントロック条件 | 5回失敗でロック、10回失敗でロック |
| ロック期間 | 30分、1時間、管理者が解除するまで |
| 失敗回数のリセット | 成功したらリセット、24時間後にリセット |
idp-serverでの設定:
- 認証ポリシーでロック条件(失敗回数、期間)を設定
- リセット条件を設定
4. ユーザー登録時に何を入力させるか
| 決めること | 選択肢の例 |
|---|---|
| 必須項目 | メールアドレスのみ、氏名も必須、電話番号も必須 |
| メール確認 | する、しない |
| 利用規約への同意 | 必須、任意 |
idp-serverでの設定:
- ユーザースキーマで必須項目を定義
- メール確認フローの有効化/無効化
- 同意管理の設定