다음을 통해 공유


User Entitlements - Add

사용자를 추가하고, 라이선스 및 확장을 할당하고, 계정에서 프로젝트 그룹의 구성원으로 만듭니다.

POST https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1

URI 매개 변수

Name In(다음 안에) 필수 형식 Description
organization
path True

string

Azure DevOps 조직의 이름입니다.

api-version
query True

string

사용할 API의 버전입니다. 이 버전의 API를 사용하려면 '7.1'로 설정해야 합니다.

요청 본문

Name 형식 Description
accessLevel

AccessLevel

라이선스로 표시된 멤버의 액세스 수준입니다.

dateCreated

string (date-time)

[읽기 전용] 멤버가 컬렉션에 추가된 날짜입니다.

groupAssignments

GroupEntitlement[]

[읽기 전용] 이 멤버가 속한 GroupEntitlements입니다.

id

string (uuid)

GraphMember와 연결된 ID의 ID와 일치하는 고유 식별자입니다.

lastAccessedDate

string (date-time)

[읽기 전용] 멤버가 컬렉션에 마지막으로 액세스한 날짜입니다.

projectEntitlements

ProjectEntitlement[]

해당 프로젝트에서 프로젝트와 멤버의 유효 사용 권한 간의 관계입니다.

user

GraphUser

사용자 참조입니다.

응답

Name 형식 Description
200 OK

UserEntitlementsPostResponse

성공한 작업

보안

oauth2

형식: oauth2
Flow: accessCode
권한 부여 URL: https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
토큰 URL: https://app.vssps.visualstudio.com/oauth2/token?client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer

범위

Name Description
vso.memberentitlementmanagement_write 사용자, 라이선스 및 액세스할 수 있는 프로젝트 및 확장을 관리할 수 있는 기능을 부여합니다.

예제

샘플 요청

POST https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1

{
  "accessLevel": {
    "licensingSource": "account",
    "accountLicenseType": "express"
  },
  "extensions": [
    {
      "id": "ms.feed"
    }
  ],
  "user": {
    "principalName": "newuser@fabrikam.com",
    "subjectKind": "user"
  },
  "projectEntitlements": [
    {
      "group": {
        "groupType": "projectContributor"
      },
      "projectRef": {
        "id": "e5943a98-a842-4001-bd3b-06e756a7dfac"
      }
    }
  ]
}

샘플 응답

{
  "operationResult": {
    "isSuccess": true,
    "errors": [],
    "userId": "08bbffa9-4944-4a98-b0c0-1fa718d5de3d",
    "result": {
      "id": "08bbffa9-4944-4a98-b0c0-1fa718d5de3d",
      "user": {
        "subjectKind": "user",
        "domain": "14c5367e-ee12-4c94-98b8-b52c1fe3cfb1",
        "principalName": "newuser@fabrikam.com",
        "mailAddress": "newuser@fabrikam.com",
        "origin": "aad",
        "originId": "00000000-0000-0000-0000-000000000000",
        "displayName": "newuser@fabrikam.com",
        "_links": {
          "self": {
            "href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
          },
          "memberships": {
            "href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/memberships/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
          },
          "membershipState": {
            "href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/membershipstates/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
          },
          "storageKey": {
            "href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/storagekeys/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
          }
        },
        "url": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv",
        "descriptor": "aad.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
      },
      "accessLevel": {
        "licensingSource": "account",
        "accountLicenseType": "express",
        "msdnLicenseType": "none",
        "licenseDisplayName": "Basic",
        "status": "pending",
        "statusMessage": "",
        "assignmentSource": "unknown"
      },
      "lastAccessedDate": "0001-01-01T08:00:00Z",
      "projectEntitlements": [],
      "extensions": [],
      "groupAssignments": []
    }
  },
  "isSuccess": true,
  "userEntitlement": {
    "id": "08bbffa9-4944-4a98-b0c0-1fa718d5de3d",
    "user": {
      "subjectKind": "user",
      "domain": "14c5367e-ee12-4c94-98b8-b52c1fe3cfb1",
      "principalName": "newuser@fabrikam.com",
      "mailAddress": "newuser@fabrikam.com",
      "origin": "aad",
      "originId": "00000000-0000-0000-0000-000000000000",
      "displayName": "newuser@fabrikam.com",
      "_links": {
        "self": {
          "href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
        },
        "memberships": {
          "href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/memberships/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
        },
        "membershipState": {
          "href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/membershipstates/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
        },
        "storageKey": {
          "href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/storagekeys/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
        }
      },
      "url": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv",
      "descriptor": "aad.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
    },
    "accessLevel": {
      "licensingSource": "account",
      "accountLicenseType": "express",
      "msdnLicenseType": "none",
      "licenseDisplayName": "Basic",
      "status": "pending",
      "statusMessage": "",
      "assignmentSource": "unknown"
    },
    "lastAccessedDate": "0001-01-01T08:00:00Z",
    "projectEntitlements": [],
    "extensions": [],
    "groupAssignments": []
  }
}

정의

Name Description
AccessLevel

사용자에게 할당된 라이선스

AccountLicenseType

계정 라이선스 유형(예: Express, 관련자 등). AccountLicenseType을 사용하려면 LicensingSource를 요청 본문에서 '계정'으로 정의해야 합니다.

AccountUserStatus

계정의 사용자 상태

AssignmentSource

라이선스의 할당 원본(예: 그룹, 알 수 없음 등)

GraphGroup

그래프 그룹 엔터티

GraphUser
Group

프로젝트 그룹(예: 기여자, 읽기 권한자 등)

GroupEntitlement

라이선스, 확장 및 프로젝트 멤버 자격을 비롯한 추가 속성이 있는 그룹 엔터티

GroupLicensingRuleStatus

그룹 규칙의 상태입니다.

GroupType

그룹 유형

LicensingSource

라이선스 원본(예: 계정) MSDN 등)

MsdnLicenseType

MSDN 라이선스 유형(예: Visual Studio Professional, Visual Studio Enterprise 등). MsdnLicenseType을 사용하려면 요청 본문에서 LicensingSource를 'msdn'으로 정의해야 합니다.

ProjectEntitlement

프로젝트와 해당 프로젝트의 사용자 유효 권한 간의 관계입니다.

ProjectPermissionInherited

사용자가 Azure DevOps 또는 AAD 그룹 멤버 자격을 통해 프로젝트에 권한을 상속하는지 여부입니다.

ProjectRef

프로젝트에 대한 참조

ReferenceLinks

REST 참조 링크의 컬렉션을 나타내는 클래스입니다.

TeamRef

팀에 대한 참조

UserEntitlement

라이선스, 확장 및 프로젝트 멤버 자격을 비롯한 추가 속성이 있는 사용자 엔터티

UserEntitlementOperationResult
UserEntitlementsPostResponse

AccessLevel

사용자에게 할당된 라이선스

Name 형식 Description
accountLicenseType

AccountLicenseType

계정 라이선스 유형(예: Express, 관련자 등). AccountLicenseType을 사용하려면 LicensingSource를 요청 본문에서 '계정'으로 정의해야 합니다.

assignmentSource

AssignmentSource

라이선스의 할당 원본(예: 그룹, 알 수 없음 등)

licenseDisplayName

string

라이선스의 표시 이름

licensingSource

LicensingSource

라이선스 원본(예: 계정) MSDN 등)

msdnLicenseType

MsdnLicenseType

MSDN 라이선스 유형(예: Visual Studio Professional, Visual Studio Enterprise 등). MsdnLicenseType을 사용하려면 요청 본문에서 LicensingSource를 'msdn'으로 정의해야 합니다.

status

AccountUserStatus

계정의 사용자 상태

statusMessage

string

상태 메시지입니다.

AccountLicenseType

계정 라이선스 유형(예: Express, 관련자 등). AccountLicenseType을 사용하려면 LicensingSource를 요청 본문에서 '계정'으로 정의해야 합니다.

Description
advanced
earlyAdopter
express
none
professional
stakeholder

AccountUserStatus

계정의 사용자 상태

Description
active

사용자가 VSTS 계정에 한 번 이상 로그인했습니다.

deleted

VSTS 계정 관리자가 VSTS 계정에서 사용자를 제거합니다.

disabled

사용자가 로그인할 수 없습니다. 주로 관리자가 부재 또는 라이선스 재할당으로 인해 사용자를 일시적으로 제거하는 데 사용됩니다.

expired

사용자가 로그인할 수 있습니다. 라이선스가 만료된 상태에서 유예 기간을 부여할 때 주로 사용됩니다.

none
pending

사용자가 VSTS 계정 관리자가 VSTS 계정에 가입하도록 초대되었지만 아직 등록/로그인하지 않았습니다.

pendingDisabled

사용자가 사용하지 않도록 설정되었습니다. 다시 활성화하면 보류 중 상태가 됩니다.

AssignmentSource

라이선스의 할당 원본(예: 그룹, 알 수 없음 등)

Description
groupRule
none
unknown

GraphGroup

그래프 그룹 엔터티

Name 형식 Description
_links

ReferenceLinks

이 필드에는 그래프 제목에 대한 0개 이상의 흥미로운 링크가 포함되어 있습니다. 이러한 링크를 호출하여 이 그래프 제목에 대한 추가 관계 또는 자세한 정보를 얻을 수 있습니다.

description

string

인간 독자가 비슷한 이름으로 그룹을 구분하는 데 도움이 되는 짧은 문구

descriptor

string

설명자는 시스템이 실행되는 동안 그래프 제목을 참조하는 기본 방법입니다. 이 필드는 계정과 조직 모두에서 동일한 그래프 제목을 고유하게 식별합니다.

displayName

string

그래프 주체의 고유하지 않은 표시 이름입니다. 이 필드를 변경하려면 원본 공급자에서 해당 값을 변경해야 합니다.

domain

string

그래프 멤버의 원본 컨테이너 이름을 나타냅니다. (MSA의 경우 "Windows Live ID", AD의 경우 도메인 이름, 디렉터리의 테넌트 ID AAD, VSTS 그룹 ScopeId 등)입니다.

legacyDescriptor

string

[내부 사용 전용] ID 설명자를 사용하여 이전 버전 IMS에 액세스해야 하는 경우 레거시 설명자가 여기에 있습니다.

mailAddress

string

지정된 그래프 멤버에 대한 레코드의 전자 메일 주소입니다. 이는 보안 주체 이름과 다를 수 있습니다.

origin

string

원본 식별자에 대한 원본 공급자 유형(예: AD, AAD, MSA)

originId

string

원본 시스템의 고유 식별자입니다. 일반적으로 sid, 개체 ID 또는 Guid입니다. 연결 및 연결 해제 작업으로 인해 사용자가 다른 공급자에 의해 지원되지 않고 새 공급자에서 다른 고유 ID를 가지므로 사용자에 대해 이 값이 변경될 수 있습니다.

principalName

string

원본 공급자에서 이 그래프 멤버의 PrincipalName입니다. 원본 공급자는 시간이 지남에 따라 이 필드를 변경할 수 있으며 VSTS에서 그래프 멤버의 수명 동안 변경할 수 없음을 보장하지 않습니다.

subjectKind

string

이 필드는 그래프 주체의 형식을 식별합니다(예: 그룹, 범위, 사용자).

url

string

이 URL은 이 그래프 주체의 원본 리소스에 대한 전체 경로입니다.

GraphUser

Name 형식 Description
_links

ReferenceLinks

이 필드에는 그래프 제목에 대한 0개 이상의 흥미로운 링크가 포함되어 있습니다. 이러한 링크를 호출하여 이 그래프 제목에 대한 추가 관계 또는 자세한 정보를 얻을 수 있습니다.

descriptor

string

설명자는 시스템이 실행되는 동안 그래프 제목을 참조하는 기본 방법입니다. 이 필드는 계정과 조직 모두에서 동일한 그래프 제목을 고유하게 식별합니다.

directoryAlias

string

지원 디렉터리에 있는 사용자의 짧고 일반적으로 고유한 이름입니다. AAD 사용자의 경우@ 기호 앞에 있는 사용자의 메일 주소 부분과 유사하지는 않지만 메일 애칭에 해당합니다. GitHub 사용자의 경우 GitHub 사용자 핸들에 해당합니다.

displayName

string

그래프 주체의 고유하지 않은 표시 이름입니다. 이 필드를 변경하려면 원본 공급자에서 해당 값을 변경해야 합니다.

domain

string

그래프 멤버의 원본 컨테이너 이름을 나타냅니다. (MSA의 경우 "Windows Live ID", AD의 경우 도메인 이름, 디렉터리의 테넌트 ID AAD, VSTS 그룹 ScopeId 등)입니다.

isDeletedInOrigin

boolean

true이면 ID 공급자에서 그룹이 삭제되었습니다.

legacyDescriptor

string

[내부 사용 전용] ID 설명자를 사용하여 이전 버전 IMS에 액세스해야 하는 경우 레거시 설명자가 여기에 있습니다.

mailAddress

string

지정된 그래프 멤버에 대한 레코드의 전자 메일 주소입니다. 이는 보안 주체 이름과 다를 수 있습니다.

metaType

string

원본에 있는 사용자의 메타 형식(예: "member", "guest" 등)입니다. 가능한 값 집합은 UserMetaType을 참조하세요.

origin

string

원본 식별자에 대한 원본 공급자 유형(예: AD, AAD, MSA)

originId

string

원본 시스템의 고유 식별자입니다. 일반적으로 sid, 개체 ID 또는 Guid입니다. 연결 및 연결 해제 작업으로 인해 사용자가 다른 공급자에 의해 지원되지 않고 새 공급자에서 다른 고유 ID를 가지므로 사용자에 대해 이 값이 변경될 수 있습니다.

principalName

string

원본 공급자에서 이 그래프 멤버의 PrincipalName입니다. 원본 공급자는 시간이 지남에 따라 이 필드를 변경할 수 있으며 VSTS에서 그래프 멤버의 수명 동안 변경할 수 없음을 보장하지 않습니다.

subjectKind

string

이 필드는 그래프 주체의 형식을 식별합니다(예: 그룹, 범위, 사용자).

url

string

이 URL은 이 그래프 주체의 원본 리소스에 대한 전체 경로입니다.

Group

프로젝트 그룹(예: 기여자, 읽기 권한자 등)

Name 형식 Description
displayName

string

그룹의 표시 이름

groupType

GroupType

그룹 유형

GroupEntitlement

라이선스, 확장 및 프로젝트 멤버 자격을 비롯한 추가 속성이 있는 그룹 엔터티

Name 형식 Description
group

GraphGroup

멤버 참조입니다.

id

string (uuid)

GraphMember의 ID와 일치하는 고유 식별자입니다.

lastExecuted

string (date-time)

[읽기 전용] 그룹 라이선스 규칙이 마지막으로 실행된 시간입니다(변경 여부에 관계 없이).

licenseRule

AccessLevel

라이선스 규칙입니다.

members

UserEntitlement[]

그룹 구성원. 새 그룹을 만들 때만 사용됩니다.

projectEntitlements

ProjectEntitlement[]

해당 프로젝트에서 프로젝트와 멤버의 유효 사용 권한 간의 관계입니다.

status

GroupLicensingRuleStatus

그룹 규칙의 상태입니다.

GroupLicensingRuleStatus

그룹 규칙의 상태입니다.

Description
applied

규칙이 적용됨

applyPending

규칙이 만들어지거나 업데이트되었지만 적용이 보류 중입니다.

incompatible

그룹 규칙이 호환되지 않음

unableToApply

규칙이 예기치 않게 적용되지 못하여 다시 시도해야 합니다.

GroupType

그룹 유형

Description
custom
projectAdministrator
projectContributor
projectReader
projectStakeholder

LicensingSource

라이선스 원본(예: 계정) MSDN 등)

Description
account
auto
msdn
none
profile
trial

MsdnLicenseType

MSDN 라이선스 유형(예: Visual Studio Professional, Visual Studio Enterprise 등). MsdnLicenseType을 사용하려면 요청 본문에서 LicensingSource를 'msdn'으로 정의해야 합니다.

Description
eligible
enterprise
none
platforms
premium
professional
testProfessional
ultimate

ProjectEntitlement

프로젝트와 해당 프로젝트의 사용자 유효 권한 간의 관계입니다.

Name 형식 Description
assignmentSource

AssignmentSource

배정 원본(예: 그룹 또는 알 수 없음).

group

Group

프로젝트 그룹(예: 기여자, 읽기 권한자 등)

projectPermissionInherited

ProjectPermissionInherited

사용자가 Azure DevOps 또는 AAD 그룹 멤버 자격을 통해 프로젝트에 권한을 상속하는지 여부입니다.

projectRef

ProjectRef

Project Ref

teamRefs

TeamRef[]

팀 참조.

ProjectPermissionInherited

사용자가 Azure DevOps 또는 AAD 그룹 멤버 자격을 통해 프로젝트에 권한을 상속하는지 여부입니다.

Description
inherited
notInherited
notSet

ProjectRef

프로젝트에 대한 참조

Name 형식 Description
id

string (uuid)

프로젝트 ID입니다.

name

string

프로젝트 이름입니다.

REST 참조 링크의 컬렉션을 나타내는 클래스입니다.

Name 형식 Description
links

object

링크의 읽기 전용 보기입니다. 참조 링크는 읽기 전용이므로 읽기 전용으로만 노출하려고 합니다.

TeamRef

팀에 대한 참조

Name 형식 Description
id

string (uuid)

팀 ID

name

string

팀 이름

UserEntitlement

라이선스, 확장 및 프로젝트 멤버 자격을 비롯한 추가 속성이 있는 사용자 엔터티

Name 형식 Description
accessLevel

AccessLevel

라이선스로 표시된 멤버의 액세스 수준입니다.

dateCreated

string (date-time)

[읽기 전용] 멤버가 컬렉션에 추가된 날짜입니다.

groupAssignments

GroupEntitlement[]

[읽기 전용] 이 멤버가 속한 GroupEntitlements입니다.

id

string (uuid)

GraphMember와 연결된 ID의 ID와 일치하는 고유 식별자입니다.

lastAccessedDate

string (date-time)

[읽기 전용] 멤버가 컬렉션에 마지막으로 액세스한 날짜입니다.

projectEntitlements

ProjectEntitlement[]

해당 프로젝트에서 프로젝트와 멤버의 유효 사용 권한 간의 관계입니다.

user

GraphUser

사용자 참조입니다.

UserEntitlementOperationResult

Name 형식 Description
errors

object[]

해당 오류 메시지와 쌍을 이루는 오류 코드 목록입니다.

isSuccess

boolean

작업의 성공 상태입니다.

result

string (T)

결과 권한 속성입니다. 특정 구현은 다음을 참조하세요.

userId

string (uuid)

작업 중인 멤버의 식별자입니다.

UserEntitlementsPostResponse

Name 형식 Description
isSuccess

boolean

모든 작업이 성공한 경우 True입니다.

operationResult

UserEntitlementOperationResult

작업 결과입니다.

userEntitlement

UserEntitlement

작업이 적용된 후 사용자 자격의 결과입니다.