SCIM용 REST API 엔드포인트
REST API를 사용하여 SCIM으로 사용자 만들기 및 팀 멤버십을 자동화합니다.
참고 사항:
- 이 엔드포인트를 사용하면 SCIM을 사용해 GitHub Enterprise Cloud의 엔터프라이즈에 대한 사용자 계정을 프로비전할 수 있습니다. 이 작업은 Enterprise Managed Users와 함께 사용할 수만 있습니다. Enterprise Managed Users을(를) 사용하지 않고 SCIM을 사용해 조직에 액세스를 프로비저닝하고자 하는 경우, “SCIM용 REST API 엔드포인트”을(를) 참조하세요.
- GitHub에서는 IdP 및 GitHub의 프로덕션 데이터와 격리된 환경에서 프로비저닝을 테스트하도록 권장합니다.
SCIM 정보
엔터프라이즈 구성원의 사용자 계정을 GitHub에서 생성, 관리 및 비활성화하려면 IdP가 GitHub과(와)의 통신을 위한 SCIM을 반드시. SCIM은 시스템 사이에서 사용자 ID 관리를 위한 공개 사양입니다. 다양한 IdP에서 SCIM 프로비저닝 구성에 대해 다양한 환경을 제공합니다. 기존 통합에서 파트너 IdP를 사용하지 않는 경우 다음 API 엔드포인트를 사용하여 통합할 수 있습니다. 자세한 내용은 "REST API를 사용하여 SCIM으로 사용자 및 그룹 프로비전" 항목을 참조하세요.
기준 URL
SCIM을 사용하여 엔터프라이즈의 사용자 및 그룹을 관리하려면 다음 기본 URL을 사용하여 이 범주의 엔드포인트와 통신합니다.
https://api.github.com/scim/v2/enterprises/{enterprise}/
인증
API 요청을 인증하려면 IdP에서 SCIM을 구성하는 사람은 scim:enterprise
범위가 있는 personal access token (classic)을(를) 사용해야 하며, IdP는 요청의 Authorization
헤더에 제공해야 합니다. personal access tokens (classic)에 대한 자세한 내용은 "개인용 액세스 토큰 관리" 항목을 참조하세요.
GitHub은(는) 엔터프라이즈의 설치 사용자로 인증하는 것이 좋습니다. 다른 사용자 계정은 SCIM을 통해 생성되므로 다른 사용자로 인증하면 엔터프라이즈에서 잠기게 되는 등의 의도하지 않은 결과가 발생할 수 있습니다. 이러한 API에 대한 쓰기 요청은 게시된 IdP 애플리케이션을 통해 또는 SCIM 엔드포인트에 대한 직접 API 액세스를 통해 가능합니다. 다른 엔터프라이즈 소유자가 API에서 정보를 읽어야 하는 경우 admin:enterprise
범위와 함께 personal access token (classic)을(를) 사용하여 현재 SCIM 구현에 대한 GET
요청을 만듭니다. 자세한 내용은 "엔터프라이즈 관리 사용자용"을(를) 참조하세요.
SAML 및 SCIM 데이터 매핑
관리형 사용자 계정이(가) SAML SSO를 사용하여 엔터프라이즈에 성공적으로 액세스하도록 인증한 후 GitHub Enterprise Cloud은(는) 사용자를 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://schemas.microsoft.com/identity/claims/objectidentifier | externalId |
SAML용 기타 IdP
SAML용 기타 IdP를 사용하려면 다음 SAML 클레임과 SCIM 특성이 일치해야 합니다.
SAML 클레임 | 일치하는 SCIM 특성 |
---|---|
NameID | userName |
지원되는 SCIM 사용자 특성
이 범주의 Users
엔드포인트는 요청의 매개 변수 내에서 다음 특성을 지원합니다.
속성 | 형식 | 설명 |
---|---|---|
displayName | 문자열 | 사용자에 대해 사람이 읽을 수 있는 이름입니다. |
name.formatted | 문자열 | 표시할 형식이 지정된 모든 중간 이름, 제목 및 접미사를 포함한 사용자의 전체 이름입니다. |
name.givenName | 문자열 | 사용자의 이름입니다. |
name.familyName | 문자열 | 사용자의 성입니다. |
userName | 문자열 | SCIM 공급자가 생성한 사용자의 사용자 이름입니다. 사용되기 전에 정규화를 거칩니다. 사용자당 고유해야 합니다. |
emails | 배열 | 사용자 메일 목록입니다. |
roles | 배열 | 사용자 역할 목록입니다. |
externalId | 문자열 | 이 식별자는 SCIM 공급자에 의해 생성됩니다. 사용자당 고유해야 합니다. |
id | 문자열 | GitHub SCIM 엔드포인트에서 생성된 식별자입니다. |
active | Boolean | ID가 활성 상태(true )인지 일시 중단(false )해야 하는지를 나타냅니다. |
지원되는 SCIM 그룹 특성
이 범주의 Groups
엔드포인트는 요청의 매개 변수 내에서 다음 특성을 지원합니다.
속성 | 형식 | 설명 |
---|---|---|
displayName | 문자열 | 그룹에 대해 사람이 읽을 수 있는 이름입니다. |
members | 문자열 | SCIM 공급자의 그룹에 할당된 구성원 목록 |
externalId | 문자열 | 이 식별자는 SCIM 공급자에 의해 생성됩니다. 사용자당 고유해야 합니다. |
List provisioned SCIM groups for an enterprise
Note
SCIM provisioning for users and groups using the REST API is in public preview and subject to change.
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 administration" business permissions (write)
"List provisioned SCIM groups for an enterprise"에 대한 매개 변수
속성, 형식, 설명 |
---|
accept string Setting to |
속성, 형식, 설명 |
---|
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
속성, 형식, 설명 |
---|
filter string If specified, only results that match the specified filter will be returned. Multiple filters are not supported. Possible filters are |
excludedAttributes string Excludes the specified attribute from being returned in the results. Using this parameter can speed up response time. |
startIndex integer Used for pagination: the starting index of the first result to return when paginating through values. 기본값: |
count integer Used for pagination: the number of results to return per page. 기본값: |
"List provisioned SCIM groups for an enterprise"에 대한 HTTP 응답 상태 코드
상태 코드 | 설명 |
---|---|
200 | Success, either groups were found or not found |
400 | Bad request |
401 | Authorization failure |
403 | Permission denied |
429 | Too many requests |
500 | Internal server error |
"List provisioned SCIM groups for an enterprise"에 대한 코드 샘플
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
요청 예제
curl -L \
-H "Accept: application/scim+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/scim/v2/enterprises/ENTERPRISE/Groups
Success, either groups were found or not found
Status: 200
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 1,
"Resources": [
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159",
"id": "24b28bbb-5fc4-4686-a153-a020debb1155",
"displayName": "Engineering",
"members": [
{
"value": "879db59-3bdf-4490-ad68-ab880a2694745",
"$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745",
"displayName": "User 1"
},
{
"value": "0db508eb-91e2-46e4-809c-30dcbda0c685",
"$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685",
"displayName": "User 2"
}
],
"meta": {
"resourceType": "Group",
"created": "2012-03-27T19:59:26.000Z",
"lastModified": "2018-03-27T19:59:26.000Z",
"location": "https://api.github.localhost/scim/v2/Groups/24b28bbb-5fc4-4686-a153-a020debb1155"
}
}
],
"startIndex": 1,
"itemsPerPage": 20
}
Provision a SCIM enterprise group
Note
SCIM provisioning for users and groups using the REST API is in public preview and subject to change.
Creates a SCIM group for an enterprise.
When members are part of the group provisioning payload, they're designated as external group members. Providers are responsible for maintaining a mapping between the externalId
and id
for each user.
"Provision a SCIM enterprise group"에 대한 세분화된 액세스 토큰
이 엔드포인트는 다음 세분화된 토큰 형식에서 작동합니다.:
세분화된 토큰에는 다음 권한 집합이 있어야 합니다.:
- "Enterprise administration" business permissions (write)
"Provision a SCIM enterprise group"에 대한 매개 변수
속성, 형식, 설명 |
---|
accept string Setting to |
속성, 형식, 설명 |
---|
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
속성, 형식, 설명 | |||
---|---|---|---|
schemas array of strings RequiredThe URIs that are used to indicate the namespaces of the SCIM schemas.
Supported values are: | |||
externalId string RequiredA unique identifier for the resource as defined by the provisioning client. | |||
displayName string RequiredA human-readable name for a security group. | |||
members array of objects RequiredThe group members. | |||
Properties of |
속성, 형식, 설명 |
---|
value string RequiredThe local unique identifier for the member |
displayName string RequiredThe display name associated with the member |
"Provision a SCIM enterprise group"에 대한 HTTP 응답 상태 코드
상태 코드 | 설명 |
---|---|
201 | Group has been created |
400 | Bad request |
401 | Authorization failure |
403 | Permission denied |
409 | Duplicate record detected |
429 | Too many requests |
500 | Internal server error |
"Provision a SCIM enterprise group"에 대한 코드 샘플
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
요청 예제
curl -L \
-X POST \
-H "Accept: application/scim+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/scim/v2/enterprises/ENTERPRISE/Groups \
-d '{"schemas":["urn:ietf:params:scim:schemas:core:2.0:Group"],"externalId":"8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159","displayName":"Engineering"}'
Group has been created
Status: 201
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc",
"externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159",
"displayName": "Engineering",
"members": [
{
"value": "879db59-3bdf-4490-ad68-ab880a2694745",
"$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745",
"displayName": "User 1"
},
{
"value": "0db508eb-91e2-46e4-809c-30dcbda0c685",
"$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685",
"displayName": "User 2"
}
],
"meta": {
"resourceType": "Group",
"created": "2012-03-27T19:59:26.000Z",
"lastModified": "2018-03-27T19:59:26.000Z",
"location": "https://api.github.localhost/scim/v2/Groups/24b28bbb-5fc4-4686-a153-a020debb1155"
}
}
Get SCIM provisioning information for an enterprise group
Note
SCIM provisioning for users and groups using the REST API is in public preview and subject to change.
Gets information about a SCIM group.
"Get SCIM provisioning information for an enterprise group"에 대한 세분화된 액세스 토큰
이 엔드포인트는 다음 세분화된 토큰 형식에서 작동합니다.:
세분화된 토큰에는 다음 권한 집합이 있어야 합니다.:
- "Enterprise administration" business permissions (write)
"Get SCIM provisioning information for an enterprise group"에 대한 매개 변수
속성, 형식, 설명 |
---|
accept string Setting to |
속성, 형식, 설명 |
---|
scim_group_id string RequiredA unique identifier of the SCIM group. |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
속성, 형식, 설명 |
---|
excludedAttributes string Excludes the specified attribute from being returned in the results. Using this parameter can speed up response time. |
"Get SCIM provisioning information for an enterprise group"에 대한 HTTP 응답 상태 코드
상태 코드 | 설명 |
---|---|
200 | Success, a group was found |
400 | Bad request |
401 | Authorization failure |
403 | Permission denied |
404 | Resource not found |
429 | Too many requests |
500 | Internal server error |
"Get SCIM provisioning information for an enterprise group"에 대한 코드 샘플
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
요청 예제
curl -L \
-H "Accept: application/scim+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/scim/v2/enterprises/ENTERPRISE/Groups/SCIM_GROUP_ID
Success, a group was found
Status: 200
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc",
"externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159",
"displayName": "Engineering",
"members": [
{
"value": "879db59-3bdf-4490-ad68-ab880a2694745",
"$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745",
"displayName": "User 1"
},
{
"value": "0db508eb-91e2-46e4-809c-30dcbda0c685",
"$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685",
"displayName": "User 2"
}
],
"meta": {
"resourceType": "Group",
"created": "2012-03-27T19:59:26.000Z",
"lastModified": "2018-03-27T19:59:26.000Z",
"location": "https://api.github.localhost/scim/v2/Groups/24b28bbb-5fc4-4686-a153-a020debb1155"
}
}
Set SCIM information for a provisioned enterprise group
Note
SCIM provisioning for users and groups using the REST API is in public preview and subject to change.
Replaces an existing provisioned group’s information.
You must provide all the information required for the group as if you were provisioning it for the first time. Any existing group information that you don't provide will be removed, including group membership. If you want to only update a specific attribute, use the Update an attribute for a SCIM enterprise group endpoint instead.
"Set SCIM information for a provisioned enterprise group"에 대한 세분화된 액세스 토큰
이 엔드포인트는 다음 세분화된 토큰 형식에서 작동합니다.:
세분화된 토큰에는 다음 권한 집합이 있어야 합니다.:
- "Enterprise administration" business permissions (write)
"Set SCIM information for a provisioned enterprise group"에 대한 매개 변수
속성, 형식, 설명 |
---|
accept string Setting to |
속성, 형식, 설명 |
---|
scim_group_id string RequiredA unique identifier of the SCIM group. |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
속성, 형식, 설명 | |||
---|---|---|---|
schemas array of strings RequiredThe URIs that are used to indicate the namespaces of the SCIM schemas.
Supported values are: | |||
externalId string RequiredA unique identifier for the resource as defined by the provisioning client. | |||
displayName string RequiredA human-readable name for a security group. | |||
members array of objects RequiredThe group members. | |||
Properties of |
속성, 형식, 설명 |
---|
value string RequiredThe local unique identifier for the member |
displayName string RequiredThe display name associated with the member |
"Set SCIM information for a provisioned enterprise group"에 대한 HTTP 응답 상태 코드
상태 코드 | 설명 |
---|---|
200 | Group was updated |
400 | Bad request |
401 | Authorization failure |
403 | Permission denied |
404 | Resource not found |
409 | Duplicate record detected |
429 | Too many requests |
500 | Internal server error |
"Set SCIM information for a provisioned enterprise group"에 대한 코드 샘플
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
요청 예제
curl -L \
-X PUT \
-H "Accept: application/scim+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/scim/v2/enterprises/ENTERPRISE/Groups/SCIM_GROUP_ID \
-d '{"schemas":["urn:ietf:params:scim:schemas:core:2.0:Group"],"externalId":"8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159","displayName":"Engineering"}'
Group was updated
Status: 200
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc",
"externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159",
"displayName": "Engineering",
"members": [
{
"value": "879db59-3bdf-4490-ad68-ab880a2694745",
"$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745",
"displayName": "User 1"
},
{
"value": "0db508eb-91e2-46e4-809c-30dcbda0c685",
"$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685",
"displayName": "User 2"
}
],
"meta": {
"resourceType": "Group",
"created": "2012-03-27T19:59:26.000Z",
"lastModified": "2018-03-27T19:59:26.000Z",
"location": "https://api.github.localhost/scim/v2/Groups/24b28bbb-5fc4-4686-a153-a020debb1155"
}
}
Update an attribute for a SCIM enterprise group
Note
SCIM provisioning for users and groups using the REST API is in public preview and subject to change.
Update a provisioned group’s individual attributes.
To modify a group's values, you'll need to use a specific Operations JSON format which must include at least one of the following operations: add, remove, or replace. For examples and more information on this SCIM format, consult the SCIM specification. The update function can also be used to add group memberships.
You can submit group memberships individually or in batches for improved efficiency.
Note
Memberships are referenced via a local user id. Ensure users are created before referencing them here.
"Update an attribute for a SCIM enterprise group"에 대한 세분화된 액세스 토큰
이 엔드포인트는 다음 세분화된 토큰 형식에서 작동합니다.:
세분화된 토큰에는 다음 권한 집합이 있어야 합니다.:
- "Enterprise administration" business permissions (write)
"Update an attribute for a SCIM enterprise group"에 대한 매개 변수
속성, 형식, 설명 |
---|
accept string Setting to |
속성, 형식, 설명 |
---|
scim_group_id string RequiredA unique identifier of the SCIM group. |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
속성, 형식, 설명 | ||||
---|---|---|---|---|
Operations array of objects Requiredpatch operations list | ||||
Properties of |
속성, 형식, 설명 |
---|
op string Required다음 중 하나일 수 있습니다.: |
path string |
value string Corresponding 'value' of that field specified by 'path' |
schemas
array of strings RequiredundefinedSupported values are: urn:ietf:params:scim:api:messages:2.0:PatchOp
"Update an attribute for a SCIM enterprise group"에 대한 HTTP 응답 상태 코드
상태 코드 | 설명 |
---|---|
200 | Success, group was updated |
204 | No Content |
400 | Bad request |
401 | Authorization failure |
403 | Permission denied |
404 | Resource not found |
409 | Duplicate record detected |
429 | Too many requests |
500 | Internal server error |
"Update an attribute for a SCIM enterprise group"에 대한 코드 샘플
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
요청 예제
curl -L \
-X PATCH \
-H "Accept: application/scim+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/scim/v2/enterprises/ENTERPRISE/Groups/SCIM_GROUP_ID \
-d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],"Operations":[{"op":"replace","path":"displayName","value":"Employees"}]}'
Success, group was updated
Status: 200
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc",
"externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159",
"displayName": "Engineering",
"members": [
{
"value": "879db59-3bdf-4490-ad68-ab880a2694745",
"$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745",
"displayName": "User 1"
},
{
"value": "0db508eb-91e2-46e4-809c-30dcbda0c685",
"$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685",
"displayName": "User 2"
}
],
"meta": {
"resourceType": "Group",
"created": "2012-03-27T19:59:26.000Z",
"lastModified": "2018-03-27T19:59:26.000Z",
"location": "https://api.github.localhost/scim/v2/Groups/24b28bbb-5fc4-4686-a153-a020debb1155"
}
}
Delete a SCIM group from an enterprise
Note
SCIM provisioning using the REST API is in public preview and subject to change.
Deletes a SCIM group from an enterprise.
"Delete a SCIM group from an enterprise"에 대한 세분화된 액세스 토큰
이 엔드포인트는 다음 세분화된 토큰 형식에서 작동합니다.:
세분화된 토큰에는 다음 권한 집합이 있어야 합니다.:
- "Enterprise administration" business permissions (write)
"Delete a SCIM group from an enterprise"에 대한 매개 변수
속성, 형식, 설명 |
---|
accept string Setting to |
속성, 형식, 설명 |
---|
scim_group_id string RequiredA unique identifier of the SCIM group. |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
"Delete a SCIM group from an enterprise"에 대한 HTTP 응답 상태 코드
상태 코드 | 설명 |
---|---|
204 | Group was deleted, no content |
400 | Bad request |
401 | Authorization failure |
403 | Permission denied |
404 | Resource not found |
429 | Too many requests |
500 | Internal server error |
"Delete a SCIM group from an enterprise"에 대한 코드 샘플
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
요청 예제
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/scim/v2/enterprises/ENTERPRISE/Groups/SCIM_GROUP_ID
Group was deleted, no content
Status: 204
List SCIM provisioned identities for an enterprise
Note
SCIM provisioning for users and groups using the REST API is in public preview and subject to change.
Lists provisioned SCIM enterprise members.
When you remove a user with a SCIM-provisioned external identity from an enterprise using a patch
with active
flag to false
, the user's metadata remains intact. This means they can potentially re-join the enterprise later. Although, while suspended, the user can't sign in. If you want to ensure the user can't re-join in the future, use the delete request. Only users who weren't permanently deleted will appear in the result list.
"List SCIM provisioned identities for an enterprise"에 대한 세분화된 액세스 토큰
이 엔드포인트는 다음 세분화된 토큰 형식에서 작동합니다.:
세분화된 토큰에는 다음 권한 집합이 있어야 합니다.:
- "Enterprise administration" business permissions (write)
"List SCIM provisioned identities for an enterprise"에 대한 매개 변수
속성, 형식, 설명 |
---|
accept string Setting to |
속성, 형식, 설명 |
---|
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
속성, 형식, 설명 |
---|
filter string If specified, only results that match the specified filter will be returned. Multiple filters are not supported. Possible filters are |
startIndex integer Used for pagination: the starting index of the first result to return when paginating through values. 기본값: |
count integer Used for pagination: the number of results to return per page. 기본값: |
"List SCIM provisioned identities for an enterprise"에 대한 HTTP 응답 상태 코드
상태 코드 | 설명 |
---|---|
200 | Success, either users were found or not found |
400 | Bad request |
401 | Authorization failure |
403 | Permission denied |
429 | Too many requests |
500 | Internal server error |
"List SCIM provisioned identities for an enterprise"에 대한 코드 샘플
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
요청 예제
curl -L \
-H "Accept: application/scim+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/scim/v2/enterprises/ENTERPRISE/Users
Success, either users were found or not found
Status: 200
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 1,
"Resources": [
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"externalId": "E012345",
"id": "7fce0092-d52e-4f76-b727-3955bd72c939",
"active": true,
"userName": "E012345",
"name": {
"formatted": "Ms. Mona Lisa Octocat",
"familyName": "Octocat",
"givenName": "Mona",
"middleName": "Lisa"
},
"displayName": "Mona Lisa",
"emails": [
{
"value": "mlisa@example.com",
"type": "work",
"primary": true
}
],
"roles": [
{
"value": "User",
"primary": false
}
]
}
],
"startIndex": 1,
"itemsPerPage": 20
}
Provision a SCIM enterprise user
Note
SCIM provisioning for users and groups using the REST API is in public preview and subject to change.
Creates an external identity for a new SCIM enterprise user.
SCIM is responsible for user provisioning, not authentication. The actual user authentication is handled by SAML. However, with SCIM enabled, users must first be provisioned via SCIM before they can sign in through SAML.
"Provision a SCIM enterprise user"에 대한 세분화된 액세스 토큰
이 엔드포인트는 다음 세분화된 토큰 형식에서 작동합니다.:
세분화된 토큰에는 다음 권한 집합이 있어야 합니다.:
- "Enterprise administration" business permissions (write)
"Provision a SCIM enterprise user"에 대한 매개 변수
속성, 형식, 설명 |
---|
accept string Setting to |
속성, 형식, 설명 |
---|
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
속성, 형식, 설명 | |||||
---|---|---|---|---|---|
schemas array of strings RequiredThe URIs that are used to indicate the namespaces of the SCIM schemas.
Supported values are: | |||||
externalId string RequiredA unique identifier for the resource as defined by the provisioning client. | |||||
active boolean RequiredWhether the user active in the IdP. | |||||
userName string RequiredThe username for the user. | |||||
name object | |||||
Properties of |
속성, 형식, 설명 |
---|
formatted string The full name, including all middle names, titles, and suffixes as appropriate, formatted for display. |
familyName string RequiredThe family name of the user. |
givenName string RequiredThe given name of the user. |
middleName string The middle name(s) of the user. |
displayName
string RequiredA human-readable name for the user.
emails
array of objects RequiredThe emails for the user.
Properties of emails
속성, 형식, 설명 |
---|
value string RequiredThe email address. |
type string RequiredThe type of email address. |
primary boolean RequiredWhether this email address is the primary address. |
roles
array of objects The roles assigned to the user.
Properties of roles
속성, 형식, 설명 |
---|
display string |
type string |
value string RequiredThe role value representing a user role in GitHub. 다음 중 하나일 수 있습니다.: |
primary boolean Is the role a primary role for the user. |
"Provision a SCIM enterprise user"에 대한 HTTP 응답 상태 코드
상태 코드 | 설명 |
---|---|
201 | User has been created |
400 | Bad request |
401 | Authorization failure |
403 | Permission denied |
409 | Duplicate record detected |
429 | Too many requests |
500 | Internal server error |
"Provision a SCIM enterprise user"에 대한 코드 샘플
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
요청 예제
curl -L \
-X POST \
-H "Accept: application/scim+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/scim/v2/enterprises/ENTERPRISE/Users \
-d '{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"externalId":"E012345","active":true,"userName":"E012345","name":{"formatted":"Ms. Mona Lisa Octocat","familyName":"Octocat","givenName":"Mona","middleName":"Lisa"},"displayName":"Mona Lisa","emails":[{"value":"mlisa@example.com","type":"work","primary":true}],"roles":[{"value":"User","primary":false}]}'
User has been created
Status: 201
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "7fce0092-d52e-4f76-b727-3955bd72c939",
"externalId": "E012345",
"active": true,
"userName": "E012345",
"name": {
"formatted": "Ms. Mona Lisa Octocat",
"familyName": "Octocat",
"givenName": "Mona",
"middleName": "Lisa"
},
"displayName": "Mona Lisa",
"emails": [
{
"value": "mlisa@example.com",
"type": "work",
"primary": true
}
],
"roles": [
{
"value": "User",
"primary": false
}
],
"meta": {
"resourceType": "User",
"created": "2012-03-27T19:59:26.000Z",
"lastModified": "2018-03-27T19:59:26.000Z",
"location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939"
}
}
Get SCIM provisioning information for an enterprise user
Note
SCIM provisioning for users and groups using the REST API is in public preview and subject to change.
Gets information about a SCIM user.
"Get SCIM provisioning information for an enterprise user"에 대한 세분화된 액세스 토큰
이 엔드포인트는 다음 세분화된 토큰 형식에서 작동합니다.:
세분화된 토큰에는 다음 권한 집합이 있어야 합니다.:
- "Enterprise administration" business permissions (write)
"Get SCIM provisioning information for an enterprise user"에 대한 매개 변수
속성, 형식, 설명 |
---|
accept string Setting to |
속성, 형식, 설명 |
---|
scim_user_id string RequiredThe unique identifier of the SCIM user. |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
"Get SCIM provisioning information for an enterprise user"에 대한 HTTP 응답 상태 코드
상태 코드 | 설명 |
---|---|
200 | Success, a user was found |
400 | Bad request |
401 | Authorization failure |
403 | Permission denied |
404 | Resource not found |
429 | Too many requests |
500 | Internal server error |
"Get SCIM provisioning information for an enterprise user"에 대한 코드 샘플
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
요청 예제
curl -L \
-H "Accept: application/scim+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/scim/v2/enterprises/ENTERPRISE/Users/SCIM_USER_ID
Success, a user was found
Status: 200
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "7fce0092-d52e-4f76-b727-3955bd72c939",
"externalId": "E012345",
"active": true,
"userName": "E012345",
"name": {
"formatted": "Ms. Mona Lisa Octocat",
"familyName": "Octocat",
"givenName": "Mona",
"middleName": "Lisa"
},
"displayName": "Mona Lisa",
"emails": [
{
"value": "mlisa@example.com",
"type": "work",
"primary": true
}
],
"roles": [
{
"value": "User",
"primary": false
}
],
"meta": {
"resourceType": "User",
"created": "2012-03-27T19:59:26.000Z",
"lastModified": "2018-03-27T19:59:26.000Z",
"location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939"
}
}
Set SCIM information for a provisioned enterprise user
Note
SCIM provisioning for users and groups using the REST API is in public preview and subject to change.
Replaces an existing provisioned user's information.
You must supply complete user information, just as you would when provisioning them initially. Any previously existing data not provided will be deleted. To update only a specific attribute, refer to the Update an attribute for a SCIM user endpoint.
Warning
Setting active: false
will suspend a user, and their handle and email will be obfuscated.
"Set SCIM information for a provisioned enterprise user"에 대한 세분화된 액세스 토큰
이 엔드포인트는 다음 세분화된 토큰 형식에서 작동합니다.:
세분화된 토큰에는 다음 권한 집합이 있어야 합니다.:
- "Enterprise administration" business permissions (write)
"Set SCIM information for a provisioned enterprise user"에 대한 매개 변수
속성, 형식, 설명 |
---|
accept string Setting to |
속성, 형식, 설명 |
---|
scim_user_id string RequiredThe unique identifier of the SCIM user. |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
속성, 형식, 설명 | |||||
---|---|---|---|---|---|
schemas array of strings RequiredThe URIs that are used to indicate the namespaces of the SCIM schemas.
Supported values are: | |||||
externalId string RequiredA unique identifier for the resource as defined by the provisioning client. | |||||
active boolean RequiredWhether the user active in the IdP. | |||||
userName string RequiredThe username for the user. | |||||
name object | |||||
Properties of |
속성, 형식, 설명 |
---|
formatted string The full name, including all middle names, titles, and suffixes as appropriate, formatted for display. |
familyName string RequiredThe family name of the user. |
givenName string RequiredThe given name of the user. |
middleName string The middle name(s) of the user. |
displayName
string RequiredA human-readable name for the user.
emails
array of objects RequiredThe emails for the user.
Properties of emails
속성, 형식, 설명 |
---|
value string RequiredThe email address. |
type string RequiredThe type of email address. |
primary boolean RequiredWhether this email address is the primary address. |
roles
array of objects The roles assigned to the user.
Properties of roles
속성, 형식, 설명 |
---|
display string |
type string |
value string RequiredThe role value representing a user role in GitHub. 다음 중 하나일 수 있습니다.: |
primary boolean Is the role a primary role for the user. |
"Set SCIM information for a provisioned enterprise user"에 대한 HTTP 응답 상태 코드
상태 코드 | 설명 |
---|---|
200 | User was updated |
400 | Bad request |
401 | Authorization failure |
403 | Permission denied |
404 | Resource not found |
409 | Duplicate record detected |
429 | Too many requests |
500 | Internal server error |
"Set SCIM information for a provisioned enterprise user"에 대한 코드 샘플
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
요청 예제
curl -L \
-X PUT \
-H "Accept: application/scim+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/scim/v2/enterprises/ENTERPRISE/Users/SCIM_USER_ID \
-d '{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"externalId":"E012345","active":true,"userName":"E012345","name":{"formatted":"Ms. Mona Lisa Octocat","familyName":"Octocat","givenName":"Mona","middleName":"Lisa"},"displayName":"Mona Lisa","emails":[{"value":"mlisa@example.com","type":"work","primary":true}],"roles":[{"value":"User","primary":false}]}'
User was updated
Status: 200
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "7fce0092-d52e-4f76-b727-3955bd72c939",
"externalId": "E012345",
"active": true,
"userName": "E012345",
"name": {
"formatted": "Ms. Mona Lisa Octocat",
"familyName": "Octocat",
"givenName": "Mona",
"middleName": "Lisa"
},
"displayName": "Mona Lisa",
"emails": [
{
"value": "mlisa@example.com",
"type": "work",
"primary": true
}
],
"roles": [
{
"value": "User",
"primary": false
}
],
"meta": {
"resourceType": "User",
"created": "2012-03-27T19:59:26.000Z",
"lastModified": "2018-03-27T19:59:26.000Z",
"location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939"
}
}
Update an attribute for a SCIM enterprise user
Note
SCIM provisioning for users and groups using the REST API is in public preview and subject to change.
Update a provisioned user's individual attributes.
To modify a user's attributes, you'll need to provide a Operations
JSON formatted request that includes at least one of the following actions: add, remove, or replace. For specific examples and more information on the SCIM operations format, please refer to the SCIM specification.
Note
Complex SCIM path
selectors that include filters are not supported. For example, a path
selector defined as "path": "emails[type eq \"work\"]"
will be ineffective.
Warning
Setting active: false
will suspend a user, and their handle and email will be obfuscated.
{
"Operations":[{
"op":"replace",
"value":{
"active":false
}
}]
}
"Update an attribute for a SCIM enterprise user"에 대한 세분화된 액세스 토큰
이 엔드포인트는 다음 세분화된 토큰 형식에서 작동합니다.:
세분화된 토큰에는 다음 권한 집합이 있어야 합니다.:
- "Enterprise administration" business permissions (write)
"Update an attribute for a SCIM enterprise user"에 대한 매개 변수
속성, 형식, 설명 |
---|
accept string Setting to |
속성, 형식, 설명 |
---|
scim_user_id string RequiredThe unique identifier of the SCIM user. |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
속성, 형식, 설명 | ||||
---|---|---|---|---|
Operations array of objects Requiredpatch operations list | ||||
Properties of |
속성, 형식, 설명 |
---|
op string Required다음 중 하나일 수 있습니다.: |
path string |
value string Corresponding 'value' of that field specified by 'path' |
schemas
array of strings RequiredundefinedSupported values are: urn:ietf:params:scim:api:messages:2.0:PatchOp
"Update an attribute for a SCIM enterprise user"에 대한 HTTP 응답 상태 코드
상태 코드 | 설명 |
---|---|
200 | Success, user was updated |
400 | Bad request |
401 | Authorization failure |
403 | Permission denied |
404 | Resource not found |
409 | Duplicate record detected |
429 | Too many requests |
500 | Internal server error |
"Update an attribute for a SCIM enterprise user"에 대한 코드 샘플
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
요청 예제
curl -L \
-X PATCH \
-H "Accept: application/scim+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/scim/v2/enterprises/ENTERPRISE/Users/SCIM_USER_ID \
-d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],"Operations":[{"op":"replace","path":"emails[type eq '\''work'\''].value","value":"updatedEmail@microsoft.com"},{"op":"replace","path":"name.familyName","value":"updatedFamilyName"}]}'
Success, user was updated
Status: 200
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "7fce0092-d52e-4f76-b727-3955bd72c939",
"externalId": "E012345",
"active": true,
"userName": "E012345",
"name": {
"formatted": "Ms. Mona Lisa Octocat",
"familyName": "Octocat",
"givenName": "Mona",
"middleName": "Lisa"
},
"displayName": "Mona Lisa",
"emails": [
{
"value": "mlisa@example.com",
"type": "work",
"primary": true
}
],
"roles": [
{
"value": "User",
"primary": false
}
],
"meta": {
"resourceType": "User",
"created": "2012-03-27T19:59:26.000Z",
"lastModified": "2018-03-27T19:59:26.000Z",
"location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939"
}
}
Delete a SCIM user from an enterprise
Note
SCIM provisioning using the REST API is in public preview and subject to change.
Suspends a SCIM user permanently from an enterprise. This action will: remove all the user's data, anonymize their login, email, and display name, erase all external identity SCIM attributes, delete the user's emails, avatar, PATs, SSH keys, OAuth authorizations, GPG keys, and SAML mappings. This action is irreversible.
"Delete a SCIM user from an enterprise"에 대한 세분화된 액세스 토큰
이 엔드포인트는 다음 세분화된 토큰 형식에서 작동합니다.:
세분화된 토큰에는 다음 권한 집합이 있어야 합니다.:
- "Enterprise administration" business permissions (write)
"Delete a SCIM user from an enterprise"에 대한 매개 변수
속성, 형식, 설명 |
---|
accept string Setting to |
속성, 형식, 설명 |
---|
scim_user_id string RequiredThe unique identifier of the SCIM user. |
enterprise string RequiredThe slug version of the enterprise name. You can also substitute this value with the enterprise id. |
"Delete a SCIM user from an enterprise"에 대한 HTTP 응답 상태 코드
상태 코드 | 설명 |
---|---|
204 | User was deleted, no content |
400 | Bad request |
401 | Authorization failure |
403 | Permission denied |
404 | Resource not found |
429 | Too many requests |
500 | Internal server error |
"Delete a SCIM user from an enterprise"에 대한 코드 샘플
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
요청 예제
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/scim/v2/enterprises/ENTERPRISE/Users/SCIM_USER_ID
User was deleted, no content
Status: 204