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 の場合

  1. 画面に表示される リダイレクト URI をコピー (右側のコピーボタンを使用)
  2. Azure Portal を開き、アプリの登録 → 新規登録
  3. 「リダイレクト URI」欄にコピーした URI を貼り付け
  4. アプリ作成後、概要 ページの ディレクトリ (テナント) ID をコピー
  5. 勤怠ONE の画面に戻り、テナント ID 欄に貼り付け

Google Workspace の場合

  1. リダイレクト URI をコピー
  2. Google Cloud Console で OAuth 2.0 クライアント ID を作成
  3. 「承認済みのリダイレクト URI」にコピーした URI を貼り付け
  4. ステップ 3 の詳細設定でクライアント ID とシークレットを入力

SAML 2.0 の場合

  1. 画面に表示される 3 つの値 (SP Entity ID、ACS URL、メタデータ URL) をコピー
  2. IdP で SAML アプリを作成し、上記の値を登録
  3. Name ID 形式を メールアドレス に設定
  4. IdP のメタデータ URL をコピーして、勤怠ONE の IdP メタデータ URL 欄に貼り付け
  5. (メタデータ URL が無い場合は 手動設定 で Entity ID / SSO URL / 署名証明書を入力)

接続テスト

入力後、接続をテスト ボタンを押すと、IdP への到達性と設定値の形式を検証できます。 保存はされないので、何度でも試せます。

結果意味
✅ 成功IdP の設定値は正常
❌ MISSING_FIELD必須項目が未入力
❌ INVALID_FORMAT値の形式が不正 (UUID 形式違反など)
❌ NETWORKIdP に接続できない (ネットワーク / ファイアウォール確認)
❌ HTTPIdP がエラー応答 (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 レコードで証明します。検証済みドメインのユーザーは、自動的にこの組織にメンバーとして追加されます。

  1. ドメインを入力 → 追加
  2. 表示された TXT レコード (ホスト名 _attendance-verify、値) を DNS に登録
  3. 反映後、検証を実行 ボタンを押す

DNS の反映には最大 48 時間かかる場合があります。

ステップ 6: 有効化

最後に SSO を有効化します:

  • SSO を有効化: ON にすると、ユーザーがログイン画面で SSO ボタンを使えるようになります
  • SSO を強制: ON にすると、パスワード認証が無効化され、SSO 経由でしかログインできなくなります

重要: SSO 強制を有効にする前に、必ず別ブラウザでテストログインしてください。設定ミスがあると組織全体がログインできなくなります。

トラブルシューティング

症状対処
ログイン後に「無効なリダイレクト URI」エラーIdP に登録した URI と画面のコピー値が完全一致しているか確認
「テナントが見つかりません」(Microsoft)テナント ID をコピーミスしていないか確認
SAML で「署名検証失敗」IdP の署名証明書が最新か、PEM 形式で正しく入力されているか確認
ロールマッピングが効かないIdP がグループ情報を返しているか (Azure ならトークン構成) を確認