Share via


Service Principals - Create

Materialize uma entidade de serviço do AAD existente na conta do ADO.

OBSERVAÇÃO: as entidades de serviço criadas não estão ativas em uma conta.

A adição de uma entidade de serviço a uma conta é necessária para que a entidade de serviço possa ser adicionada a grupos do ADO ou atribuída a um ativo.

O corpo da solicitação deve ser um tipo derivado de GraphServicePrincipalCreationContext:

  • GraphServicePrincipalOriginIdCreationContext - Crie uma nova entidade de serviço usando o OriginID como referência a uma entidade de serviço existente do provedor com suporte do AAD.

Se a entidade de serviço a ser adicionada corresponder a uma entidade de serviço que foi excluída anteriormente, essa entidade de serviço será restaurada.

Opcionalmente, você pode adicionar a entidade de serviço recém-criada como membro de um grupo do ADO existente e/ou especificar uma chave de armazenamento personalizada para a entidade de serviço.

POST https://vssps.dev.azure.com/{organization}/_apis/graph/serviceprincipals?api-version=7.1-preview.1
POST https://vssps.dev.azure.com/{organization}/_apis/graph/serviceprincipals?groupDescriptors={groupDescriptors}&api-version=7.1-preview.1

Parâmetros de URI

Nome Em Obrigatório Tipo Description
organization
path True

string

O nome da organização do Azure DevOps.

api-version
query True

string

Versão da API a ser usada. Isso deve ser definido como '7.1-preview.1' para usar essa versão da api.

groupDescriptors
query

string

array (string)

Uma lista separada por vírgulas de descritores de grupos que você deseja que a entidade de serviço de grafo ingresse

Corpo da solicitação

Nome Tipo Description
storageKey

string

Opcional: se fornecido, usaremos esse identificador para a chave de armazenamento da entidade de serviço criada

Respostas

Nome Tipo Description
200 OK

GraphServicePrincipal

operação bem-sucedida

Segurança

oauth2

Type: oauth2
Flow: accessCode
Authorization URL: https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
Token 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

Scopes

Nome Description
vso.graph_manage Concede a capacidade de ler informações de associação de usuário, grupo, escopo e grupo e adicionar usuários, grupos e gerenciar associações de grupo

Exemplos

Sample Request

POST https://vssps.dev.azure.com/{organization}/_apis/graph/serviceprincipals?api-version=7.1-preview.1

{
  "originId": "053b9e43-b344-4d53-897f-fe5d9c016625"
}

Sample Response

{
  "subjectKind": "servicePrincipal",
  "applicationId": "7adff1a5-9d3f-407d-8b79-4dd547d472b1",
  "directoryAlias": "053b9e43-b344-4d53-897f-fe5d9c016625",
  "domain": "62e2ee3f-dbd4-48d8-9b85-4a3776783e13",
  "principalName": "053b9e43-b344-4d53-897f-fe5d9c016625",
  "mailAddress": null,
  "origin": "aad",
  "originId": "053b9e43-b344-4d53-897f-fe5d9c016625",
  "displayName": "ServicePrincipalDisplayName",
  "_links": {
    "self": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/ServicePrincipals/aadsp.ZTM1NTU0YzUtMjg2MC03MWFkLWIzYjAtNzkzNWViMDg1Njg3"
    },
    "memberships": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Memberships/aadsp.ZTM1NTU0YzUtMjg2MC03MWFkLWIzYjAtNzkzNWViMDg1Njg3"
    },
    "membershipState": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/MembershipStates/aadsp.ZTM1NTU0YzUtMjg2MC03MWFkLWIzYjAtNzkzNWViMDg1Njg3"
    },
    "storageKey": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/StorageKeys/aadsp.ZTM1NTU0YzUtMjg2MC03MWFkLWIzYjAtNzkzNWViMDg1Njg3"
    },
    "avatar": {
      "href": "https://dev.azure.com/Fabrikam/_apis/GraphProfile/MemberAvatars/aadsp.ZTM1NTU0YzUtMjg2MC03MWFkLWIzYjAtNzkzNWViMDg1Njg3"
    }
  },
  "url": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/ServicePrincipals/aadsp.ZTM1NTU0YzUtMjg2MC03MWFkLWIzYjAtNzkzNWViMDg1Njg3",
  "descriptor": "aadsp.ZTM1NTU0YzUtMjg2MC03MWFkLWIzYjAtNzkzNWViMDg1Njg3"
}

Definições

Nome Description
GraphServicePrincipal
GraphServicePrincipalCreationContext

Não tente usar esse tipo para criar uma nova entidade de serviço. Em vez disso, use uma das subclasses. Esse tipo não contém campos suficientes para criar uma nova entidade de serviço.

ReferenceLinks

A classe para representar uma coleção de links de referência REST.

GraphServicePrincipal

Nome Tipo Description
_links

ReferenceLinks

Esse campo contém zero ou mais links interessantes sobre o assunto do grafo. Esses links podem ser invocados para obter relações adicionais ou informações mais detalhadas sobre esse assunto do grafo.

applicationId

string

descriptor

string

O descritor é a principal maneira de referenciar o assunto do grafo enquanto o sistema está em execução. Esse campo identificará exclusivamente o mesmo assunto de grafo entre contas e organizações.

directoryAlias

string

O nome curto, geralmente exclusivo para o usuário no diretório de suporte. Para usuários do AAD, isso corresponde ao apelido de email, que geralmente é, mas não necessariamente semelhante à parte do endereço de email do usuário antes do sinal @. Para usuários do GitHub, isso corresponde ao identificador de usuário do GitHub.

displayName

string

Esse é o nome de exibição não exclusivo do assunto do grafo. Para alterar esse campo, você deve alterar seu valor no provedor de origem.

domain

string

Isso representa o nome do contêiner de origem de um membro do grafo. (Para MSA, este é "Windows Live ID", para AD o nome do domínio, para o AAD a tenantID do diretório, para grupos VSTS, ScopeId etc.

isDeletedInOrigin

boolean

Quando true, o grupo foi excluído no provedor de identidade

legacyDescriptor

string

[Somente uso interno] O descritor herdado está aqui caso você precise acessar a versão antiga do IMS usando o descritor de identidade.

mailAddress

string

O endereço de email do registro de um determinado membro do grafo. Isso pode ser diferente do nome da entidade de segurança.

metaType

string

O meta tipo do usuário na origem, como "membro", "convidado", etc. Consulte UserMetaType para obter o conjunto de valores possíveis.

origin

string

O tipo de provedor de origem para o identificador de origem (ex:AD, AAD, MSA)

originId

string

O identificador exclusivo do sistema de origem. Normalmente, um sid, id de objeto ou Guid. As operações de vinculação e desvinculação podem fazer com que esse valor seja alterado para um usuário porque o usuário não tem o suporte de um provedor diferente e tem uma ID exclusiva diferente no novo provedor.

principalName

string

Este é o PrincipalName desse membro de grafo do provedor de origem. O provedor de origem pode alterar esse campo ao longo do tempo e não é garantido que ele seja imutável durante a vida útil do membro do grafo pelo VSTS.

subjectKind

string

Esse campo identifica o tipo da entidade do grafo (por exemplo: Grupo, Escopo, Usuário).

url

string

Essa URL é a rota completa para o recurso de origem desta entidade de grafo.

GraphServicePrincipalCreationContext

Não tente usar esse tipo para criar uma nova entidade de serviço. Em vez disso, use uma das subclasses. Esse tipo não contém campos suficientes para criar uma nova entidade de serviço.

Nome Tipo Description
storageKey

string

Opcional: se fornecido, usaremos esse identificador para a chave de armazenamento da entidade de serviço criada

A classe para representar uma coleção de links de referência REST.

Nome Tipo Description
links

object

A exibição somente leitura dos links. Como os links de referência são somente leitura, só queremos expô-los como somente leitura.