- 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 Workspace、または SAML に対応した他のアイデンティティ プロバイダを利用している場合、Windsurf で SSO を使用できます。
Add app をクリックし、続けて Add custom SAML app をクリックします。
App name に 
Codeium の設定ページで Enable Login with SAML をクリックし、その後 Save をクリックします。Test Login をクリックして、ログインが期待どおりに機能することを確認してください。これで、すべてのユーザーに SSO ログインが適用されます。
Windsurf が対応しているのは SP 起動(SP-initiated)の SSO のみです。IDP 起動(IdP-initiated)の SSO には現在対応していません。
IDP アプリケーションの設定
Google 管理コンソール(admin.google.com)で、左側の Apps -> Web and mobile apps をクリックします。

Windsurf と入力し、Next をクリックします。次の画面(Google のコンソールページの 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 にし、ギャラリーにない他のアプリケーションを統合する を選択して、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 設定 に移動します。
-
Microsoft Entra ID の SAML 構成フォームで次を設定します:
- Identifier (Entity ID): Windsurf SSO 設定ページの SP Entity ID の値をコピー
- Reply URL (Assertion Consumer Service URL): Windsurf SSO 設定ページの Callback URL の値をコピー
- 画面上部の Save をクリック
- 表示名が正しくなるようユーザー属性を構成します。Microsoft Entra ID の Attributes & Claims で Edit をクリックします。
-
Add new claim をクリックして新しいクレームを 2 件作成します:
- 1 件目のクレーム: Name =
firstName, Source attribute =user.givenname - 2 件目のクレーム: Name =
lastName, Source attribute =user.surname
- 1 件目のクレーム: Name =
パート 3: Windsurf ポータルで SSO 設定を構成する
Windsurf ポータル(https://windsurf.com/team/settings)で設定を完了します。
-
Windsurf SSO 設定ページで次を行います:
- 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 Workspaces、または SAML をサポートする他の IdP(アイデンティティプロバイダ)を使用している場合、Windsurf で SSO を利用できます。
サインイン方法として SAML 2.0 を選択します。
アプリ名を Windsurf(または任意の名称)に設定し、Next をクリックします。SAML 設定を次のとおり構成します。
Feedback セクションで “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(System for Cross-domain Identity Management:クロスドメインのアイデンティティ管理のための標準規格)同期をサポートしています。SCIM同期を使用するためにSSO(Single Sign-On)の設定は必須ではありませんが、設定することを強く推奨します。必要なもの:

プロビジョニング設定ページで、以下のオプションを選択してください。プロビジョニングモード: 自動管理者認証情報 > テナントURL: https://server.codeium.com/scim/v2
Azure プロビジョニング ページを開いたまま、Windsurf Web ポータルに移動し、ページ上部のナビゲーション バーにあるプロフィール アイコンをクリックします。チーム設定で、サービス キーを選択し、サービス キーを追加をクリックします。任意のキー名(「Azure SCIM プロビジョニング」など)を入力し、先ほど作成した「SCIM プロビジョニング」ロールを選択し、サービス キーを作成をクリックします。出力されたキーをコピーし、Azure ページに戻って、シークレット トークンに貼り付けます。
(Windsurfでキーを作成した後に表示される画面)プロビジョニングページで、「接続をテスト」をクリックし、SCIM(System for Cross-domain Identity Management:クロスドメインのアイデンティティ管理のための標準規格)接続が確認されることを確認してください。プロビジョニングフォームの上にある「保存」をクリックします。
属性マッピングで、displayName配下のすべてのフィールドを削除し、userName、active、displayNameのフィールドのみを残してください。
アクティブにするには、「編集」をクリックします。「式」の下で、フィールドを次のように変更します次に「OK」をクリックします。ユーザー属性は以下のようになります
属性マッピングページで、上部の「保存」をクリックし、プロビジョニングページに戻ります。次に同じページで、Mappings の下にある Provision Microsoft Entra ID Groups をクリックします。externalId のみ削除をクリックし、上部の Save をクリックします。Provisioning ページに戻ります。
プロビジョニングページの下部に、プロビジョニングステータスのトグルもあります。これをオンに設定してSCIM同期を有効にしてください。これにより、40分ごとにEntra IDアプリケーションのユーザーとグループがWindsurfに同期されるようになります。
保存をクリックして完了すると、SCIM(System for Cross-domain Identity Management:クロスドメインのアイデンティティ管理のための標準規格)のユーザーとグループの同期が有効になります。アプリケーションに割り当てられたユーザーとグループのみがWindsurfに同期されます。なお、ユーザーの削除は、AzureのSCIM設計により、ユーザーを完全に削除するのではなく、Windsurfへのアクセスを無効にする(シートの使用を停止する)だけとなりますのでご注意ください。
- Microsoft Entra ID / Azure AD の管理者権限アクセス
- Windsurf の管理者アクセス
- Entra ID 上の既存の Windsurf アプリケーション(通常は既存の SSO(Single Sign-On)アプリケーション由来)
必要なサービス キーの権限SCIM(System for Cross-domain Identity Management:クロスドメインのアイデンティティ管理のための標準規格)プロビジョニングに使用されるサービス キーには、次の権限が必要です:
- Team User Read - ユーザーおよびグループ情報を読み取るために必要
- Team User Update - ユーザーおよびグループを作成・更新するために必要
- Team User Delete - ユーザーおよびグループを無効化・削除するために必要
ステップ1:SCIM権限を持つロールを作成する
SCIMプロビジョニングを設定する前に、必要な権限を持つロールを作成する必要があります。- Windsurf Team Settings に移動
- 「Other Settings」で、Role Management の横にある Configure をクリックします
- 「Add Role」をクリックし、名前を「SCIM(System for Cross-domain Identity Management:クロスドメインのアイデンティティ管理のための標準規格)プロビジョニング」とします
- 次の権限を追加してください:
- チームユーザーの閲覧
- チームユーザーの更新
- チームユーザーの削除
- 「Save」をクリックします
ステップ2: 既存のWindsurfアプリケーションに移動
Azure上のMicrosoft Entra IDに移動し、左サイドバーの「Enterprise applications」をクリックして、リスト内の既存のWindsurfアプリケーションをクリックします。
ステップ3:SCIMプロビジョニングの設定
中央の「ユーザーアカウントのプロビジョニング」の下にある「開始する」をクリックし(ステップ3)、再度「開始する」をクリックします。


ステップ4:SCIMプロビジョニングの設定
「保存」をクリックした後、プロビジョニングページに新しいオプション「マッピング」が表示されているはずです。「マッピング」を展開し、「Microsoft Entra ID ユーザーをプロビジョニング」をクリックします

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



Windsurfは、Oktaを用いたユーザーおよびグループのSCIM同期をサポートしています。SCIM同期を使用するためにSSO(Single Sign-On)を設定する必要はありませんが、強く推奨します。必要なもの:
- Oktaの管理者アクセス
- Windsurfの管理者アクセス
- Okta上の既存のWindsurfアプリケーション(通常は既存のSSOアプリケーションから作成されたもの)
ステップ 1: 既存のWindsurfアプリケーションへ移動
Oktaで左サイドバーのApplications、Applicationsをクリックし、アプリケーション一覧から既存のWindsurfアプリケーションをクリックします。ステップ 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 にアクセスし、Service Key Configurationへ移動
- Configureをクリックし、Add Service Keyを選択してAPIキーに名前を付ける
- APIキーをコピーし、Oktaに戻ってHTTP Header - Authorizationに貼り付ける
ステップ 3: プロビジョニングの設定
Provisioningタブ内の左側に新しいタブが2つ表示されているはずです。To Appをクリックし、Edit Provisioning to Appを選択します。Create Users、Update User Attributes、Deactivate Usersのチェックボックスをオンにして、Saveをクリックします。このステップ以降、グループに割り当てられたすべてのユーザーがWindsurfに同期されます。ステップ 4: グループプロビジョニングの設定(任意)
グループをWindsurfに同期するには、プッシュするグループを指定する必要があります。アプリケーション内で上部のPush Groupsタブをクリックします。次に + Push Groups -> Find Groups by name をクリックします。追加したいグループでフィルタし、「Push group memberships immediately」にチェックが入っていることを確認して、Saveをクリックします。グループが作成され、メンバーがWindsurfに同期されます。グループは、その後Analyticsページでグループ単位の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 secret key>" "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/<ユーザー API キー>' \
-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 でサインインできます。
前提条件
このガイドは、PingID が構成されており組織の IdP として機能している、または外部 IdP が構成されていることを前提としています。PingID と Windsurf の両方のアカウントで管理者権限が必要です。Windsurf 用に PingID を構成する
- Applications に移動し、Windsurf を SAML Application として追加します

- 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 から Signing Certificate を X509 PEM (.crt) 形式でダウンロードし、ファイルを開いて内容を Windsurf ポータルの
X509 Certificateに貼り付けます。
- 属性マッピングでは、以下を確実にマッピングしてください:
saml_subject- Email AddressfirstName- Given NamelastName- Family Name

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