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

# SSO と SCIM の設定

> Google Workspace、Microsoft Azure AD、Okta などの SAML アイデンティティプロバイダーを使用して、組織向けに SSO（Single Sign-On）および SCIM（System for Cross-domain Identity Management：クロスドメインのアイデンティティ管理のための標準規格）プロビジョニングを設定します。

この機能を利用できるのは、Teams および Enterprise のユーザーのみです。

<Tabs>
  <Tab title="Google SSO（Single Sign-On）">
    Windsurf は SAML を利用した SSO（Single Sign-On）によるサインインに対応しました。組織で Microsoft Entra、Okta、Google Workspaces などの SAML 対応 IdP（アイデンティティプロバイダ）を使用している場合、Windsurf で SSO を利用できます。

    <Note>Windsurf がサポートするのは SP 起点の SSO のみです。IdP 起点の SSO には現在対応していません。</Note>

    ### IdP アプリケーションの設定

    Google 管理コンソール（admin.google.com）で、左側の **Apps -> Web and mobile apps** をクリックします。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=9d300c86c609da6ee3fb630e91f4de3e" width="530" height="788" data-path="assets/auth/sso-google.png" />
    </Frame>

    **Add app** をクリックし、続いて **Add custom SAML app** をクリックします。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google2.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=44375b535f269f130aea8c5bd6e736be" width="514" height="534" data-path="assets/auth/sso-google2.png" />
    </Frame>

    **App name** に `Windsurf` と入力し、**Next** をクリックします。

    次の画面（Google Identity Provider details）には、[https://windsurf.com/team/settings](https://windsurf.com/team/settings) の Windsurf の SSO 設定にコピーする必要がある情報が表示されます。

    * Google のコンソールページの **SSO URL** を Windsurf の設定の **SSO URL** にコピー
    * Google のコンソールページの **Entity ID** を Windsurf の設定の **Idp Entity ID** にコピー
    * Google のコンソールページの **Certificate** を Windsurf の設定の **X509 Certificate** にコピー
    * Google のコンソールページで **Continue** をクリック

    次の画面では、Google のコンソールページに Codeium の設定ページから情報をコピーします。

    * Codeium の設定ページの **Callback URL** を Google のコンソールページの **ACS URL** にコピー
    * Codeium の設定ページの **SP Entity ID** を Google のコンソールページの **SP Entity ID** にコピー
    * **Name ID** の形式を **EMAIL** に変更
    * Google のコンソールページで **Continue** をクリック

    次の画面では、Google のコンソールページで以下を設定します。

    * **Add Mapping** をクリックし、**First name** を選択して **App attributes** を **firstName** に設定
    * **Add Mapping** をクリックし、**Last name** を選択して **App attributes** を **lastName** に設定
    * **Finish** をクリック

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google3.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=c29f0ebf5a05dd5fae3a1127c4111d29" width="2078" height="862" data-path="assets/auth/sso-google3.png" />
    </Frame>

    Codeium の設定ページで **Enable Login with SAML** をクリックし、続いて **Save** をクリックします。**Test Login** をクリックして、ログインが期待どおりに動作することを確認してください。これで、すべてのユーザーに対して SSO ログインが強制されます。
  </Tab>

  <Tab title="Microsoft Entra ID">
    Windsurf Enterprise は、SAML を用いた Single Sign-On（SSO）でのサインインに対応しました。組織で Microsoft Entra ID（旧称 Azure AD）を使用している場合、Windsurf で SSO を利用できます。

    <Note>Windsurf は SP 起点の SSO のみ対応です。IdP 起点の SSO には現在対応していません。</Note>

    ## パート 1: Microsoft Entra ID で Enterprise アプリケーションを作成する

    <Note>このセクションの操作はすべて **Microsoft Entra ID 管理センター**で行います。</Note>

    1. Microsoft Entra ID で **Add** をクリックし、**Enterprise Application** を選択します。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=70c1ef27e1870d1f95176d12cd7c9c47" width="854" height="384" data-path="assets/auth/sso-azure.png" />
    </Frame>

    2. **Create your own application** をクリックします。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure2.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=d8d3d2b159172edef9033487d1167b52" width="680" height="202" data-path="assets/auth/sso-azure2.png" />
    </Frame>

    3. アプリケーション名を **Windsurf** とし、*Integrate any other application you don't find in the gallery* を選択して、**Create** をクリックします。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure3.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=38dd3186171705ca16387dfff4a5b24b" width="968" height="342" data-path="assets/auth/sso-azure3.png" />
    </Frame>

    ## パート 2: Microsoft Entra ID で SAML とユーザー属性を構成する

    <Note>このセクションの操作はすべて **Microsoft Entra ID 管理センター**で行います。</Note>

    4. 作成した Windsurf アプリケーションで **Set up single sign on** をクリックし、**SAML** をクリックします。

    5. **Basic SAML Configuration** の **Edit** をクリックします。

    6. **この Entra ID のタブは開いたまま**、新しいタブで [https://windsurf.com/team/settings](https://windsurf.com/team/settings) の **Windsurf Teams SSO settings** を開きます。

    7. **Microsoft Entra ID** の SAML 設定フォームで以下を設定します:
       * **Identifier (Entity ID)**: **Windsurf SSO settings page** の **SP Entity ID** の値をコピー
       * **Reply URL (Assertion Consumer Service URL)**: **Windsurf SSO settings page** の **Callback URL** の値をコピー
       * 画面上部の **Save** をクリック

    8. 正しい氏名表示のためユーザー属性を構成します。**Microsoft Entra ID** の **Attributes & Claims** で **Edit** をクリックします。

    9. **Add new claim** をクリックし、次の新規クレームを 2 件作成します:
       * **First claim**: Name = `firstName`, Source attribute = `user.givenname`
       * **Second claim**: Name = `lastName`, Source attribute = `user.surname`

    ## パート 3: Windsurf ポータルで SSO 設定を構成する

    <Note>**Windsurf ポータル**（[https://windsurf.com/team/settings）で設定を完了します。](https://windsurf.com/team/settings）で設定を完了します。)</Note>

    10. **Windsurf SSO settings page** で以下を設定します:
        * **Pick your SSO ID**: チームのログインポータル用に一意の識別子を選択（後から変更不可）
        * **IdP Entity ID**: **Microsoft Entra ID** の **Set up Windsurf** → **Microsoft Entra Identifier** の値をコピー
        * **SSO URL**: **Microsoft Entra ID** の **Login URL** の値をコピー
        * **X509 Certificate**: **Microsoft Entra ID** から **SAML certificate (Base64)** をダウンロードし、ファイルを開いてテキスト内容をここに貼り付け

    11. **Windsurf ポータル**で **Enable Login with SAML** をクリックし、**Save** をクリックします。

    12. **設定をテスト**: **Test Login** をクリックして、SSO 設定が期待どおりに動作することを確認します。

    <Note>**重要**: テストに成功するまで、Windsurf の設定ページからログアウトしたり、ページを閉じたりしないでください。テストに失敗した場合は、先に進む前に設定のトラブルシューティングが必要になる可能性があります。</Note>
  </Tab>

  <Tab title="Okta SSO（Single Sign-On）">
    Windsurf Enterprise は、SAML を介した SSO（Single Sign-On）でのサインインに対応しました。組織で Microsoft Entra、Okta、Google Workspace、または SAML をサポートするその他の IdP を使用している場合、Windsurf で SSO を利用できます。

    <Note>Windsurf は SP 起点の SSO のみをサポートしています。IdP 起点の SSO には現在対応していません。</Note>

    ### IdP アプリケーションを設定する

    左サイドバーの Applications をクリックし、Create App Integration を選択します。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta1.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=e3f879d2fa7faeba003aa04e2c5d3a4a" width="1248" height="962" data-path="assets/auth/sso-okta1.png" />
    </Frame>

    サインイン方法として SAML 2.0 を選択します。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta2.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=df39e8a15a879d8f2798a4284087c567" width="1600" height="1023" data-path="assets/auth/sso-okta2.png" />
    </Frame>

    アプリ名を Windsurf（または任意の名称）に設定し、Next をクリックします。

    SAML 設定を次のように構成します。

    * Single sign-on URL を [https://auth.windsurf.com/\&#95;\&#95;/auth/handler](https://auth.windsurf.com/\&#95;\&#95;/auth/handler) に設定
    * Audience URI（SP Entity ID）を [www.codeium.com](http://www.codeium.com) に設定
    * NameID format を EmailAddress に設定
    * Application username を Email に設定

    属性ステートメントを次のように設定し、**Next** をクリックします。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta3.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=0903972c21dd13147a1adfe8791f1679" width="1398" height="602" data-path="assets/auth/sso-okta3.png" />
    </Frame>

    フィードバックのセクションで「This is an internal app that we have created」を選択し、**Finish** をクリックします。

    ### Okta を SAML プロバイダとして登録する

    カスタム SAML アプリケーションの Sign on タブにリダイレクトされます。このページの情報を Windsurf の SSO 設定に入力します。

    * [https://windsurf.com/team/settings](https://windsurf.com/team/settings) を開き、Configure SAML をクリック
    * Okta のアプリケーションページの “Issuer” の値をコピーし、IdP Entity ID に貼り付け
    * Okta のアプリケーションページの “Sign on URL” の値をコピーし、SSO URL に貼り付け
    * Signing Certificate をダウンロードし、X509 certificate に貼り付け
    * Enable Login with SAML にチェックを入れて、Save をクリック
    * Test Login ボタンでログインをテストします。成功メッセージが表示されます:

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta4.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=574e091c869162bc41dc0aa36cd209fa" width="1046" height="270" data-path="assets/auth/sso-okta4.png" />
    </Frame>

    これで設定は完了です。新しい Windsurf Okta アプリケーションにユーザーを追加できます。

    組織のカスタム Login Portal URL をユーザーと共有し、そのリンクからサインインするよう案内してください。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta5.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=f3ccced59b0cbc7d0f0b1b6b39f1ee1c" width="988" height="312" data-path="assets/auth/sso-okta5.png" />
    </Frame>

    SSO 経由で Windsurf にログインしたユーザーは、自動的にチームに承認されます。

    ### 注意事項

    Windsurf は現在、IdP 起点のログインフローをサポートしていません。

    また、OIDC にもまだ対応していません。

    # トラブルシューティング

    ### Login with SAML config failed: Firebase: Error (auth/operation-not-allowed)

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta6.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=f65534799dfd8f941a68dc9fc72236d4" width="617" height="92" data-path="assets/auth/sso-okta6.png" />
    </Frame>

    これは SSO ID が無効である、または SSO URL が誤っていることを示しています。英数字で、余分なスペースや無効な文字がないことを確認してください。ガイドの手順をもう一度見直し、正しい値を使用していることを確認してください。

    ### Login with SAML config failed: Firebase: SAML Response \<Issuer> mismatch. (auth/invalid-credential)

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta7.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=446c8ad9510b7dcc8e744c7b80862c29" width="752" height="117" data-path="assets/auth/sso-okta7.png" />
    </Frame>

    これは IdP Entity ID が無効であることを示しています。Okta ポータルから、前後のスペースや余分な文字がない状態で正確にコピーしているか確認してください。

    ### Failed to verify the signature in samlresponse

    これは X509 certificate の値が正しくないことを示しています。正しいキーをコピーし、次の形式になっていることを確認してください:

    ```
    -----BEGIN CERTIFICATE-----
    value
    ------END CERTIFICATE------
    ```
  </Tab>

  <Tab title="Azure SCIM（System for Cross-domain Identity Management：クロスドメインのアイデンティティ管理のための標準規格）">
    Windsurf は Microsoft Entra ID / Azure AD と連携したユーザーおよびグループの SCIM 同期をサポートしています。SCIM 同期の利用にあたり SSO（Single Sign-On）の設定は必須ではありませんが、強く推奨します。

    必要なもの:

    * Microsoft Entra ID / Azure AD への管理者アクセス
    * Windsurf への管理者アクセス
    * Entra ID 上の既存の Windsurf アプリケーション（通常は既存の SSO アプリケーションから作成済み）

    ## ステップ 1: 既存の Windsurf アプリケーションに移動

    Azure の Microsoft Entra ID に移動し、左サイドバーの Enterprise applications をクリックして、一覧から既存の Windsurf アプリケーションをクリックします。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=c2425d24cadc8997c694a4b8a950169a" width="1258" height="664" data-path="assets/auth/scim-azure.png" />
    </Frame>

    ## ステップ 2: SCIM プロビジョニングを設定

    中央（ステップ 3）の Provision User Accounts の下にある Get started をクリックし、続けてもう一度 Get started をクリックします。

    <Frame>
      <img src="https://mintcdn.com/codeium/s3SYO8XdSvmrABvq/assets/auth/scim-azure2.png?fit=max&auto=format&n=s3SYO8XdSvmrABvq&q=85&s=1e9c8417da7568dc587941955f6d0ace" width="2582" height="1858" data-path="assets/auth/scim-azure2.png" />
    </Frame>

    Provisioning の設定ページで、次のオプションを選択します。

    Provisioning Mode:  Automatic

    Admin Credentials > Tenant URL: [https://server.codeium.com/scim/v2](https://server.codeium.com/scim/v2)

    Azure のプロビジョニングページは開いたままにし、Windsurf の Web ポータルに移動して、ページ上部の NavBar にあるプロフィールアイコンをクリックします。Team Settings で Service Key を選択し、Add Service Key をクリックします。任意のキー名（例: 「Azure Provisioning Key」）を入力し、Create Service Key をクリックします。出力されたキーをコピーし、Azure のページに戻って Secret Token に貼り付けます。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure3.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=80477c2c0d31631e38e217b22e9f42a3" width="1612" height="1013" data-path="assets/auth/scim-azure3.png" />
    </Frame>

    （Windsurf でキーを作成した後の表示）

    Provisioning ページで Test Connection をクリックし、SCIM 接続が検証されるはずです。

    続いて、Provisioning フォーム上部の Save をクリックします。

    ## ステップ 3: SCIM プロビジョニングを構成

    Save をクリックすると、Provisioning ページに新しいオプション Mappings が表示されます。Mappings を展開し、Provision Microsoft Entra ID Users をクリックします。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure4.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=276791b068bd34c2bcbe5321e95abfd6" width="666" height="438" data-path="assets/auth/scim-azure4.png" />
    </Frame>

    attribute Mappings で、displayName 配下のすべてのフィールドを削除し、userName、active、displayName のみを残します。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure5.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=ddb9440614a4bc04f7c561bbf64a2d5a" width="1260" height="190" data-path="assets/auth/scim-azure5.png" />
    </Frame>

    active については、Edit をクリックします。Expression で、フィールドを次のように変更します

    ```
    NOT([IsSoftDeleted])
    ```

    次に OK をクリックします。

    ユーザー属性は次のようになります。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure6.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=2beab12c979d3272d522293080634811" width="2826" height="490" data-path="assets/auth/scim-azure6.png" />
    </Frame>

    Attribute Mapping ページで、上部の Save をクリックし、Provisioning ページに戻ります。

    同じページで、Mappings の下にある Provision Microsoft Entra ID Groups をクリックします。ここでは externalId だけを削除し、上部の Save をクリックします。Provisioning ページに戻ります。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure7.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=11e89ce7d057c455ea00e0f469351b61" width="1258" height="203" data-path="assets/auth/scim-azure7.png" />
    </Frame>

    Provisioning ページの一番下に、Provisioning Status のトグルもあります。これを On に設定して SCIM（System for Cross-domain Identity Management：クロスドメインのアイデンティティ管理のための標準規格）同期を有効にします。これで 40 分ごとに、Entra ID アプリケーションのユーザーとグループが Windsurf に同期されます。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure8.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=1214073ce82bd85a1c2a57834005608f" width="686" height="306" data-path="assets/auth/scim-azure8.png" />
    </Frame>

    Save をクリックして完了です。これで SCIM のユーザーおよびグループ同期が有効になりました。アプリケーションに割り当てられたユーザーとグループのみが Windsurf に同期されます。なお、Azure の SCIM の設計上、ユーザーの削除はユーザーを完全に削除するのではなく、Windsurf へのアクセスを無効化する（席の占有を止める）だけである点に注意してください。
  </Tab>

  <Tab title="Okta SCIM（System for Cross-domain Identity Management：クロスドメインのアイデンティティ管理のための標準規格）">
    Windsurfは、Oktaを用いたユーザーおよびグループのSCIM同期をサポートしています。SCIM同期を利用するためにSSO（Single Sign-On）を設定する必要はありませんが、強く推奨します。

    必要なもの:

    * Okta の管理者アクセス
    * Windsurf の管理者アクセス
    * Okta 上の既存の Windsurf アプリケーション（通常は既存の SSO アプリケーションとして作成済み）

    ## Step 1: 既存の Windsurf アプリケーションに移動する

    Okta で左サイドバーの Applications を開き、Applications をクリックして、アプリケーション一覧から既存の Windsurf アプリケーションを選択します。

    ## Step 2: SCIM プロビジョニングを有効化する

    General タブの App Settings で、右上の Edit をクリックします。次に「Enable SCIM Provisioning」にチェックを入れ、Save をクリックします。上部に新たに Provisioning タブが表示されるはずです。

    続いて Provisioning に移動し、Edit をクリックして以下の項目を入力します:

    SCIM connector base URL: [https://server.codeium.com/scim/v2](https://server.codeium.com/scim/v2)

    Unique identifier field for users: email

    Supported provisioning actions: Push New Users, Push Profile Updates, Push Groups

    Authentication Mode: HTTP Header

    HTTP Header - Authorization 用のトークンは次の手順で生成します

    * [https://windsurf.com/team/settings](https://windsurf.com/team/settings) にアクセスし、Other Settings の中の Service Key Configuration を開く
    * Add Service Key をクリックして、キー名を設定する
    * 表示された API キーをコピーし、Okta に戻って HTTP Header - Authorization に貼り付ける

    Provisioning Integration の入力が完了したら Save をクリックします。

    ## Step 3: プロビジョニングを設定する

    Provisioning タブ内の左側に新しい 2 つのセクションが表示されます。To App をクリックし、Edit Provisioning to App を選択します。Create Users、Update User Attributes、Deactivate Users にチェックを入れて、Save をクリックします。

    このステップの後、グループに割り当てられたすべてのユーザーが Windsurf に同期されます。

    ## Step 4: グループプロビジョニングを設定する（任意）

    グループを Windsurf に同期するには、プッシュ対象のグループを指定します。アプリケーションの画面で上部の Push Groups タブをクリックします。続いて「+ Push Groups -> Find Groups by name」をクリックします。追加したいグループ名で検索し、「Push group memberships immediately」にチェックが入っていることを確認して、Save をクリックします。グループが作成され、メンバーが Windsurf に同期されます。グループはその後、Analytics ページでグループ別の分析に利用できます。
  </Tab>

  <Tab title="SCIM（System for Cross-domain Identity Management：クロスドメインのアイデンティティ管理のための標準規格）API">
    このガイドでは、SCIM（System for Cross-domain Identity Management：クロスドメインのアイデンティティ管理のための標準規格）APIを使用してWindsurfでグループを作成および維持する方法を説明します。

    Identity Provider(Azure/Okta)を使用せずに手動でグループをプロビジョニングしたい理由がいくつかあります。企業では、Windsurfがアクセスできない別の内部ソース(HRウェブサイト、ソースコード管理ツールなど)からグループをプロビジョニングしたい場合や、Identity Providerが提供するものよりもグループに対してより詳細な制御を行いたい場合があります。そのため、グループはHTTPリクエストを介してAPIで作成することも可能です。以下では、CURLを使用したHTTPリクエストの例を示します。

    ここには5つの主要なAPIがあります。グループ作成、グループメンバー追加、グループメンバー置換、グループ削除、グループ内ユーザー一覧です。

    ### グループの作成

    ```
    curl -k -X POST https://server.codeium.com/scim/v2/Groups -d '{
    "displayName": "<グループ名>",
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"]
    }' -H "Authorization: Bearer <APIシークレットキー>" -H "Content-Type: application/scim+json"
    ```

    ### グループメンバーを追加

    ```
    curl -X PATCH https://server.codeium.com/scim/v2/Groups/<グループ名> -d '{"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations":[
    {
    "op": "add",
    "path":"members",
    "value": [{"value": "<メールアドレス1>"}, {"value": "<メールアドレス2>"}]
    }]}' -H "Authorization: Bearer <APIシークレットキー>" -H "Content-Type: application/scim+json"
    ```

    ### グループメンバーの置き換え

    ```
    curl -X PATCH https://server.codeium.com/scim/v2/Groups/<グループ名> -d '{"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations":[
    {
    "op": "replace",
    "path":"members",
    "value": [{"value": "<メールアドレス1>"}, {"value": "<メールアドレス2>"}]
    }]}' -H "Authorization: Bearer <APIシークレットキー>" -H "Content-Type: application/scim+json"
    ```

    ### グループの削除

    ```
    curl -X DELETE https://server.codeium.com/scim/v2/Groups/<グループ名> -H "Authorization: Bearer <APIシークレットキー>" -H "Content-Type: application/scim+json"
    ```

    ### グループを一覧表示

    ```
    curl -X GET -H "Authorization: Bearer <APIシークレットキー>" "https://server.codeium.com/scim/v2/Groups"
    ```

    ### グループ内のユーザーを一覧表示

    ```
    curl -X GET -H "Authorization: Bearer <APIシークレットキー>" "https://server.codeium.com/scim/v2/Groups/<group_id>"
    ```

    まず最初にグループを作成し、その後でメンバーを含むグループに置き換える必要があります。また、グループ名にスペースなどの特殊文字が含まれている場合は、グループ名をURLエンコードする必要があります。例えば、「Engineering Group」というグループ名の場合、URLでは「Engineering%20Group」として記述する必要があります。

    ユーザーをグループに追加する前に、Windsurfでユーザーを作成する必要があります（SCIM（System for Cross-domain Identity Management：クロスドメインのアイデンティティ管理のための標準規格）経由、または手動でのアカウント作成）。

    ## ユーザーAPI

    ユーザー向けのAPIも提供されています。以下は、WindsurfがサポートするSCIM（System for Cross-domain Identity Management：クロスドメインのアイデンティティ管理のための標準規格）APIの主要なものです。

    ユーザーを無効化する（有効化するにはfalseをtrueに変更）:

    ```
    curl -X PATCH \
      https://server.codeium.com/scim/v2/Users/<ユーザーAPIキー> \
      -H 'Content-Type: application/scim+json' \
      -H 'Authorization: Bearer <APIシークレットキー>' \
      -d '{
        "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
        "Operations": [
          {
            "op": "replace",
            "path": "active",
            "value": false
          }
        ]
      }'
    ```

    ユーザーを作成する:

    ```
    curl -X POST \
      https://server.codeium.com/scim/v2/Users \
      -H 'Content-Type: application/scim+json' \
      -H 'Authorization: Bearer <APIシークレットキー>' \
      -d '{
        "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
        "userName": "<email>",
        "displayName": "<full name>",
        "active": true,
    }'
    ```

    名前を更新:

    ```
    curl -X PATCH \
      'https://<enterprise portal url>/_route/api_server/scim/v2/Users/<user api key>' \
        -H 'Authorization: Bearer <サービス キー>' \
        -H 'Content-Type: application/scim+json' \
        -d '{
          "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
          "Operations": [
            {
              "op": "Replace",
              "path": "displayName",
              "value": "<new name>"
            }
          ]
       }'
    ```

    ## APIシークレットキーの作成

    [https://windsurf.com/team/settings](https://windsurf.com/team/settings) にアクセスします。サービス キー設定で「設定」をクリックし、「サービス キーを追加」をクリックします。任意のキー名(「Azure Provisioning Key」など)を入力し、「サービス キーを作成」をクリックします。出力されたキーをコピーして保存します。これで、上記のAPIの認証にキーを使用できます。
  </Tab>

  <Tab title="Duo">
    ## 前提条件

    このガイドは、Duo を組織の IdP として構成済みであるか、外部 IdP を構成済みであることを前提としています。

    Duo と Windsurf の両方のアカウントで管理者権限が必要です。

    ## Windsurf 用に Duo を設定する

    1. Applications に移動し、Generic SAML service provider を追加します

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-1.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=7e598d7e9a9ee2c3884caa1c60ba68ff" width="2230" height="920" data-path="assets/auth/duo-sso-1.png" />
    </Frame>

    2. Team Settings の SSO に移動します

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=df8dde8b5b66a27532a3f42cdd803a17" width="1676" height="1444" data-path="assets/auth/windsurf-sso-team-settings.png" />
    </Frame>

    3. 初めて SAML を有効化する場合、SSO ID を設定する必要があります。**後から変更することはできません。**

       英数字のみで、組織またはチーム名に合わせて設定することを推奨します。

    4. Duo ポータルの `Entity ID` の値をコピーし、Windsurf ポータルの `IdP Entity ID` フィールドに貼り付けます。

    5. Duo ポータルの `Single Sign-On URL` の値をコピーし、Windsurf ポータルの `SSO URL` フィールドに貼り付けます。

    6. Duo ポータルの証明書の値をコピーし、Windsurf ポータルの `X509 Certificate` フィールドに貼り付けます

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-3.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=a7594c846a32e958a1bacfc01c5d3ef3" width="1536" height="290" data-path="assets/auth/duo-sso-3.png" />
    </Frame>

    7. Windsurf ポータルの `SP Identity ID` の値をコピーし、Duo ポータルの `Entity ID` フィールドに貼り付けます。

    8. Windsurf ポータルの `Callback URL (Assertion Consumer Service URL)` をコピーし、Duo ポータルの `Assertion Consumer Service (ACS) URL` フィールドに貼り付けます。

    9. Duo ポータルで、次のとおり属性ステートメントを構成します:

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-4.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=bb3b514b94a6b0ebba19aa492c8be4a2" width="1676" height="290" data-path="assets/auth/duo-sso-4.png" />
    </Frame>

    10. テストできるように、Windsurf ポータルで SAML ログインを有効化します。

    **注意: この時点でログアウトしたりウィンドウを閉じたりしないでください。**

    エラーやタイムアウトが発生した場合は設定をトラブルシュートしてください。そうしないと、Windsurf ポータルで SAML 設定を無効化する必要があります。

    **成功を確認せずにログアウトしたりウィンドウを閉じたりすると、ロックアウトされる可能性があります。**

    11. テストが正常に完了したら、ログアウトして構いません。これで、手順 3 で設定した SSO ID を使ってチーム/組織のページにアクセスすると、SSO でサインインできます。

    [https://www.codeium.com/yourssoid/login](https://www.codeium.com/yourssoid/login)
  </Tab>

  <Tab title="PingID">
    ## 前提条件

    このガイドは、組織の IdP として PingID を構成済みであるか、外部 IdP を構成済みであることを前提としています。

    PingID と Windsurf の両方のアカウントで管理者権限が必要です。

    ## Windsurf 用に PingID を構成する

    1. Applications に移動し、Windsurf を SAML アプリケーションとして追加します

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-1.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=f86f6145e0eac599178ca9d9ee66b776" width="2258" height="1068" data-path="assets/auth/pingid-1.png" />
    </Frame>

    2. Team Settings の SSO に移動します

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=df8dde8b5b66a27532a3f42cdd803a17" width="1676" height="1444" data-path="assets/auth/windsurf-sso-team-settings.png" />
    </Frame>

    3. 初めて SAML を有効化する際は、SSO ID の設定が必要です。**後から変更できません。**

    英数字のみで、組織名またはチーム名を設定することを推奨します。

    4. PingID で手動入力を選択し、以下の値で各フィールドを入力します:

    * ACS URLs - Windsurf ポータルの `Callback URL (Assertion Consumer Service URL)` です。
    * Entity ID - Windsurf ポータルの `SP Entity ID` です。

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-3.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=e33dc0b9d021309da0fcdb2ac4f08bbb" width="974" height="672" data-path="assets/auth/pingid-3.png" />
    </Frame>

    5. PingID の `Issuer ID` を Windsurf ポータルの `IdP Entity ID` にコピーします。

    6. PingID の `Single Signon Service` の値を Windsurf ポータルの `SSO URL` にコピーします。

    7. PingID から署名証明書を X509 PEM (.crt) でダウンロードし、ファイルを開いて内容を Windsurf ポータルの `X509 Certificate` に貼り付けます。

    **注意**: 先頭と末尾の行がダッシュ（-）5 個の行で完全に含まれていること、他の文字が混入していないことを確認してください。

    8. 属性マッピングでは、以下がマッピングされていることを確認します:

    * `saml_subject` - Email Address
    * `firstName` - Given Name
    * `lastName` - Family Name

    <Frame>
      <img src="https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-4.png?fit=max&auto=format&n=DnGnXhZxl1qb2EWt&q=85&s=4ff17f07bfb897072fb68e212ee2ac12" width="1398" height="780" data-path="assets/auth/pingid-4.png" />
    </Frame>

    9. セットアップ／組織の要件に応じて、他のポリシーやアクセスを追加・編集します

    10. テストできるよう、Windsurf ポータルで SAML ログインを有効化します。

    **注意: この時点でログアウトしたりウィンドウを閉じたりしないでください。**

    エラーが発生する、またはタイムアウトする場合は設定をトラブルシュートしてください。そうでない場合、Windsurf ポータルで SAML 設定を無効化する必要があります。

    **成功したテストを確認せずにログアウトする、またはウィンドウを閉じると、ロックアウトされる可能性があります。**

    11. テストが正常に完了したら、ログアウトして構いません。以後は、手順 3 で設定した SSO ID を使用してチーム／組織ページにアクセスする際に、SSO でサインインできます。

    [https://www.codeium.com/yourssoid/login](https://www.codeium.com/yourssoid/login)
  </Tab>
</Tabs>
