Note
現在、GitHub Enterprise Server の SCIM は ベータ 段階であり、変更される可能性があります。 GitHub では、最初にステージング インスタンスを使用したテストをお勧めします。 「ステージングインスタンスのセットアップ」をご覧ください。
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) プロビジョニングを使ってユーザー アカウントが作成されます。
エンタープライズのプロビジョニングを構成するには、GitHub Enterprise Server でプロビジョニングを有効にしてから、
IdP にプロビジョニング アプリケーションをインストールして構成するか、GitHub のSCIM 用の 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 のサポートは、ベータ にあります。
他の ID 管理システム
認証とプロビジョニングの両方に 1 つのパートナー IdP を使用できない場合、別の ID 管理システムまたはシステムの組み合わせを使用できます。 システムは次の手順を実行する必要があります。
- GitHub の統合ガイドラインに従う
- SAML 2.0 仕様に従って SAML を使用した認証を提供する
- SCIM を使用したユーザー ライフサイクル管理を提供し、SCIM 2.0 仕様に準拠して、GitHub の REST API と通信する (「REST API を使用した SCIM でユーザーとグループのプロビジョニング」を参照)
SCIM を使用したユーザー ライフサイクルの管理方法
SCIM を使用すると、IdP からユーザー アカウントのライフサイクルを管理できます。
- 新しいユーザーをプロビジョニングすると、IdP は お使いの GitHub Enterprise Server インスタンス にアカウントの作成を求め、オンボーディングメールをユーザーに送信するよう促します。IdP 内のアプリケーションにグループを割り当てると、IdP はグループのすべてのメンバーのアカウントをプロビジョニングします。
- ユーザーの ID に関連付けられている情報を IdP で更新すると、IdP によって GitHub のユーザー アカウントが更新されます。
- IdP アプリケーションからユーザーの割り当てを解除するか、IdP でユーザーのアカウントを非アクティブ化すると、IdP は GitHub と通信してすべてのセッションを無効にし、メンバーのアカウントを無効にします。 無効になったアカウントの情報は維持され、それらのユーザー名は元のユーザー名のハッシュに変更されます。
- ユーザーを IdP アプリケーションに再割り当てするか、IdP で自分のアカウントを再アクティブ化すると、ユーザー アカウントが再アクティブ化され、ユーザー名が復元されます。
GitHub Enterprise Server に対するチームと組織のメンバーシップ、リポジトリ アクセス、アクセス許可を構成するには、IdP でグループを使用できます。 詳しくは、「ID プロバイダー グループを使用したチーム メンバーシップの管理」を参照してください。
SCIM が有効になっている場合、GitHub Enterprise Server で SCIM プロビジョニングされたユーザーを直接に削除、中断、昇格することはできなくなります。 これらのプロセスは IdP から管理する必要があります。
インスタンス上の既存のユーザーはどうなりますか?
現在 SAML SSO を使用していて、SCIM を有効にする場合は、SCIM プロビジョニング中に既存のユーザーに何が起こるかを認識する必要があります。
- SCIM が有効になっている場合、SAML にリンクされた ID を持つユーザーは、その ID が SCIM によってプロビジョニングされるまで ログインできなくなります。
- インスタンスが SCIM 要求を受け取ると、GitHub ユーザー名 を持つ
userName
SCIM フィールドを比較する ことで、SCIM ID が既存のユーザーと照合されます。 一致するユーザー名を持つユーザーが存在しない場合、GitHub は新しいユーザーを作成します。 - GitHub によって IdP のユーザーが正常に識別されたが、メール アドレスや姓名などのアカウントの詳しい内容が一致しない場合、インスタンスによって、IdP の値で 詳しい内容が上書きされます。 SCIM によってプロビジョニングされたプライマリ メール以外のメール アドレスも、ユーザー アカウントから削除されます。
SAML 認証中は何が起こりますか?
IdP 管理者がユーザーに お使いの GitHub Enterprise Server インスタンスへのアクセスを許可すると、ユーザーは IdP を介して認証を行い、SAML SSO を使用して GitHub Enterprise Server にアクセスできます。
- ユーザーが SAML を使用して認証を行うと、ユーザーを SAML ID に関連付けるために、GitHub は、IdP (または構成した別の値) からの正規化された
NameID
要求をアカウントのユーザー名と比較します。 正規化について詳しくは、「外部認証のユーザー名に関する考慮事項」をご覧ください。 - インスタンスに一致するユーザー名を持つアカウントがない場合、ユーザーはログインに失敗します。
- この照合を行うために、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 では、このマッピングが考慮されます。 ユーザー属性のマッピングについて詳しくは、「Enterprise 向けの SAML シングルサインオンを設定する」をご覧ください。
SCIM を無効にするとどうなりますか?
次のいずれかの状況が発生した場合、SCIM はインスタンスで無効になります。
- エンタープライズ設定の [認証セキュリティ] ページで、[SCIM 構成の有効化] のチェック ボックスがオフになっています。
- SAML ラジオ ボタンは、管理コンソールの [認証] セクションで選択されていません。
- SAML 発行元 または シングル サインオン URL フィールドが、管理コンソールの [認証] セクションで更新されます。
インスタンスで SCIM が無効になっている場合:
- インスタンス上の SCIM API エンドポイントへの要求は成功しなくなります。
- SCIM でプロビジョニングされたユーザーは変更されず、一時停止されません。
- サイト管理者は、サイト管理者ダッシュボードから、SCIM でプロビジョニングされたユーザーのライフサイクル (一時停止や削除など) を管理できます。
- 有効な場合、ユーザーは引き続き SAML 経由でサインオンできます。
- ユーザーは外部 ID レコードからリンクを解除され、レコードが削除されます。
作業の開始
SCIM の使用を開始するには、次の作業を行います:
- 「About user provisioning with SCIM on GitHub Enterprise Server」で、使用する IdP に関係なく、必要な初期セットアップを完了します。
- IdP で設定を構成します。
- 認証とプロビジョニングにパートナー IdP を使用している場合は、IdP のガイドに従います。
- それ以外の場合は、「REST API を使用した SCIM でユーザーとグループのプロビジョニング」で説明されているように、REST API との SCIM 統合を設定します。