SSO の設定
Microsoft Entra ID / Google Workspace / SAML SSO の設定手順
SSO とは
シングルサインオン (SSO) は、組織で使用している ID プロバイダ (IdP) のアカウントで 勤怠ONE にログインできるようにする仕組みです。これにより:
- パスワードを 勤怠ONE 専用に覚える必要がなくなる
- 退職者のアカウント無効化を IdP 側で一元管理できる
- 二要素認証 / 条件付きアクセスなど IdP 側のポリシーが適用される
勤怠ONE は Microsoft Entra ID (Azure AD)、Google Workspace、および SAML 2.0 対応 IdP (Okta, OneLogin, ADFS など) に対応しています。
設定の前提条件
- 勤怠ONE の管理者 (ADMIN ロール) であること
- IdP の管理権限を持っていること
- 現在のプランで SSO認証 が提供されていること
設定の流れ
設定画面は ウィザード形式 になっており、6 つのステップで完了します。
設定 → SSO設定 (/org/{id}/settings?tab=sso) を開くと、以下のステップが表示されます:
| ステップ | 内容 |
|---|---|
| 1. プロバイダ選択 | IdP の種類を選択 |
| 2. IdP 設定 | リダイレクト URI / SP 情報をコピーし、IdP 側で登録 |
| 3. 詳細設定 | クライアント ID/Secret、自動割り当てドメイン (任意) |
| 4. ロールマッピング | IdP のグループ → 勤怠ONE ロールの対応 (任意) |
| 5. ドメイン検証 | DNS TXT レコードでドメインの所有を証明 |
| 6. 有効化 | SSO を有効化、必要なら強制 |
ステップ 1: プロバイダ選択
カードから IdP を選びます。Microsoft Entra ID / Google Workspace / SAML 2.0 のいずれか。
ステップ 2: IdP 設定
ここがメインの設定です。選んだプロバイダに応じて、必要な値が表示されます。
Microsoft Entra ID の場合
- 画面に表示される リダイレクト URI をコピー (右側のコピーボタンを使用)
- Azure Portal を開き、アプリの登録 → 新規登録
- 「リダイレクト URI」欄にコピーした URI を貼り付け
- アプリ作成後、概要 ページの ディレクトリ (テナント) ID をコピー
- 勤怠ONE の画面に戻り、テナント ID 欄に貼り付け
Google Workspace の場合
- リダイレクト URI をコピー
- Google Cloud Console で OAuth 2.0 クライアント ID を作成
- 「承認済みのリダイレクト URI」にコピーした URI を貼り付け
- ステップ 3 の詳細設定でクライアント ID とシークレットを入力
SAML 2.0 の場合
- 画面に表示される 3 つの値 (SP Entity ID、ACS URL、メタデータ URL) をコピー
- IdP で SAML アプリを作成し、上記の値を登録
- Name ID 形式を メールアドレス に設定
- IdP のメタデータ URL をコピーして、勤怠ONE の IdP メタデータ URL 欄に貼り付け
- (メタデータ URL が無い場合は 手動設定 で Entity ID / SSO URL / 署名証明書を入力)
接続テスト
入力後、接続をテスト ボタンを押すと、IdP への到達性と設定値の形式を検証できます。 保存はされないので、何度でも試せます。
| 結果 | 意味 |
|---|---|
| ✅ 成功 | IdP の設定値は正常 |
| ❌ MISSING_FIELD | 必須項目が未入力 |
| ❌ INVALID_FORMAT | 値の形式が不正 (UUID 形式違反など) |
| ❌ NETWORK | IdP に接続できない (ネットワーク / ファイアウォール確認) |
| ❌ HTTP | IdP がエラー応答 (URL / 設定確認) |
| ❌ PARSE | レスポンスが想定外 (SAML メタデータが正しい XML でない等) |
ステップ 3: 詳細設定 (任意)
組織専用の OAuth アプリを使用する場合や、自動ユーザ割り当てを使う場合に設定します。空欄でも OK。
ステップ 4: ロールマッピング (任意)
IdP のグループに応じて、勤怠ONE のロール (MEMBER / MANAGER / ADMIN) を自動付与する設定です。
例:
- IdP グループ
engineering-managers→ MANAGER - IdP グループ
it-admins→ ADMIN - 上記いずれにも該当しないユーザー → デフォルトロール (例: MEMBER)
設定すると、SSO ログイン時に IdP のグループ情報を読み取り、自動でロールが反映されます。
注意: Microsoft の場合、Azure Portal で トークン構成 → グループ要求の追加 が必要です。Google Workspace は OIDC 経由ではグループを返さないため、デフォルトロールのみ適用されます。
ステップ 5: ドメイン検証
メールドメイン (例: company.com) の所有を DNS TXT レコードで証明します。検証済みドメインのユーザーは、自動的にこの組織にメンバーとして追加されます。
- ドメインを入力 → 追加
- 表示された TXT レコード (ホスト名
_attendance-verify、値) を DNS に登録 - 反映後、検証を実行 ボタンを押す
DNS の反映には最大 48 時間かかる場合があります。
ステップ 6: 有効化
最後に SSO を有効化します:
- SSO を有効化: ON にすると、ユーザーがログイン画面で SSO ボタンを使えるようになります
- SSO を強制: ON にすると、パスワード認証が無効化され、SSO 経由でしかログインできなくなります
重要: SSO 強制を有効にする前に、必ず別ブラウザでテストログインしてください。設定ミスがあると組織全体がログインできなくなります。
トラブルシューティング
| 症状 | 対処 |
|---|---|
| ログイン後に「無効なリダイレクト URI」エラー | IdP に登録した URI と画面のコピー値が完全一致しているか確認 |
| 「テナントが見つかりません」(Microsoft) | テナント ID をコピーミスしていないか確認 |
| SAML で「署名検証失敗」 | IdP の署名証明書が最新か、PEM 形式で正しく入力されているか確認 |
| ロールマッピングが効かない | IdP がグループ情報を返しているか (Azure ならトークン構成) を確認 |