- Google SSO(Single Sign-On)
- Azure AD SSO(Single Sign-On)
- Okta SSO(Single Sign-On)
- Azure SCIM(System for Cross-domain Identity Management:クロスドメインのアイデンティティ管理のための標準規格)
- Okta SCIM(System for Cross-domain Identity Management:クロスドメインのアイデンティティ管理のための標準規格)
- SCIM(System for Cross-domain Identity Management:クロスドメインのアイデンティティ管理のための標準規格)API
- Duo
- PingID
Windsurf は SAML を利用した SSO(Single Sign-On)によるサインインに対応しました。組織で Microsoft Entra、Okta、Google Workspaces などの SAML 対応 IdP(アイデンティティプロバイダ)を使用している場合、Windsurf で SSO を利用できます。
Add app をクリックし、続いて Add custom SAML app をクリックします。
App name に 
Codeium の設定ページで Enable Login with SAML をクリックし、続いて Save をクリックします。Test Login をクリックして、ログインが期待どおりに動作することを確認してください。これで、すべてのユーザーに対して SSO ログインが強制されます。
Windsurf がサポートするのは SP 起点の SSO のみです。IdP 起点の SSO には現在対応していません。
IdP アプリケーションの設定
Google 管理コンソール(admin.google.com)で、左側の Apps -> Web and mobile apps をクリックします。

Windsurf と入力し、Next をクリックします。次の画面(Google Identity Provider details)には、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 をクリック
- Codeium の設定ページの Callback URL を Google のコンソールページの ACS URL にコピー
- Codeium の設定ページの SP Entity ID を Google のコンソールページの SP Entity ID にコピー
- Name ID の形式を EMAIL に変更
- Google のコンソールページで Continue をクリック
- Add Mapping をクリックし、First name を選択して App attributes を firstName に設定
- Add Mapping をクリックし、Last name を選択して App attributes を lastName に設定
- Finish をクリック

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


Windsurf は SP 起点の SSO のみ対応です。IdP 起点の SSO には現在対応していません。
パート 1: Microsoft Entra ID で Enterprise アプリケーションを作成する
このセクションの操作はすべて Microsoft Entra ID 管理センターで行います。
- Microsoft Entra ID で Add をクリックし、Enterprise Application を選択します。

- Create your own application をクリックします。

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

パート 2: Microsoft Entra ID で SAML とユーザー属性を構成する
このセクションの操作はすべて Microsoft Entra ID 管理センターで行います。
- 作成した Windsurf アプリケーションで Set up single sign on をクリックし、SAML をクリックします。
- Basic SAML Configuration の Edit をクリックします。
- この Entra ID のタブは開いたまま、新しいタブで https://windsurf.com/team/settings の Windsurf Teams SSO settings を開きます。
-
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 をクリック
- 正しい氏名表示のためユーザー属性を構成します。Microsoft Entra ID の Attributes & Claims で Edit をクリックします。
-
Add new claim をクリックし、次の新規クレームを 2 件作成します:
- First claim: Name =
firstName, Source attribute =user.givenname - Second claim: Name =
lastName, Source attribute =user.surname
- First claim: Name =
パート 3: Windsurf ポータルで SSO 設定を構成する
Windsurf ポータル(https://windsurf.com/team/settings)で設定を完了します。
-
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) をダウンロードし、ファイルを開いてテキスト内容をここに貼り付け
- Windsurf ポータルで Enable Login with SAML をクリックし、Save をクリックします。
- 設定をテスト: Test Login をクリックして、SSO 設定が期待どおりに動作することを確認します。
重要: テストに成功するまで、Windsurf の設定ページからログアウトしたり、ページを閉じたりしないでください。テストに失敗した場合は、先に進む前に設定のトラブルシューティングが必要になる可能性があります。
Windsurf Enterprise は、SAML を介した SSO(Single Sign-On)でのサインインに対応しました。組織で Microsoft Entra、Okta、Google Workspace、または SAML をサポートするその他の IdP を使用している場合、Windsurf で SSO を利用できます。
サインイン方法として SAML 2.0 を選択します。
アプリ名を Windsurf(または任意の名称)に設定し、Next をクリックします。SAML 設定を次のように構成します。
フィードバックのセクションで「This is an internal app that we have created」を選択し、Finish をクリックします。
これで設定は完了です。新しい Windsurf Okta アプリケーションにユーザーを追加できます。組織のカスタム Login Portal URL をユーザーと共有し、そのリンクからサインインするよう案内してください。
SSO 経由で Windsurf にログインしたユーザーは、自動的にチームに承認されます。
これは SSO ID が無効である、または SSO URL が誤っていることを示しています。英数字で、余分なスペースや無効な文字がないことを確認してください。ガイドの手順をもう一度見直し、正しい値を使用していることを確認してください。
これは IdP Entity ID が無効であることを示しています。Okta ポータルから、前後のスペースや余分な文字がない状態で正確にコピーしているか確認してください。
Windsurf は SP 起点の SSO のみをサポートしています。IdP 起点の SSO には現在対応していません。
IdP アプリケーションを設定する
左サイドバーの Applications をクリックし、Create App Integration を選択します。

- Single sign-on URL を https://auth.windsurf.com/__/auth/handler に設定
- Audience URI(SP Entity ID)を www.codeium.com に設定
- NameID format を EmailAddress に設定
- Application username を Email に設定

Okta を SAML プロバイダとして登録する
カスタム SAML アプリケーションの Sign on タブにリダイレクトされます。このページの情報を Windsurf の SSO 設定に入力します。- 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 ボタンでログインをテストします。成功メッセージが表示されます:


注意事項
Windsurf は現在、IdP 起点のログインフローをサポートしていません。また、OIDC にもまだ対応していません。トラブルシューティング
Login with SAML config failed: Firebase: Error (auth/operation-not-allowed)

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

Failed to verify the signature in samlresponse
これは X509 certificate の値が正しくないことを示しています。正しいキーをコピーし、次の形式になっていることを確認してください:コピー
AIに質問
-----BEGIN CERTIFICATE-----
値
------END CERTIFICATE------
Windsurf は Microsoft Entra ID / Azure AD と連携したユーザーおよびグループの SCIM 同期をサポートしています。SCIM 同期の利用にあたり SSO(Single Sign-On)の設定は必須ではありませんが、強く推奨します。必要なもの:

Provisioning の設定ページで、次のオプションを選択します。Provisioning Mode: AutomaticAdmin Credentials > Tenant URL: https://server.codeium.com/scim/v2Azure のプロビジョニングページは開いたままにし、Windsurf の Web ポータルに移動して、ページ上部の NavBar にあるプロフィールアイコンをクリックします。Team Settings で Service Key を選択し、Add Service Key をクリックします。任意のキー名(例: 「Azure Provisioning Key」)を入力し、Create Service Key をクリックします。出力されたキーをコピーし、Azure のページに戻って Secret Token に貼り付けます。
(Windsurf でキーを作成した後の表示)Provisioning ページで Test Connection をクリックし、SCIM 接続が検証されるはずです。続いて、Provisioning フォーム上部の Save をクリックします。
attribute Mappings で、displayName 配下のすべてのフィールドを削除し、userName、active、displayName のみを残します。
active については、Edit をクリックします。Expression で、フィールドを次のように変更します次に OK をクリックします。ユーザー属性は次のようになります。
Attribute Mapping ページで、上部の Save をクリックし、Provisioning ページに戻ります。同じページで、Mappings の下にある Provision Microsoft Entra ID Groups をクリックします。ここでは externalId だけを削除し、上部の Save をクリックします。Provisioning ページに戻ります。
Provisioning ページの一番下に、Provisioning Status のトグルもあります。これを On に設定して SCIM(System for Cross-domain Identity Management:クロスドメインのアイデンティティ管理のための標準規格)同期を有効にします。これで 40 分ごとに、Entra ID アプリケーションのユーザーとグループが Windsurf に同期されます。
Save をクリックして完了です。これで SCIM のユーザーおよびグループ同期が有効になりました。アプリケーションに割り当てられたユーザーとグループのみが Windsurf に同期されます。なお、Azure の SCIM の設計上、ユーザーの削除はユーザーを完全に削除するのではなく、Windsurf へのアクセスを無効化する(席の占有を止める)だけである点に注意してください。
- Microsoft Entra ID / Azure AD への管理者アクセス
- Windsurf への管理者アクセス
- Entra ID 上の既存の Windsurf アプリケーション(通常は既存の SSO アプリケーションから作成済み)
ステップ 1: 既存の Windsurf アプリケーションに移動
Azure の Microsoft Entra ID に移動し、左サイドバーの Enterprise applications をクリックして、一覧から既存の Windsurf アプリケーションをクリックします。
ステップ 2: SCIM プロビジョニングを設定
中央(ステップ 3)の Provision User Accounts の下にある Get started をクリックし、続けてもう一度 Get started をクリックします。

ステップ 3: SCIM プロビジョニングを構成
Save をクリックすると、Provisioning ページに新しいオプション Mappings が表示されます。Mappings を展開し、Provision Microsoft Entra ID Users をクリックします。

コピー
AIに質問
NOT([IsSoftDeleted])



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/v2Unique identifier field for users: emailSupported provisioning actions: Push New Users, Push Profile Updates, Push GroupsAuthentication Mode: HTTP HeaderHTTP Header - Authorization 用のトークンは次の手順で生成します- https://windsurf.com/team/settings にアクセスし、Other Settings の中の Service Key Configuration を開く
- Add Service Key をクリックして、キー名を設定する
- 表示された API キーをコピーし、Okta に戻って HTTP Header - Authorization に貼り付ける
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 ページでグループ別の分析に利用できます。このガイドでは、SCIM(System for Cross-domain Identity Management:クロスドメインのアイデンティティ管理のための標準規格)APIを使用してWindsurfでグループを作成および維持する方法を説明します。Identity Provider(Azure/Okta)を使用せずに手動でグループをプロビジョニングしたい理由がいくつかあります。企業では、Windsurfがアクセスできない別の内部ソース(HRウェブサイト、ソースコード管理ツールなど)からグループをプロビジョニングしたい場合や、Identity Providerが提供するものよりもグループに対してより詳細な制御を行いたい場合があります。そのため、グループはHTTPリクエストを介してAPIで作成することも可能です。以下では、CURLを使用したHTTPリクエストの例を示します。ここには5つの主要なAPIがあります。グループ作成、グループメンバー追加、グループメンバー置換、グループ削除、グループ内ユーザー一覧です。まず最初にグループを作成し、その後でメンバーを含むグループに置き換える必要があります。また、グループ名にスペースなどの特殊文字が含まれている場合は、グループ名をURLエンコードする必要があります。例えば、「Engineering Group」というグループ名の場合、URLでは「Engineering%20Group」として記述する必要があります。ユーザーをグループに追加する前に、Windsurfでユーザーを作成する必要があります(SCIM(System for Cross-domain Identity Management:クロスドメインのアイデンティティ管理のための標準規格)経由、または手動でのアカウント作成)。ユーザーを作成する:名前を更新:
グループの作成
コピー
AIに質問
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"
グループメンバーを追加
コピー
AIに質問
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"
グループメンバーの置き換え
コピー
AIに質問
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"
グループの削除
コピー
AIに質問
curl -X DELETE https://server.codeium.com/scim/v2/Groups/<グループ名> -H "Authorization: Bearer <APIシークレットキー>" -H "Content-Type: application/scim+json"
リストグループ
コピー
AIに質問
curl -X GET -H "Authorization: Bearer <APIシークレットキー>" "https://server.codeium.com/scim/v2/Groups"
グループ内のユーザーを一覧表示
コピー
AIに質問
curl -X GET -H "Authorization: Bearer <api secret key>" "https://server.codeium.com/scim/v2/Groups/<group_id>"
ユーザーAPI
ユーザー向けのAPIも提供されています。以下は、WindsurfがサポートするSCIM(System for Cross-domain Identity Management:クロスドメインのアイデンティティ管理のための標準規格)APIの主要なものです。ユーザーを無効化する(有効化するにはfalseをtrueに変更):コピー
AIに質問
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
}
]
}'
コピー
AIに質問
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": "<メールアドレス>",
"displayName": "<氏名>",
"active": true,
}'
コピー
AIに質問
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": "<新しい名前>"
}
]
}'
APIシークレットキーの作成
https://windsurf.com/team/settings にアクセスします。サービス キー設定で「設定」をクリックし、「サービス キーを追加」をクリックします。任意のキー名(「Azure Provisioning Key」など)を入力し、「サービス キーを作成」をクリックします。出力されたキーをコピーして保存します。これで、上記のAPIの認証にキーを使用できます。前提条件
このガイドは、Duo を組織の IdP として構成済みであるか、外部 IdP を構成済みであることを前提としています。Duo と Windsurf の両方のアカウントで管理者権限が必要です。Windsurf 用に Duo を設定する
- Applications に移動し、Generic SAML service provider を追加します

- Team Settings の SSO に移動します

- 初めて SAML を有効化する場合、SSO ID を設定する必要があります。後から変更することはできません。 英数字のみで、組織またはチーム名に合わせて設定することを推奨します。
-
Duo ポータルの
Entity IDの値をコピーし、Windsurf ポータルのIdP Entity IDフィールドに貼り付けます。 -
Duo ポータルの
Single Sign-On URLの値をコピーし、Windsurf ポータルのSSO URLフィールドに貼り付けます。 -
Duo ポータルの証明書の値をコピーし、Windsurf ポータルの
X509 Certificateフィールドに貼り付けます

-
Windsurf ポータルの
SP Identity IDの値をコピーし、Duo ポータルのEntity IDフィールドに貼り付けます。 -
Windsurf ポータルの
Callback URL (Assertion Consumer Service URL)をコピーし、Duo ポータルのAssertion Consumer Service (ACS) URLフィールドに貼り付けます。 - Duo ポータルで、次のとおり属性ステートメントを構成します:

- テストできるように、Windsurf ポータルで SAML ログインを有効化します。
- テストが正常に完了したら、ログアウトして構いません。これで、手順 3 で設定した SSO ID を使ってチーム/組織のページにアクセスすると、SSO でサインインできます。
前提条件
このガイドは、組織の IdP として PingID を構成済みであるか、外部 IdP を構成済みであることを前提としています。PingID と Windsurf の両方のアカウントで管理者権限が必要です。Windsurf 用に PingID を構成する
- Applications に移動し、Windsurf を SAML アプリケーションとして追加します

- Team Settings の SSO に移動します

- 初めて SAML を有効化する際は、SSO ID の設定が必要です。後から変更できません。
- PingID で手動入力を選択し、以下の値で各フィールドを入力します:
- ACS URLs - Windsurf ポータルの
Callback URL (Assertion Consumer Service URL)です。 - Entity ID - Windsurf ポータルの
SP Entity IDです。

-
PingID の
Issuer IDを Windsurf ポータルのIdP Entity IDにコピーします。 -
PingID の
Single Signon Serviceの値を Windsurf ポータルのSSO URLにコピーします。 -
PingID から署名証明書を X509 PEM (.crt) でダウンロードし、ファイルを開いて内容を Windsurf ポータルの
X509 Certificateに貼り付けます。
- 属性マッピングでは、以下がマッピングされていることを確認します:
saml_subject- Email AddressfirstName- Given NamelastName- Family Name

- セットアップ/組織の要件に応じて、他のポリシーやアクセスを追加・編集します
- テストできるよう、Windsurf ポータルで SAML ログインを有効化します。
- テストが正常に完了したら、ログアウトして構いません。以後は、手順 3 で設定した SSO ID を使用してチーム/組織ページにアクセスする際に、SSO でサインインできます。