SCIM の REST API エンドポイント
REST API を使って、SCIM でのユーザー作成とチーム メンバーシップを自動化します。
メモ
- これらのエンドポイントは、SCIM を使用してGitHub Enterprise Cloudで Enterprise のユーザー アカウントをプロビジョニングできるようにします。 この操作は、Enterprise Managed Users でのみ使用できます。 Enterprise Managed Users を使わず、SCIM を使って organization へのアクセスをプロビジョニングする場合は、「SCIM の REST API エンドポイント」を参照してください。
- GitHub では、IdP と GitHub 上の運用データから分離された環境でプロビジョニングをテストすることをお勧めします。
SCIM の概要
GitHub で Enterprise メンバーのユーザー アカウントを作成、管理、非アクティブ化するには、IdP が GitHub とのコミュニケーション用に SCIM を できる場合があります。 SCIM は、システム間のユーザー ID を管理するためのオープン仕様です。 IDP が異なると、SCIM プロビジョニングの構成に異なるエクスペリエンスが提供されます。 既存の統合でパートナー IdP を使用しない場合は、次の API エンドポイントを使用して統合できます。 詳しくは、「REST API を使用した SCIM でユーザーとグループのプロビジョニング」をご覧ください。
ベース URL
SCIM を使用して Enterprise のユーザーとグループを管理するには、次のベース URL を使用して、このカテゴリのエンドポイントと通信します。
https://api.github.com/scim/v2/enterprises/{enterprise}/
認証
API リクエストを認証するには、IdP で SCIM を設定する担当者は、personal access token (classic) スコープを持つ scim:enterprise を使用する必要があり、IdP はそれをリクエストの Authorization ヘッダーで提供する必要があります。
personal access tokens (classic) の詳細については、「個人用アクセス トークンを管理する」を参照してください。
GitHub では、企業のセットアップ ユーザーとして認証することをお勧めします。 他のユーザー アカウントは SCIM を使用して作成されるため、別のユーザーとして認証すると、Enterprise からロックアウトされるなど、意図しない結果になる可能性があります。 これらの API への書き込み要求は、公開された IdP アプリケーション、または SCIM エンドポイントへの直接 API アクセスを通じて可能です。 別のエンタープライズ所有者が API から情報を読み取る必要がある場合は、personal access token (classic) スコープを持つadmin:enterpriseを使用して、現在の SCIM 実装でGET要求を行います。 詳しくは、「エンタープライズ マネージド ユーザーユーザーを管理するための SCIM プロビジョニングの構成」をご覧ください。
SAML および SCIM データのマッピング
マネージド ユーザー アカウント が SAML SSO を使用してエンタープライズへのアクセスに正常に認証された後、GitHub はそのユーザーを SCIM でプロビジョニングされた ID に関連付けます。 ID を正常にリンクするには、SAML ID プロバイダーと SCIM 統合が、一致する一意識別子を使用する必要があります。
GitHub では、次の SAML 要求と SCIM 属性が、SCIM によってプロビジョニングされた ID とユーザーと正常に一致する必要があります。 ID プロバイダーによって、ユーザーを一意に識別するために使用されるフィールドが異なる場合があります。
SAML の Microsoft Entra ID
SAML に Entra ID (旧称 Azure AD) を使用するには、次の SAML 要求と SCIM 属性が一致する必要があります。
| SAML 要求 | 一致するSCIM属性 |
|---|---|
http:/ | externalId |
SAML 用のその他の IdP
SAML に他の IdP を使用するには、次の SAML 要求と SCIM 属性が一致する必要があります。
| SAML 要求 | 一致するSCIM属性 |
|---|---|
NameID | userName |
サポートされている SCIM ユーザー属性
このカテゴリの Users エンドポイントでは、要求のパラメーター内で次の属性がサポートされています。
| 名前 | タイプ | 説明 |
|---|---|---|
displayName | String | 人が判読できるユーザーの名前。 |
name.formatted | String | 表示用に書式設定された、すべてのミドル ネーム、役職、サフィックスを含む、ユーザーのフル ネーム。 |
name.givenName | String | ユーザーの名。 |
name.familyName | String | ユーザーの姓。 |
userName | String | SCIM プロバイダーが生成したユーザーのユーザー名。 使用する前に正規化を行います。 ユーザーごとに一意である必要があります。 |
emails | Array | ユーザーのメールの一覧。 |
roles | Array | ユーザーのロールの一覧。 |
externalId | String | この識別子は、SCIM プロバイダーが生成します。 ユーザーごとに一意である必要があります。 |
id | String | GitHubの SCIM エンドポイントによって生成される識別子。 |
active | ブール値 | ID がアクティブである (true) か、中断する必要がある (false) かを示します。 |
サポートされている SCIM グループ属性
このカテゴリの Groups エンドポイントでは、要求のパラメーター内で次の属性がサポートされています。
| 名前 | タイプ | 説明 |
|---|---|---|
displayName | String | 人が判読できるグループの名前。 |
members | String | SCIM プロバイダーでグループに割り当てられているメンバーの一覧 |
externalId | String | この識別子は、SCIM プロバイダーが生成します。 ユーザーごとに一意である必要があります。 |
List provisioned SCIM groups for an enterprise
Lists provisioned SCIM groups in an enterprise.
You can improve query search time by using the excludedAttributes query parameter with a value of members to exclude members from the response.
"List provisioned SCIM groups for an enterprise" のきめ細かいアクセス トークン
このエンドポイントは、次の粒度の細かいトークンの種類で動作します:
粒度の細かいトークンには次のアクセス許可セットが設定されている必要があります:
- "Enterprise SCIM" enterprise permissions (read)
"List provisioned SCIM groups for an enterprise" のパラメーター
| 名前, タイプ, 説明 |
|---|
accept string Setting to |
| 名前, タイプ, 説明 |
|---|
enterprise string 必須The slug version of the enterprise name. |
| 名前, タイプ, 説明 |
|---|