Skip to main content

このバージョンの GitHub Enterprise サーバーはこの日付をもって終了となりました: 2024-09-25. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise サーバーにアップグレードしてください。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせください

Configuring user provisioning with SCIM on GitHub Enterprise Server

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

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

Site administrators

Note

これは、GitHub Enterprise Server の SCIM の古い プライベート ベータ バージョンです。 SCIM フィードバックまたはバグ レポートが考慮するためには、お客様は 3.14 以降にアップグレードし、GitHub Enterprise Server SCIM ベータ を使用する必要があります。

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) に対しては、有効期限を指定しないでください。 詳しくは、「個人用アクセス トークンを管理する」を参照してください。

    Warning

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

    Note

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

  5. お使いの GitHub Enterprise Server インスタンス に SSH で接続します。 インスタンスが複数のノードで構成されている場合は (高可用性や geo レプリケーションが構成されている場合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する場合は、任意のノードに SSH 接続できます。 HOSTNAME をインスタンスのホスト名、またはノードのホスト名または IP アドレスに置き換えます。 詳しくは、「管理シェル (SSH) にアクセスする」を参照してください。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  6. SCIM を有効にするには、アカウント マネージャーから提供されたコマンドを GitHub の営業チームで実行します。

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

  8. 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'
    

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

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