> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qoder.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SSO

> このガイドでは、SAML 2.0 および OIDC を使用して組織のシングルサインオン (SSO) を設定する方法について説明します。

<Info>
  対象プラン：Teams, Enterprise
</Info>

## **概要**

シングルサインオン (SSO) を利用すると、組織のメンバーは Qoder で個別のログイン認証情報を管理することなく、企業の ID プロバイダー (IdP) を使用して認証できます。Qoder は、広く採用されている以下の 2 つの SSO プロトコルをサポートしています。

* **SAML 2.0**：XML ベースの成熟したエンタープライズ認証標準で、Okta、Microsoft Entra ID (Azure AD)、OneLogin、Alibaba Cloud IDaaS などで広く使用されています。
* **OIDC (OpenID Connect)**：OAuth 2.0 の上に構築された最新の ID プロトコルで、Discovery URL によるワンクリック設定をサポートします。主なプロバイダーには Okta、Azure AD、Google Workspace、Auth0、Authing、Alibaba Cloud RAM などがあります。

#### **SSO の利点**

* **セキュリティの強化：** 企業の ID プロバイダーを通じて認証を **一元化できます**。
* **ユーザーエクスペリエンスの向上：** 1 つの認証情報セットですべての企業アプリケーションにアクセスできます。
* **ユーザー管理の簡素化：** 検証済みメールドメインのユーザーは、初回ログイン時に自動的にプロビジョニングされ、組織に追加されます。

### プロトコルの選び方

| プロトコル    | 推奨されるケース                                                                              |
| -------- | ------------------------------------------------------------------------------------- |
| **SAML** | IdP が SAML のみサポートしている／IdP 発起の SSO (IdP-initiated SSO) が必要／既に SAML ベースの認証基盤を運用している     |
| **OIDC** | IdP が OIDC / OAuth 2.0 エンドポイントを提供している／Discovery URL でワンクリック設定したい／より軽量な JSON ベースの連携を好む |

<Note>
  1 つの組織で同時に有効化できる SSO プロトコルは 1 種類のみです。プロトコルを切り替える場合は、新しい設定を作成する前に現在の設定を無効化してください。
</Note>

## **前提条件**

SSO を設定する前に、以下の要件を満たしていることを確認してください。

* **管理者権限：** 組織内の管理者権限が **必要です**。
* **ID プロバイダー権限：** 組織の ID プロバイダー (IdP) 内でアプリケーションを設定する権限が **必要です**。
* **DNS アクセス権限：** 検証目的で組織のメールドメインに TXT レコードを追加する権限が **必要です**。

<img src="https://mintcdn.com/qoder/nVTofMdrAHbRY3l4/images/saml.jpg?fit=max&auto=format&n=nVTofMdrAHbRY3l4&q=85&s=30b1a43e9dc4d18a85e908899c6a6853" alt="image" width="2514" height="1120" data-path="images/saml.jpg" />

## **設定プロセス**

SAML と OIDC のいずれを選択する場合も、SSO の設定プロセスは以下のステップに従います。

<img src="https://mintcdn.com/qoder/nVTofMdrAHbRY3l4/images/SAML-configuration-process.png?fit=max&auto=format&n=nVTofMdrAHbRY3l4&q=85&s=34c22d8c9c81ad3c07646d4f4a93adda" alt="image" width="613" height="372" data-path="images/SAML-configuration-process.png" />

### **ステップ 1: メールドメインの検証**

SSO を設定する前に、まず会社のメールドメインの所有権を検証して、検証済みドメインのメールアドレスを持つユーザーのみが組織の SSO を通じてログインできるようにする必要があります。

詳細な手順については、「[**ドメイン検証**](https://docs.qoder.com/account/teams/domains)」をご参照ください。

### **ステップ 2: SSO 設定の作成**

1. 管理者は **\[Organization Settings]** > **\[Security & Identity]** に移動します。
2. IdP に応じて **\[SAML Configuration]** または **\[OIDC Configuration]** を選択します。

<Tabs>
  <Tab title="SAML">
    組織の SAML 設定を作成します。システムは SP 証明書とプライベートキーを自動的に生成します。

    初期化後、Qoder は以下の情報を自動的に生成します。この情報は、ID プロバイダー (IdP) を **設定する際に** 必要です。

    * SP エンティティ ID
    * SP メタデータ URL
    * SP ACS (アサーションコンシューマーサービス) URL
    * SP 証明書とプライベートキー

    **生成される SP 情報の例：**

    | **フィールド**    | **値の例**                                        |
    | :----------- | :--------------------------------------------- |
    | SP エンティティ ID | `https://qoder.com/saml/metadata/{org_id}`     |
    | SP メタデータ URL | `https://qoder.com/saml/metadata/{org_id}`     |
    | SP ACS URL   | `https://qoder.com/sso/callback/saml/{org_id}` |

    <img src="https://mintcdn.com/qoder/nVTofMdrAHbRY3l4/images/saml-1.jpg?fit=max&auto=format&n=nVTofMdrAHbRY3l4&q=85&s=a749023b715128c1fc58385fbcd590d6" alt="image" width="2518" height="1114" data-path="images/saml-1.jpg" />
  </Tab>

  <Tab title="OIDC">
    組織の OIDC 設定を作成します。システムはリダイレクト URI (Redirect URI) と SSO ログイン URL を自動的に生成します。これらは、IdP 側で OAuth 2.0 / OIDC アプリケーションを登録する際に必要です。

    **生成される SP 情報の例：**

    | **フィールド**                 | **値の例**                                        |
    | :------------------------ | :--------------------------------------------- |
    | Redirect URI (コールバック URL) | `https://qoder.com/sso/callback/oidc/{org_id}` |
    | Login URL (ログイン URL)      | `https://qoder.com/sso/login/oidc/{org_id}`    |

    IdP の管理コンソールで OAuth 2.0 / OIDC アプリケーションを作成し、上記の **Redirect URI** をアプリケーションの許可されたリダイレクト URI のリストに追加します。アプリケーション作成後、IdP から **Client ID** と **Client Secret** が発行されます。これらはステップ 3 で使用します。
  </Tab>
</Tabs>

### **ステップ 3: ID プロバイダー (IdP) の設定**

<Tabs>
  <Tab title="SAML">
    **次の 2 つの方法のいずれかで** SAML IdP を **設定できます**。

    #### **方法 A: 自動設定 (推奨)**

    IdP がメタデータ URL を提供している場合は、この方法を使用して自動設定を行います。

    1. **\[SAML Configuration]** ページで、**\[Identity Provider Metadata Configuration]** セクションを見つけます。
    2. **\[Import from URL]** 設定モードを選択します。
    3. IdP メタデータ URL を入力します (例: `https://your-idp.example.com/app/metadata`)。
    4. **\[Save]** をクリックします。

    システムは以下の情報を自動的に取得して解析します。

    * IdP エンティティ ID
    * SSO URL
    * 署名証明書

    #### **方法 B: 手動設定**

    IdP がメタデータ URL を提供していない場合は、以下の手順に従って手動で **設定します**。

    1. **\[SAML Configuration]** ページで、**\[Manual Configuration]** モードを選択します。
    2. 以下のフィールドに入力します。
       * **IDP Entity ID:** ID プロバイダーのエンティティ識別子。
       * **IDP SSO URL:** SSO ログインエンドポイント URL。
       * **IDP Public Certificate:** PEM 形式の署名証明書 (オプションですが推奨)。
    3. **\[Save]** をクリックします。

           <img src="https://mintcdn.com/qoder/nVTofMdrAHbRY3l4/images/saml-2.jpg?fit=max&auto=format&n=nVTofMdrAHbRY3l4&q=85&s=350a38e01c79960e76877b676b454b52" alt="image" width="2448" height="998" data-path="images/saml-2.jpg" />
  </Tab>

  <Tab title="OIDC">
    #### **Issuer URL 自動検出**

    IdP が OpenID Connect Discovery 仕様に準拠している場合 (つまり `/.well-known/openid-configuration` エンドポイントを公開している場合)、この方法を使用します。

    1. **\[OIDC Configuration]** ページで、**\[Issuer URL Auto-Discovery]** 設定モードを選択します。
    2. 以下のフィールドに入力します。
       * **Issuer URL:** IdP の発行者 URL (例: `https://login.company.com`、`https://oauth.aliyun.com`、`https://your-tenant.authing.cn/oidc`)。
       * **Client ID:** IdP が Qoder アプリケーションに発行したクライアント ID。
       * **Client Secret:** IdP が Qoder アプリケーションに発行したクライアントシークレット。
       * **Scopes** (オプション): 要求する OAuth スコープ。`openid` は必須で自動的に追加されます。`openid email profile` の使用を推奨します。
    3. **\[Save]** をクリックします。

    システムは `{Issuer URL}/.well-known/openid-configuration` から以下の情報を自動的に取得して解析します。

    * Authorization エンドポイント
    * Token エンドポイント
    * UserInfo エンドポイント
    * JWKS URL (ID Token 署名検証に使用)
    * サポートされる署名アルゴリズム
  </Tab>
</Tabs>

### **ステップ 4: 属性マッピングの設定**

SSO は自動ユーザープロビジョニングとマッピングをサポートしています。ID プロバイダー (IdP) からのユーザー属性とシステムフィールドの **マッピング** を設定する必要があります。

<Tabs>
  <Tab title="SAML">
    1. **\[SAML Configuration]** ページで、**\[Attribute Mapping]** セクションまでスクロールします。
    2. 属性マッピングを設定します。
       * **Email Attribute:** ユーザーのメールアドレスに **対応する** IdP の属性名 (例: `user.email`)。**必須**。
       * **Name Attribute:** ユーザーの表示名に **対応する** 属性名 (例: `user.name`)。
    3. **\[Save]** をクリックします。
  </Tab>

  <Tab title="OIDC">
    1. **\[OIDC Configuration]** ページで、**\[Attribute Mapping]** セクションまでスクロールします。

    2. OIDC UserInfo の Claim を Qoder のシステムフィールドにマッピングします。
       * **Email Claim:** ユーザーのメールアドレスに対応する Claim 名。通常は `email`。**必須**。
       * **Name Claim:** ユーザーの表示名に対応する Claim 名。通常は `name` または `nickname`。
       * **Open ID Claim:** ユーザー固有の識別子として使用する Claim。通常は `sub` (または `email`)。

    3. **\[Save]** をクリックします。

    <Note>
      **Email は必須です。** IdP が返す UserInfo に有効なメールアドレスが含まれていない場合、認証は失敗します。IdP 側で `email` スコープが Qoder アプリケーションに付与されていることを確認してください。
    </Note>
  </Tab>
</Tabs>

### **ステップ 5: 設定のテスト**

有効化する前に、SSO 設定をテストして、すべての設定が正しいことを **確認してください**。

1. **\[SSO Configuration]** ページで、**\[Test SSO]** ボタンをクリックします。
2. システムは一連の検証チェック (証明書 / 署名、メタデータエンドポイント、Discovery ドキュメント、属性マッピングなど) を実行します。
3. テスト結果を確認します。

<img src="https://mintcdn.com/qoder/nVTofMdrAHbRY3l4/images/saml-3.jpg?fit=max&auto=format&n=nVTofMdrAHbRY3l4&q=85&s=b415acca76d9b1a4839720c20f25ec7f" alt="image" width="1934" height="330" data-path="images/saml-3.jpg" />

### **ステップ 6: SSO の有効化**

テストに合格したら、SSO を有効化できます。

1. **\[SSO Configuration]** ページで、すべてのテストチェックに合格していることを確認します。
2. **\[Enable SSO]** トグルをクリックします。
3. 表示されるダイアログボックスで有効化を確認します。

**有効化後：**

* SSO ステータスが **\[Active]** に変更されます。
* 組織メンバーは SAML または OIDC の SSO を使用してログインできるようになります。
* 検証済みメールドメインを持つユーザーは、ログインページでメールアドレスを入力すると、組織の SSO ログインに自動的にルーティングされます。

<Note>
  **重要な推奨事項：**

  SSO を有効化した後、現在の管理者は **すぐにログアウトしないでください**。代わりに、検証済みドメインの別のユーザーアカウントを使用して SSO ログインをテストし、設定を検証してください。これにより、SSO 設定に問題がある場合でも、管理者は設定にアクセスして調整を行うことができ、ロックアウトされることを回避できます。
</Note>
