Skip to main content

Configuring user provisioning with SCIM on GitHub Enterprise Server

概要 について説明します。

この機能を使用できるユーザーについて

Site administrators

Note

GitHub Enterprise Server の SCIM は現在プライベート ベータ版であり、変更される可能性があります。 ベータ版にアクセスするには、GitHub の営業チーム のアカウント マネージャーにお問い合わせください。 [GitHub Community ディスカッション] にフィードバックをお寄せください。

Warning

ベータ版はテストとフィードバック専用であり、サポートは利用できません。 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 用の API エンドポイントを使用して SCIM プロビジョニングを手動で構成する必要があります。

サポートされているアイデンティティプロバイダ

プライベート ベータ期間中は、担当のアカウント チームが、サポートされている IdP 上の GitHub Enterprise Server に対して SCIM の構成に関するドキュメントを提供します。

SCIM を使用したユーザー ライフサイクルの管理方法

SCIM を使用すると、IdP からユーザー アカウントのライフサイクルを管理できます。

  • 新しいユーザーをプロビジョニングすると、IdP は お使いの GitHub Enterprise Server インスタンス にアカウントの作成を求め、オンボーディングメールをユーザーに送信するよう促します。IdP 内のアプリケーションにグループを割り当てると、IdP はグループのすべてのメンバーのアカウントをプロビジョニングします。
  • ユーザーの ID に関連付けられている情報を IdP で更新すると、IdP によって GitHub のユーザー アカウントが更新されます。
  • IdP アプリケーションからユーザーの割り当てを解除するか、IdP でユーザーのアカウントを非アクティブ化すると、IdP は GitHub と通信してすべてのセッションを無効にし、メンバーのアカウントを無効にします。 無効になったアカウントの情報は維持され、それらのユーザー名は元のユーザー名 が追加されます。
  • ユーザーを IdP アプリケーションに再割り当てするか、IdP で自分のアカウントを再アクティブ化すると、ユーザー アカウントが再アクティブ化され、ユーザー名が復元されます。

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 によってプロビジョニングされた各ユーザー アカウントの SCIM userName 属性と比較します。
    • さらに、Entra ID の場合、GitHub Enterprise Server は SAML 要求のオブジェクト識別子を既存の SCIM 外部 ID と比較します。
  • 環境でユーザーを一意的に識別するために NameID を使用しない場合は、サイト管理者がインスタンスのカスタム ユーザー属性を構成できます。 SCIM が構成されている場合、GitHub Enterprise Server では、このマッピングが考慮されます。 ユーザー属性のマッピングについて詳しくは、「Enterprise 向けの SAML シングルサインオンを設定する」を参照してください。

前提条件

Enterprise 向けのユーザプロビジョニングを有効化する

ご利用のインスタンス上でプロビジョニング操作を行うには、組み込みのユーザー アカウントを作成し、そのアカウントを Enterprise オーナーに昇格させます。

GitHub Enterprise Server インスタンスで SCIM を有効にすると、すべてのユーザー アカウントが一時停止されます。 組み込みのユーザー アカウントでは、引き続きプロビジョニング操作を行います。 IdP からインスタンスへのアクセス権をユーザーに付与すると、IdP では SCIM を使用してインスタンスと通信し、ユーザーのアカウントの停止解除を行います。

  1. ご利用のインスタンに対してプロビジョニング操作を行うための組み込みのユーザー アカウントを作成します。 詳しくは、「使用しているプロバイダーの外部ユーザーのためのビルトイン認証の許可」を参照してください。

  2. 専用のユーザー アカウントを Enterprise オーナーに昇格します。 詳しくは、「Enterprise を管理するようユーザを招待する」を参照してください。

  3. 新しい Enterprise オーナーとしてインスタンスにサインインします。

  4. admin:enterprise スコープでpersonal access token (classic)を作成します。 personal access token (classic) に対しては、有効期限を指定しないでください。 詳しくは、「個人用アクセス トークンを管理する」を参照してください。

    警告: personal access token (classic) の有効期限は決して指定しないでください。 有効期限を指定した場合、有効期限が過ぎると SCIM は機能しなくなります。

: SCIM 構成をテストするため、および IdP で SCIM 用にアプリケーションを構成するためには、このpersonal access tokenが必要です。 手順の後半でトークンが再び必要になるまで、トークンをパスワードマネージャーに安全に保管してください。

1. お使いの GitHub Enterprise Server インスタンス に SSH で接続します。 インスタンスが複数のノードで構成されている場合は (高可用性や geo レプリケーションが構成されている場合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する場合は、任意のノードに SSH 接続できます。 HOSTNAME をインスタンスのホスト名、またはノードのホスト名または IP アドレスに置き換えます。 詳しくは、「[AUTOTITLE](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)」を参照してください。
Shell
ssh -p 122 admin@HOSTNAME
  1. SCIM を有効にするには、アカウント マネージャーから提供されたコマンドを GitHub の営業チームで実行します。

  2. 設定の実行が完了するのを待ってください。

  3. SCIM が動作していることを検証するには、次のコマンドを実行します。 PAT FROM STEP 3YOUR INSTANCE'S HOSTNAME を実際の値に置き換えます。

    $ GHES_PAT="PAT FROM STEP 3"
    $ GHES_HOSTNAME="YOUR INSTANCE'S HOSTNAME"
    $ curl --location --request GET 'https://$GHES_HOSTNAME/api/v3/scim/v2/Users' \
        --header 'Content-Type: application/scim' \
        --header 'Authorization: Bearer $GHES_PAT'
    

    このコマンドは、空の配列を返します。

  4. IdP 上で、GitHub Enterprise Server 用のアプリケーションでのユーザー プロビジョニングを構成します。 サポートされている IdP のドキュメントを要求するには、GitHub の営業チーム でアカウント マネージャーにお問い合わせください。 ご利用の IdP がサポートされていない場合は、アプリケーションを作成し、SCIM を手動で構成する必要があります。