チーム同期
会社で ID プロバイダー (IdP) として Microsoft Entra ID または Okta を使用している場合は、チーム同期を通じて GitHub チーム メンバーシップを管理できます。 有効にすると、チーム同期によって GitHub 上の IdP グループの変更が自動的に反映されるため、手動での更新やカスタム スクリプトの必要性が軽減されます。 この一元化されたアプローチにより、オンボーディング、アクセス許可の管理、アクセスの失効が簡素化されます。
| 特徴 | 説明 |
|---|---|
| ユーザーの同期 | GitHub Teams を IdP (Active Directory など) グループ メンバーシップに合わせて維持する |
| 新しいチームでの同期 | 作成時にチームを自動的に事前設定する |
| カスタム チーム マッピング |
syncmap.yml を使用して、チームのスラグとグループ名の間のカスタム マッピングを定義する |
| 動的構成 |
settings ファイルを使用して、ディレクトリ構造から同期設定を派生させる |
チーム同期のユース ケース
チーム同期は、GitHub 組織内でメンバーシップ管理を効率化しようとしている企業に最適です。 管理者は、GitHub チームを IdP グループにマップし、メンバーシップを自動的に管理できます。 これは次の場合に役立ちます。
- 新しい従業員のオンボーディング
- ユーザーがチーム間を移動するときのアクセスの調整
- 組織を離れるユーザーの削除
⚠️ チーム同期を使用するには、IdP 管理者が SAML SSO と SCIM を有効にする必要があります。
Enterprise Managed Users と GitHub Enterprise Server
チーム同期は、GitHub Enterprise Cloud または GitHub Enterprise Server (GHE.com) を使用する組織およびエンタープライズ アカウントでも使用できます。これは、コンプライアンス上の理由から利用可能または必須のリージョンで推奨されるソリューションです。
Enterprise Managed Users (ESU) は、企業がユーザー ID とアカウントのライフサイクルを完全に制御できる GitHub Enterprise Cloud 機能です。 ESU を使用すると、GitHub アカウントは企業の ID プロバイダー (IdP) によって完全に管理されます。 つまり、ユーザーは GitHub に手動でサインアップしません。すべてのユーザー プロビジョニング、アクセス、オフボードは、Microsoft Entra ID や Okta などのツールを使用して自動化されます。
ETU は、厳密なコンプライアンス、監査、またはユーザー ガバナンスのニーズを持つ組織に最適です。 次のことを確認するのに役立ちます。
- すべてのアカウントは企業が所有しています
- IdP メンバーシップに基づいてアクセスが自動的に付与または削除される
- 外部コラボレーションが意図せず発生しない
ESU を使用する場合:
- マネージド ユーザーは、企業外のリポジトリにコードをプッシュしたり、リポジトリをフォークしたりすることはできません
- 企業内の他のユーザーやリソースとのみ対話できます
IdP のグループを使用して EMU ベースの組織およびチーム メンバーシップを管理し、必要に応じて チーム同期 を統合してグループ間マッピングを自動化できます。
自己ホストまたは特定の地域規制に関する要件を持つ組織向けに、 GitHub Enterprise Server (GHE.com) は、GitHub 環境を完全に制御できるオンプレミス ソリューションを提供します。
詳細については、「 GitHub Enterprise Cloud の概要 」および「 GitHub Enterprise Server について」を参照してください。
GHES のチーム同期と SCIM
GitHub Enterprise Server (GHES) では、ユーザー アクセスとチーム メンバーシップの管理は、チーム同期やクロスドメイン ID 管理システム (SCIM) など、さまざまな方法で実現できます。 効果的に管理するには、これらの方法を理解することが不可欠です。
GHES でのチーム同期
チーム同期を使用すると、GitHub チームを ID プロバイダー (IdP) 内のグループとリンクできます。 この統合により、IdP グループ内の変更 (メンバーの追加や削除など) が、対応する GitHub チームに自動的に反映されます。 このアプローチでは、IdP 内でユーザー アクセス制御を一元化することで、チーム管理を効率化します。
ただし、チーム同期はユーザー プロビジョニング サービスではなく、ほとんどの場合、非メンバーを組織に参加するように招待しない点に注意することが重要です。 そのため、ユーザーがチームに正常に追加されるのは、既に組織のメンバーである場合のみです。
チーム同期のしくみを実際に理解するために、次のシナリオを検討してください。
- Azure AD グループ "DevOps Engineers" が GitHub チーム "DevOps" にマップされている場合
- Alice が IdP グループに追加されると → 自動的に GitHub チームに追加されます
- Alice が グループから離れると → 自動的にチームから削除されます
注
GHES のチーム同期では、アカウントはプロビジョニングされません。 ユーザーは既に GitHub 組織のメンバーである必要があります。
Team の同期を有効にする
- IdP で Security Assertion Markup Language (SAML) のシングル サインオン (SSO) と SCIM を有効にします。
- GitHub UI または API を使用して、GitHub チームを IdP グループにマップします。
- グループ メンバーシップの変更は、GitHub に自動的に同期されます。
サポートされている IdP:
- Microsoft Entra ID: プロファイルの読み取りとディレクトリ アクセスのアクセス許可が必要です。
- Okta: 読み取り専用管理者アクセス権を持つ SAML SSO、SCIM、テナント URL、Single Sign-on for Web Systems (SSWS) トークンが必要です。
Team の同期を無効にする
無効にするには:
- [設定]>[組織のセキュリティ] に移動します
- [チーム同期を無効にする] をクリックします
注
同期を無効にすると、IdP マッピングを介して追加されたユーザーはチームから削除されます。
GHES の SCIM
SCIM は、ID ドメインと IT システム間のユーザー ID 情報の交換を自動化するように設計されたオープンな標準プロトコルです。 GHES のコンテキストでは、SCIM を使用すると、管理者は GitHub API を使用してユーザー アカウントを直接プロビジョニング、更新、およびプロビジョニング解除できます。 つまり、ユーザー アカウントを作成、更新、削除したり、グループ情報を同期して GitHub チーム メンバーシップをマップしたりすることができます。
SCIM は、大規模でユーザー ライフサイクルを管理し、システム間でユーザー データの一貫性を維持するために役立ちます。
SCIM のしくみを実際に理解するために、次のシナリオを検討してください。
- Okta SCIM 統合によって GitHub ユーザーが自動的にプロビジョニングされる
- Bob が Okta に追加される → GitHub アカウントがプロビジョニングされる
- Bob がロールを変更する → アクセスとチームが更新される
- Bob が抜ける → アカウントがプロビジョニング解除される
主な利点: アカウント ライフサイクル管理の完全な自動化。
チーム同期とグループ SCIM
GitHub では、次の 2 つの主要な ID 統合アプローチがサポートされています。
- チーム同期: グループ メンバーシップを GitHub チームに同期することに重点を置いている
- グループ SCIM: ユーザーとグループの完全なライフサイクル管理に重点を置いている
チーム同期とグループ SCIM の違い
| 特徴 | チーム同期 | グループ SCIM |
|---|---|---|
| フォーカス | チームレベルのマッピング | ユーザーとグループのプロビジョニング |
| 設定 | グループとチーム間を手動でマッピング | IdP SCIM 構成を使用して自動化 |
| オートメーション レベル | グループ メンバーシップのみを同期する | ライフサイクル全体を自動化 |
| 理想的なユース ケース | GitHub Teams の管理 | ユーザーの離職率が高い大規模な組織 |
| Deprovisioning | 手動または IdP グループに依存 | 完全に自動化 |
| ID モデル | クラシック | マネージド ユーザー |
適切なアプローチの選択
チーム同期とグループ SCIM のどちらを選択するかは、組織のニーズ、サイズ、および既存の ID 管理インフラストラクチャによって決まります。
| 使用事例 | 推奨されるソリューション |
|---|---|
| チームによるリポジトリ アクセスの管理 | チーム同期 |
| ユーザーのライフサイクルの自動化 | グループ SCIM |
| 完全な IdP ベースのガバナンスが必要 | グループ SCIM |
| GitHub Teams はワークフローの中核 | チーム同期 |
使用制限
チーム同期を使用する場合は、次の制限に従います。
- チームあたりの最大メンバー数: 5,000
- 組織あたりの最大メンバー数: 10,000
- 組織あたりの最大チーム数: 1,500
これらを超えると、パフォーマンスの問題や同期エラーが発生する可能性があります。