メモ
SCIM のサポートは、このバージョンの GitHub Enterprise Server では パブリック プレビュー 段階にあります。 SCIM のサポートは、バージョン 3.17 以降で一般提供されています。
GitHub Enterprise Server のユーザー プロビジョニングについて
SAML シングル サインオン (SSO) を お使いの GitHub Enterprise Server インスタンス に使用する場合、IdP でアプリケーションを割り当てるか割り当て解除するときに、ユーザー アカウントを自動的に作成または一時停止し、インスタンスへのアクセスを許可するように SCIM を構成できます。 SCIM の詳細については、IETF の Web サイトの「クロスドメインの ID 管理用システム: プロトコル (RFC 7644)」を参照してください。
SCIM を使ったユーザー プロビジョニングを構成しない場合、アプリケーションをユーザーに割り当てるとき、または割り当てを解除するときに、IdP は GitHub Enterprise Server と自動的に通信しません。 SCIM を使わない場合、誰かが初めて GitHub Enterprise Server に移動し、あなたの IdP を使って認証してサインインしたときに、GitHub Enterprise Server により、SAML Just-in-Time (JIT) プロビジョニングを使ってユーザー アカウントが作成されます。
Enterprise 用にプロビジョニングを構成するには、GitHub Enterprise Server でプロビジョニングを有効にしてから、IdP にプロビジョニング アプリケーションをインストールして構成するか、GitHub の SCIM 用 REST API エンドポイントを使って手動で SCIM プロビジョニングを構成する必要があります。
サポートされているアイデンティティプロバイダ
GitHub は、ID 管理システムの一部の開発者と提携し、GitHub Enterprise Server との「舗装されたパス」統合を提供します。 構成を簡略化して完全なサポートを確保するため、認証とプロビジョニングの両方に単一のパートナー IdP を使用します。
パートナー ID プロバイダー
次の IdP はパートナー IdP です。 SAML 認証と SCIM プロビジョニングの両方の構成に使用できるアプリケーションが用意されています。
- Microsoft Entra ID
- Okta
- PingFederate (パブリック プレビュー)
認証とプロビジョニングの両方に 1 つのパートナー IdP を使用するとき、GitHub は、パートナー IdP ではアプリケーションを、GitHub では IdP の統合をサポートします。 PingFederate のサポートは、パブリック プレビュー にあります。
Azure Government に Entra ID を使用する場合、サポートされているパートナー アプリケーションはありません。
他の ID 管理システム
認証とプロビジョニングの両方に 1 つのパートナー IdP を使用できない場合、別の ID 管理システムまたはシステムの組み合わせを使用できます。 システムは次を実行する必要があります。
- GitHub の統合ガイドラインに従う
- SAML 2.0 仕様に従って SAML を使用した認証を提供する
- SCIM を使用したユーザー ライフサイクル管理を提供し、SCIM 2.0 仕様に準拠して、GitHub の REST API と通信する (「AUTOTITLE」を参照)
SCIM を使用したユーザー ライフサイクルの管理方法
SCIM を使用すると、IdP からユーザー アカウントのライフサイクルを管理できます。
- 新しいユーザーをプロビジョニングすると、IdP は お使いの GitHub Enterprise Server インスタンス にアカウントの作成を求め、オンボーディングメールをユーザーに送信するよう促します。IdP 内のアプリケーションにグループを割り当てると、IdP はグループのすべてのメンバーのアカウントをプロビジョニングします。
- ユーザーの ID に関連付けられている情報を IdP で更新すると、IdP によって GitHub のユーザー アカウントが更新されます。
- IdP アプリケーションからユーザーの割り当てを解除するか、IdP でユーザーのアカウントを非アクティブ化すると、IdP は GitHub と通信してすべてのセッションを無効にし、メンバーのアカウントを無効にします。 無効になったアカウントの情報は維持され、それらのユーザー名は元のユーザー名のハッシュに変更されます。
- ユーザーを IdP アプリケーションに再割り当てするか、IdP で自分のアカウントを再アクティブ化すると、ユーザー アカウントが再アクティブ化され、ユーザー名が復元されます。
チームと organization のメンバーシップ、リポジトリ アクセス、アクセス許可を構成するには、IdP でグループを使用できます。 詳しくは、「ID プロバイダー グループを使用したチーム メンバーシップの管理」をご覧ください。
SCIM が有効になっている場合、SCIM でプロビジョニングされたユーザーを GitHub Enterprise Server 上で直接削除、一時停止、または昇格することはできなくなります。 これらのプロセスは IdP から管理する必要があります。
一時停止されたメンバーを表示するには、[Enterprise] 設定の [一時停止メンバー] タブに移動します。 このページは、GitHub Enterprise Server で SCIM が有効になっている場合に表示されます。
- GitHub Enterprise Server の右上隅にあるプロフィール画像をクリックしてから、[Enterprise settings] をクリックします。
- ページの左側にある Enterprise アカウント サイドバーで、[ People] をクリックします。
- [一時停止メンバー] をクリックします。
SCIM を有効にするとどうなりますか?
現在 SAML SSO を使用していて、SCIM を有効にしている場合は、SCIM が有効になると GitHub Enterprise Server の既存のユーザー アカウントに対して何が起こるかを把握しておく必要があります。
- SAML マッピングを持つ既存のユーザーは、自身の ID が SCIM によってプロビジョニングされるまで、サインインすることはできません。
- 組み込み認証で作成された既存のユーザーは、組み込み認証がまだ有効になっている場合にのみサインインできます。
- インスタンスが SCIM 要求を受け取ると、SCIM 属性値
userNameを GitHub Enterprise Server ユーザー名と比較することで、SCIM ID が既存のユーザーと照合されます。 つまり、既存の GitHub Enterprise Server ユーザー アカウントは、元々ローカル ユーザー アカウントとして作成されたか、SAML JIT プロビジョニングを介して作成されたかに関係なく、これら 2 つの値が一致する場合は SCIM リンク ユーザー アカウントに変換できます。- ユーザー名が一致するユーザー アカウントが存在する場合、GitHub Enterprise Server は SCIM ID をこのユーザー アカウントにリンクします。
- ユーザー名が一致するユーザー アカウントが存在しない場合、GitHub Enterprise Server は新しいユーザー アカウントを作成し、この SCIM ID にリンクします。
- 既存のユーザー アカウントで SAML を介して認証されたユーザーが GitHub による照合に成功しても、メール アドレスや姓名などのアカウントの詳しい内容が一致しない場合は、インスタンスによって、IdP の値で詳しい内容が上書きされます。 SCIM によってプロビジョニングされたプライマリ メール以外のメール アドレスも、ユーザー アカウントから削除されます。
SAML 認証中は何が起こりますか?
IdP 管理者がユーザーに お使いの GitHub Enterprise Server インスタンス へのアクセスを許可すると、ユーザーは IdP を介して認証を行い、SAML SSO を使用して GitHub Enterprise Server にアクセスできます。
- ユーザーが SAML を使用して認証を行うと、ユーザーを SAML ID に関連付けるために、GitHub は、IdP (または構成した別の値) からの正規化された
NameID要求をアカウントのユーザー名と比較します。 正規化の詳細については、「AUTOTITLE」を参照してください。 - インスタンスに一致するユーザー名を持つアカウントがない場合、ユーザーはログインに失敗します。
- この照合を行うために、GitHub Enterprise Server により、IdP からの SAML
NameId要求と、インスタンスで SCIM がプロビジョニングした各ユーザー アカウントの SCIMuserName属性が比較されます。 - さらに、Entra ID の場合、GitHub Enterprise Server により、SAML 要求のオブジェクト識別子が既存の SCIM 外部 ID と比較されます。
- この照合を行うために、GitHub Enterprise Server により、IdP からの SAML
- 環境でユーザーの一意的な識別に
NameIDを使用しない場合は、サイト管理者がインスタンスのカスタム ユーザー属性を構成できます。 SCIM が構成されている場合、GitHub Enterprise Server では、このマッピングが考慮されます。 ユーザー属性のマッピング詳細については、「AUTOTITLE」を参照してください。
SCIM を無効にする方法
SCIM を無効にするさまざまな方法の詳細については、「AUTOTITLE」を参照してください。
概要
SCIM の使用を開始するには、次の作業を行います:
- 使用する IdP に関係なく、「AUTOTITLE」で、必要な初期設定を完了します。
- IdP で設定を構成します。
- 認証とプロビジョニングにパートナー IdP を使用している場合は、IdP のガイドに従います。
- それ以外の場合は、「AUTOTITLE」で説明されているように、REST API との SCIM 統合を設定します。