Table of contents

Unidades administrativas (visualização) | Conceitos da API do GraphAdministrative units (preview) | Graph API concepts

Bryan Lamos|Última Atualização: 19/06/2018
|
2 Colaboradores

Aplica-se a: API do Graph | Azure AD (Active Directory)Applies to: Graph API | Azure Active Directory (AD)

Visão geral e pré-requisitos Overview and prerequisites

Uma Unidade Administrativa fornece um contêiner conceitual para objetos de diretório de Usuário e Grupo, permitindo que as permissões sejam delegadas em uma granularidade maior (ou seja: departamentais, regional etc.), funções administrativas no escopo da Unidade Administrativa.An Administrative Unit provides a conceptual container for User and Group directory objects, enabling permissions to be delegated at a finer granularity (ie: departmental, regional, etc.), to administrative roles scoped to the Administrative Unit.Este tópico fornece descrições das propriedades declaradas e propriedades de navegação pela entidade AdministrativeUnit, bem como as operações e funções que podem ser chamadas no recurso do OData administrativeUnits.This topic provides descriptions of the declared properties and navigation properties exposed by the AdministrativeUnit entity, as well as the operations and functions that can be called on the administrativeUnits OData resource.

Importante

Recomendamos que você use o Microsoft Graph em vez da API do Azure AD Graph para acessar os recursos do Azure Active Directory.We strongly recommend that you use Microsoft Graph instead of Azure AD Graph API to access Azure Active Directory resources.Nossos esforços de implantação agora estão concentrados no Microsoft Graph e não há planos de novos aprimoramento para a API do Azure AD Graph.Our development efforts are now concentrated on Microsoft Graph and no further enhancements are planned for Azure AD Graph API.Há um número muito limitado de cenários para os quais a API do Azure AD Graph ainda pode ser adequada. Para saber mais, confira a postagem do blog sobre Microsoft Graph ou Azure AD Graph no Centro de Desenvolvimento do Office.There are a very limited number of scenarios for which Azure AD Graph API might still be appropriate; for more information, see the Microsoft Graph or the Azure AD Graph blog post in the Office Dev Center.

A familiaridade com a configuração do aplicativo e autenticação do Azure AD também é necessária antes de usar a Visualização da Unidade Administrativa.Familiarity with Azure AD authentication and application configuration is necessary before using the Administrative Unit Preview.Se você não estiver familiarizado com os conceitos associados à autenticação do Azure AD e/ou com as etapas de configuração necessárias para permitir que um aplicativo acesse seu locatário, examine Cenários de Autenticação do Azure AD, especificamente, a seção intitulada Noções Básicas Sobre o Registro de um Aplicativo no Azure AD, que está vinculado ao artigo mais detalhado Integrando Aplicativos com o Azure Active Directory.If you are unfamiliar with the concepts associated with Azure AD authentication, and/or the configuration steps required to allow an application to access your tenant, please review Authentication Scenarios for Azure AD, particularly the section titled Basics of Registering an Application in Azure AD which links to a more detailed Integrating Applications with Azure Active Directory article.

Consulte o artigo principal API do Graph do Azure Active Directory em Azure.com e a seguinte lista de artigos da API do Graph para obter informações adicionais úteis e importantes antes de prosseguir para as seções a seguir:Please refer to the main Azure Active Directory Graph API article on Azure.com and the following list of Graph API articles for additional important and helpful information before proceeding to the sections below:

  1. Versão da API do Azure AD GraphAzure AD Graph API Versioning

    Importante: o recurso da Unidade Administrativa está disponível somente para Visualização no momento.Important: The Administrative Unit feature is available in Preview only at this time.Para usar recursos de visualização, certifique-se de definir o parâmetro de cadeia de caracteres de consulta de versão de api para "beta", ou seja: https://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits?api-version=betaIn order to use preview features, please be sure to set the api-version query string parameter to “beta”, ie: https://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits?api-version=beta

    Você pode criar e usar unidades administrativas somente se você habilitar o Active Directory Premium do Azure.You can create and use administrative units only if you enable Azure Active Directory Premium.Para obter mais informações, consulte Getting started with Azure Active Directory Premium (Introdução ao Azure Active Directory Premium)For more information, see Getting started with Azure Active Directory Premium

  2. Início Rápido para a API do Azure AD Graph no Azure.comQuickstart for the Azure AD Graph API on Azure.com

  3. Visão geral das Operações da API do GraphGraph API Operations overview

  4. Opções de consultas, filtros e paginação com suporteSupported queries, filters, and paging options

Namespace e herançaNamespace and Inheritance

Namespace: Microsoft.DirectoryServicesNamespace: Microsoft.DirectoryServices

Tipo de base: DirectoryObjectBase type: DirectoryObject

PropriedadesProperties

A entidade AdministrativeUnit dá suporte às seguintes propriedades:The AdministrativeUnit entity supports the following properties:

Propriedades declaradasDeclared Properties

NomeNameTipoTypeCreate(POST)Create(POST)Read(GET)Read(GET)Update(PATCH)Update(PATCH)DescriçãoDescription
descriçãodescriptionEdm.StringEdm.StringOpcionalOptionalOpcionalOptionalUma descrição opcional para a unidade administrativa.An optional description for the administrative unit.
displayNamedisplayNameEdm.StringEdm.StringNecessáriaRequiredFiltrávelFilterableOpcionalOptionalNome de exibição da unidade administrativa.Display name for the administrative unit.
NomeNameMultiplicidade de origemFrom MultiplicityParaToMultiplicidade de destinoTo MultiplicityDescriçãoDescription
membrosmembers*Usuário ou GrupoUser or Group*Membros atribuídos à Unidade Administrativa, que podem ser Usuários ou Grupos.Members assigned to the Administrative Unit, which can be Users or Groups.Herdado de DirectoryObject.Inherited from DirectoryObject.
scopedAdministratorsscopedAdministrators*ScopedRoleMembershipScopedRoleMembership*Administradores atribuídos para determinada Função, que têm o escopo para uma Unidade Administrativa.Administrators assigned to given Role(s), which are scoped to an Administrative Unit.

Observação: embora a entidade DirectoryObject também dê suporte a outras propriedades de navegação, incluindo memberOf, owners e ownedObjects, essas propriedades não são válidas para a Unidade Administrativa.Note: Although the DirectoryObject entity also supports other navigation properties, including memberOf, owners, and ownedObjects, these properties are not valid for Administrative Unit.Se uma solicitação para qualquer uma dessas propriedades for enviada, uma resposta 400 Solicitação Incorreta será retornada com uma mensagem de erro correspondente.If a request for any of these properties is sent, a 400 Bad Request response is returned with a corresponding error message.

EndereçamentoAddressing

O endereçamento pode abranger uma coleção de unidades administrativas no diretório, uma unidade administrativa individual ou recursos relacionados disponíveis por meio de propriedades de navegação com suporte de uma unidade administrativa.Addressing can span a collection of administrative units in the directory, an individual administrative unit, or related resources available via the supported navigation properties of an administrative unit.Os exemplos na tabela usam o domínio de locatário para tratar o locatário.The examples in the table use the tenant domain to address the tenant.Para obter maneiras de abordar um locatário, consulte Addressing Entities and Operations in the Graph API (Endereçando Entidades e Operações na API do Graph).For other ways of addressing the tenant, see Addressing Entities and Operations in the Graph API.

ArtefatoArtifactFragmento de URLURL fragmentExemploExample
Conjunto de recursos (todas as unidades administrativas)Resource set (all administrative units)/administrativeUnits/administrativeUnitshttps://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits?api-version=beta
Recurso único (por exemplo: uma unidade administrativa)Single resource (ie: one administrative unit)/administrativeUnits/{objectId}/administrativeUnits/{objectId}https://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits/12345678-9abc-def0-1234-56789abcde?api-version=beta
Recursos relacionados por meio de uma propriedade de NavegaçãoRelated resources via a Navigation property/administrativeUnits/{objectId}/$links/{property-name}/administrativeUnits/{objectId}/$links/{property-name}https://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits/12345678-9abc-def0-1234-56789abcde/$links/members?api-version=beta

Observação: consulte a seção Propriedades de Navegação acima para obter a lista de propriedades de navegação válidas que podem ser usadas no lugar de {property-name}.Note: See the Navigation Properties section above for the list of valid navigation properties that can be used in place of {property-name}.Remova o segmento “$links” da parte do caminho de recursos do URI para retornar os objetos referenciados por uma propriedade de navegação, em vez dos links que levarão a eles.Remove the “$links” segment from the resource path portion of the URI, to return the actual objects referenced by a navigation property rather than links to them.Você também pode endereçar com uma unidade administrativa usando objetos de diretório genéricos, substituindo “administrativeUnits” por “directoryObjects” na parte do caminho de recursos do URI.You may also address an administrative unit using generic directory objects, by replacing “administrativeUnits” with “directoryObjects” in the resource path portion of the URI.

Para obter informações mais abrangentes sobre como consultar objetos de diretório, consulte Azure AD Graph API Common Queries (Consultas Comuns da API do Graph do Azure AD) e Azure AD Graph API Differential Query (Consulta Diferencial da API do Graph do Azure AD).For more comprehensive information about querying directory objects, see Azure AD Graph API Common Queries and Azure AD Graph API Differential Query.

Operações com Suporte – administrativeUnitsSupported Operations – administrativeUnits

Esta seção define as operações com suporte em um conjunto de recursos de administrativeUnits.This section defines the operations supported on an administrativeUnits resource set.Como mencionado anteriormente, é importante examinar os tópicos na seção Visão Geral e Pré-requisitos para entender alguns dos conceitos básicos da API do Graph que se aplicam a todas as entidades, como formatação correta de URLs, abordagem de entidades e operações, uso de versões e muito mais.As mentioned earlier, it’s important to review the topics in the Overview and Prerequisites section first to understand some of the Graph API basics that apply to all entities, such as correctly formatting URLs, addressing entities and operations, using versioning, and more.

Para cada uma das operações listadas abaixo:For each of the operations listed below:

  • A entidade de segurança que executa a operação deve estar em uma função de administrador que tem privilégios para modificar recursos de administrativeUnits usando solicitações PATCH, POST ou DELETE e privilégios para ler objetos usando solicitações GET.The principal that performs the operation must be in an administrator role that has privileges to modify administrativeUnits resources using PATCH, POST, or DELETE requests, and privileges to read objects using GET requests.

  • Conforme apropriado, substitua as cadeias de caracteres de espaço reservado “contoso.onmicrosoft.com” pelo domínio do seu locatário do Azure Active Directory e {objectId} pela ID do tipo de recurso, conforme determinado na URL.As appropriate, replace the placeholder strings “contoso.onmicrosoft.com” with the domain of your Azure Active Directory tenant, and {objectId} with the ID of the resource type as determined in the URL.

  • Cada solicitação deve incluir os seguintes cabeçalhos de Solicitação HTTP na tabela a seguir.Each request must include the following HTTP Request headers in the table below.

Cabeçalho de solicitaçãoRequest HeaderDescriçãoDescription
AuthorizationAuthorizationObrigatório.Required.Um token de portador emitido pelo Active Directory do Azure.A bearer token issued by Azure Active Directory.Consulte Authentication Scenarios for Azure AD (Cenários de Autenticação do Azure AD) para obter mais informações.See Authentication Scenarios for Azure AD for more information.
Content-TypeContent-TypeObrigatório.Required.O tipo de mídia do conteúdo do corpo da solicitação, por exemplo: application/json.The media type of the content in the request body, e.g.: application/json.
Content-LengthContent-LengthObrigatório.Required.O comprimento da solicitação em bytes.The length of the request in bytes.

As primeiras quatro operações listadas abaixo são usadas para gerenciar a criação, a recuperação, a atualização e a exclusão de entidades de AdministrativeUnit.The first four operations listed below are used to manage the creation, retrieval, updating, and deletion of AdministrativeUnit entities.As operações que seguem usam as propriedades de navegação members e scopedAdministrators para gerenciar os membros de Usuário/Grupo de AdminstrativeUnit, e o conjunto de administradores no escopo (via entidade ScopedRoleMembership) que tem controle administrativo da AdministrativeUnit, respectivamente.The operations following these use the members and scopedAdministrators navigation properties, to manage the User/Group members of the AdminstrativeUnit, and the set of scoped administrators (via the ScopedRoleMembership entity) that have administrative control of the AdministrativeUnit, respectively.

Criar uma unidade administrativaCreate an administrative unit

Usado para criar uma nova AdministrativeUnit.Used to create a new AdministrativeUnit.

Método HTTPHTTP MethodURI de solicitaçãoRequest URI
POSTPOSThttps://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits?api-version=beta

O corpo da solicitação especifica a propriedade necessária displayName e a opcional description:The request body specifies the required displayName and optional description properties:

{
  "displayName":"Central Region",
  "description":"Administrators responsible for the Central region."
}

Consulte a seção Referência de Resposta HTTP abaixo para obter definições de código de resposta.See the HTTP Response Reference section below for response code definitions.O corpo da resposta será semelhante ao mostrado abaixo.The response body will appear similar to the one below.

{
   "odata.metadata":https://graph.windows.net/contoso.onmicrosoft.com/$metadata#directoryObjects/Microsoft.DirectoryServices.AdministrativeUnit/@Element",
   "odata.type":"Microsoft.DirectoryServices.AdministrativeUnit",
   "objectType":"AdministrativeUnit",
   "objectId":"ca1a80f3-ac25-429b-a1e9-0f1eb87cc30b",
   "deletionTimestamp":null,
   "displayName":"Central Region",
   "description":"Administrators responsible for the Central region."
}

Obter unidades administrativasGet administrative unit(s)

Usado para recuperar uma AdministrativeUnit específica por {objectId}, um subconjunto ao filtrar na propriedade displayName (consulte Supported Queries, Filters, and Paging Options in Azure AD Graph API (Consultas, Filtros e Opções de Paginação com Suporte na API do Graph do Azure AD)), ou a lista de todos os números disponíveis.Used to retrieve a specific AdministrativeUnit by {objectId}, a subset by filtering on the displayName property (see Supported Queries, Filters, and Paging Options in Azure AD Graph API), or the list of all available ones.Os exemplos de Solicitação/Resposta abaixo mostram consultas para uma unidade administrativa específica e para todas as unidades administrativas, respectivamente.The Request/Response examples below show queries for a specific administrative unit and for all administrative units, respectively.

Método HTTPHTTP MethodURI de solicitaçãoRequest URI
GETGEThttps://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits/{objectId}?api-version=beta
GETGEThttps://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits?api-version=beta

Não há nenhum corpo de solicitação.There is no request body.

Consulte a seção Referência de Resposta HTTP abaixo para obter definições de código de resposta.See the HTTP Response Reference section below for response code definitions.O corpo da resposta será semelhante a um dos mostrados abaixo.The response body will appear similar to one of the ones below.

{
   "odata.metadata":https://graph.windows.net/contoso.onmicrosoft.com/$metadata#directoryObjects/Microsoft.DirectoryServices.AdministrativeUnit/@Element",
   "odata.type":"Microsoft.DirectoryServices.AdministrativeUnit",
   "objectType":"AdministrativeUnit",
   "objectId":"ca1a80f3-ac25-429b-a1e9-0f1eb87cc30b",
   "deletionTimestamp":null,
   "displayName":"Central Region",
   "description":"Administrators responsible for the Central region."
}
{
   "odata.metadata":https://graph.windows.net/contoso.onmicrosoft.com/$metadata#directoryObjects/Microsoft.DirectoryServices.AdministrativeUnit/",
   "value":
   [
      {
      "odata.type":"Microsoft.DirectoryServices.AdministrativeUnit",
      "objectType":"AdministrativeUnit",
      "objectId":"ca1a80f3-ac25-429b-a1e9-0f1eb87cc30b",
      "deletionTimestamp":null,
      "displayName":"Central Region",
      "description":"Administrators responsible for the Central region."
      },
      {
      "odata.type":"Microsoft.DirectoryServices.AdministrativeUnit",
      "objectType":"AdministrativeUnit",
      "objectId":"455b7304-b245-4d58-95c4-1797c32c80db",
      "deletionTimestamp":null,
      "displayName":"East Coast Region",
      "description":"East Coast Two"
      }
   ]
}

Atualizar uma unidade administrativaUpdate an administrative unit

Usado para atualizar uma ou mais das propriedades em uma AdministrativeUnit.Used to update one or more of the properties in an AdministrativeUnit.

Método HTTPHTTP MethodURI de solicitaçãoRequest URI
PATCHPATCHhttps://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits/{objectId}?api-version=beta

O corpo da solicitação especifica uma ou ambas propriedades AdministrativeUnit:The request body specifies one or both of the AdministrativeUnit properties:

{ 
  "displayName":"Central Region Administrators"
}

Consulte a seção Referência de Resposta HTTP abaixo para obter definições de código de resposta.See the HTTP Response Reference section below for response code definitions.Não há nenhuma resposta de OData no corpo da resposta.There is no OData response in the response body.

Excluir uma unidade administrativaDelete an administrative unit

Usado para excluir uma AdministrativeUnit, conforme especificado por {objectId}.Used to delete an AdministrativeUnit, as specified by the {objectId}.

Método HTTPHTTP MethodURI de solicitaçãoRequest URI
DELETEDELETEhttps://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits/{objectId}?api-version=beta

Não há nenhum corpo de solicitação.There is no request body.

Consulte a seção Referência de Resposta HTTP abaixo para obter definições de código de resposta.See the HTTP Response Reference section below for response code definitions.Não há nenhuma resposta de OData no corpo da resposta.There is no OData response in the response body.

As seguintes operações são implementadas por meio da propriedade de navegação membros, que fornece gerenciamento dos membros do grupo/usuário de uma AdminstrativeUnit.The following operations are implemented via the members navigation property, which provides management of the user/group members of an AdminstrativeUnit.Lembre-se de que o segmento de recurso $links permite que você percorra ou modifique a associação (também conhecida como link) entre dois recursos, tais como entre um administrativeUnit e um recurso de User ou Group.Recall from earlier, the $links resource segment allows you to traverse or modify the association (aka: link) between two resources, such as between an administrativeUnit and a User or Group resource.

Adicionar membros a uma unidade administrativaAdd member(s) to an administrative unit

Usado para adicionar membros de recursos de usuário ou grupo a uma AdministrativeUnit.Used to add user or group resource members to an AdministrativeUnit.

Método HTTPHTTP MethodURI de solicitaçãoRequest URI
POSTPOSThttps://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits/{objectId}/$links/members/?api-version=beta

Nesse exemplo, o corpo da solicitação especifica a URL para o membro desejado que queremos adicionar a administrativeUnit, que é um recurso de usuários neste exemplo.In this example the request body specifies the URL to the desired member that we want to add to the administrativeUnit, which is a users resource in this example.Também é válido usar directoryObjects como o segmento de recurso de tipo no lugar de usuários, pois a entidade User é herdada da entidade DirectoryObject.It’s also valid to use directoryObjects as the type resource segment, in place of users, as the User entity is inherited from the DirectoryObject entity.O mesmo é verdadeiro ao usar o segmento de recursos de grupos.The same is true when using the groups resource segment.

{
  "url":" https://graph.windows.net/contoso.onmicrosoft.com/users/a1daa894-ff32-4839-bb6a-d7a4210fc96a"
}

Consulte a seção Referência de Resposta HTTP abaixo para obter definições de código de resposta.See the HTTP Response Reference section below for response code definitions.Não há nenhuma resposta de OData no corpo da resposta.There is no OData response in the response body.

Obter membros de uma unidade administrativaGet member(s) of an administrative unit

Usado para recuperar membros de recursos de usuário ou grupo de uma administrativeUnit.Used to retrieve user or group resource members from an administrativeUnit.Observe que você pode recuperar membros usando o formato das operações GET listadas abaixo.Note that you can retrieve members using either form of the GET operations listed below.A primeira retorna URL/link para os membros, a segunda retorna as propriedades para os membros.The first returns the URL/link to the member(s), the second returns the properties for the member(s).Em ambos os casos, o segmento de {memberObjectId} é opcional, dependendo se você quer que o conjunto de membros seja retornado ou um específico.In both cases, the {memberObjectId} segment is optional, depending on whether you want the set of members returned, or a specific one.

Método HTTPHTTP MethodURI de solicitaçãoRequest URI
GETGEThttps://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits/{objectId}/$links/members/{memberObjectId}?api-version=beta
GETGEThttps://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits/{objectId}/members/{memberObjectId}?api-version=beta

Não há nenhum corpo de solicitação.There is no request body.

Consulte a seção Referência de Resposta HTTP abaixo para obter definições de código de resposta.See the HTTP Response Reference section below for response code definitions.O primeiro exemplo abaixo mostra o corpo da resposta para uma operação usando o segmento $links para todos os membros (ou seja: {memberObjectId} não é especificado), em que há dois tipos de recursos, um Usuário e um Grupo.The first example below shows the response body for an operation using the $links segment for all members (ie: {memberObjectId} is not specified), where there are two types of resources, a User and a Group.O segundo mostra a resposta para o mesmo exemplo, sem o segmento $links.The second shows the response for the same example, without the $links segment.

{
   "odata.metadata": "https://graph.windows.net/contoso.onmicrosoft.com/$metadata#directoryObjects/$links/members",
   "value":
   [
      {
      "url":"https://graph.windows.net/contoso.onmicrosoft.com/directoryObjects/a1daa894-ff32-4839-bb6a-d7a4210fc96a/Microsoft.DirectoryServices.User"
      },
      {
      "url":"https://graph.windows.net/contoso.onmicrosoft.com/directoryObjects/a0ab9340-2b20-4b3f-8672-bf1a2f141f91/Microsoft.DirectoryServices.Group"
      }
   ]
}
{
   "odata.metadata": "https://graph.windows.net/contoso.onmicrosoft.com/$metadata#directoryObjects",
   "value":
   [
      {
      "odata.type":"Microsoft.DirectoryServices.User",
      "objectType":"User",
      "objectId":"a1daa894-ff32-4839-bb6a-d7a4210fc96a",
      "deletionTimestamp":null,
      "acceptedAs":null,
      "acceptedOn":null,
      "accountEnabled":true,
      "alternativeSecurityIds":[],
      "alternativeSignInNames":[admin@contoso.com],
      "alternativeSignInNamesInfo":[],
      "appMetadata":null,
      "assignedLicenses":[],
      "assignedPlans":[],
      "city":"Redmond",
      "cloudSecurityIdentifier":"S-1-12-6-2715461780-1211760434-2765580987-1791561505",
      "companyName":null,
      "country":null,
      "creationType":null,
      "department":null,
      "dirSyncEnabled":null,
      "displayName":"Jon Doe",
      "extensionAttribute1":null,
      "extensionAttribute2":null,
      "extensionAttribute3":null,
      "extensionAttribute4":null,
      "extensionAttribute5":null,
      "extensionAttribute6":null,
      "extensionAttribute7":null,
      "extensionAttribute8":null,
      "extensionAttribute9":null,
      "extensionAttribute10":null,
      "extensionAttribute11":null,
      "extensionAttribute12":null,
      "extensionAttribute13":null,
      "extensionAttribute14":null,
      "extensionAttribute15":null,
      "facsimileTelephoneNumber":null,
      "givenName":"Jon",
      "immutableId":null,
      "invitedOn":null,
      "inviteReplyUrl":[],
      "inviteResources":[],
      "inviteTicket":[],
      "isCompromised":null,
      "jobTitle":null,
      "jrnlProxyAddress":null,
      "lastDirSyncTime":null,
      "mail":null,
      "mailNickname":"admin",
      "mobile":null,
      "netId":"100300008001EE6E",
      "onPremisesSecurityIdentifier":null,
      "otherMails":[jon@doe.com],
      "passwordPolicies":null,
      "passwordProfile":null,
      "physicalDeliveryOfficeName":null,
      "postalCode":"98052",
      "preferredLanguage":"en-US",
      "primarySMTPAddress":null,
      "provisionedPlans":[],
      "provisioningErrors":[],
      "proxyAddresses":[],
      "releaseTrack":null,
      "searchableDeviceKey":[],
      "selfServePasswordResetData":null,
      "sipProxyAddress":null,
      "smtpAddresses":[],
      "state":"WA",
      "streetAddress":
      "One Microsoft Way",
      "surname":"Doe",
      "telephoneNumber":"(123) 456-7890",
      "usageLocation":"US",
      "userPrincipalName":admin@constoso.com,
      "userState":null,
      "userStateChangedOn":null,
      "userType":"Member"      
      },
      { 
      "odata.type":"Microsoft.DirectoryServices.Group",
      "objectType":"Group",
      "objectId":"a0ab9340-2b20-4b3f-8672-bf1a2f141f91",
      "deletionTimestamp":null,
      "appMetadata":null,
      "cloudSecurityIdentifier":"S-1-12-6-2695598912-1262431008-448754310-2434733103",
      "description":null,
      "dirSyncEnabled":null,
      "displayName":"Group for users in Central Region Administrative Unit",
      "exchangeResources":[],
      "groupType":null,
      "isPublic":null,
      "lastDirSyncTime":null,
      "licenseAssignment":[],
      "mail":null,
      "mailEnabled":false,
      "mailNickname":"CentralUsers",
      "onPremisesSecurityIdentifier":null,
      "provisioningErrors":[],
      "proxyAddresses":[],
      "securityEnabled":true,
      "sharepointResources":[],
      "targetAddress":null,
      "wellKnownObject":null     
      }
   ]
}

Excluir membros de uma unidade administrativaDelete member(s) from an administrative unit

Usado para excluir membros de recursos de usuário ou grupo de um administrativeGroup.Used to delete user or group resource members from an administrativeGroup resource.Como membros é uma propriedade de navegação com vários valores, você deve incluir o {objectId} do membro/link na URL da solicitação, o que você desejar excluir.Because members is a multi-value navigation property, you must include the {objectId} of the member/link in the request URL, which you wish to delete.

Método HTTPHTTP MethodURI de solicitaçãoRequest URI
DELETEDELETEhttps://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits/{objectId}/$links/members/{objectId}?api-version=beta

Não há nenhum corpo de solicitação.There is no request body.

Consulte a seção Referência de Resposta HTTP abaixo para obter definições de código de resposta.See the HTTP Response Reference section below for response code definitions.Não há nenhuma resposta de OData no corpo da resposta.There is no OData response in the response body.

Os administradores são atribuídos a uma unidade administrativa, colocando-os em uma função que tem escopo para essa unidade administrativa.Administrators are assigned to an administrative unit by placing them in a role that has been scoped to that administrative unit.As operações restantes nesta seção são implementadas por meio da propriedade de navegação scopedAdministrators, que fornece gerenciamento dos administradores de conjunto que têm controle administrativo de uma AdministrativeUnit, por meio de uma função no escopo.The remaining operations in this section are implemented via the scopedAdministrators navigation property, which provides management of the set administrators that have administrative control of an AdministrativeUnit, via a scoped role.

Adicionar um administrador com função no escopo para uma unidade administrativaAdd a scoped-role administrator to an administrative unit

Usado para adicionar um administrador a uma função que terá escopo para uma administrativeUnit, via entidade ScopedRoleMembership e propriedade de navegação scopedAdministrators.Used to add an administrator to a role that will be scoped to an administrativeUnit, via the ScopedRoleMembership entity and the scopedAdministrators navigation property.Neste exemplo, a operação faz duas coisas:In this example, the operation does two things:

  1. Preenche um novo item ScopedRoleMembership (que NÃO é um recurso endereçável do OData), que estabelece uma relação entre uma AdministrativeUnit, uma DirectoryRole no escopo para a unidade administrativa e um Usuário administrador.Populates a new ScopedRoleMembership item (which is NOT an addressable OData resource), which establishes a relationship between an AdministrativeUnit, a DirectoryRole scoped to the administrative unit, and an administrator User.

  2. Estabelece um associação/link de propriedade de navegação entre a AdministrativeUnit e o novo item ScopedRoleMembership.Establishes a navigation property association/link between the AdministrativeUnit and the new ScopedRoleMembership item.

Método HTTPHTTP MethodURI de solicitaçãoRequest URI
POSTPOSThttps://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits/{objectId}/scopedAdministrators?api-version=beta

O corpo da solicitação especifica as seguintes propriedades da entidade ScopedRoleMembership:The request body specifies the following properties from the ScopedRoleMembership entity:

  • roleObjectId – objectId do DirectoryRole desejado.roleObjectId – objectId of the desired DirectoryRole.Observação: no momento, somente as funções HelpDeskAdministrators e UserAccountAdministrator são válidas.Note: currently only the HelpDeskAdministrators and UserAccountAdministrator roles are valid.

  • roleMemberInfo – uma estrutura que identifica Usuário administrativo: objectId – objectId do Usuário administrativo.roleMemberInfo – a structure which identifies the administrative User:objectId – objectId of the administrative User.

  • objectId – objectId do Usuário administrativo.objectId – objectId of the administrative User.

{
   "roleObjectId":"4bae1c93-ef8c-4907-83c8-1e1c1fd2e2c1",
   "roleMemberInfo":{
      "objectId":"a142bb2d-df81-4066-af91-f63e4aba9e5f"}
}

Consulte a seção Referência de Resposta HTTP abaixo para obter definições de código de resposta.See the HTTP Response Reference section below for response code definitions.O corpo da resposta será semelhante ao mostrado abaixo.The response body will appear similar to the one below.

{
   "odata.metadata":https://graph.windows.net/contoso.onmicrosoft.com/$metadata#directoryObjects/Microsoft.DirectoryServices.AdministrativeUnit/@Element",
   "id":"kxyuS4zvB0mDyB4cH9Liwf2cwDwjVAJAhbgHDWCmP-Itu0Khgd9mQK-R9j5Kup5fU",
   "roleObjectId":"4bae1c93-ef8c-4907-83c8-1e1c1fd2e2c1",
   "administrativeUnitObjectId":"3cc09cfd-5423-4002-85b8-070d60a63fe2",
   "roleMemberInfo":{"objectId":"a142bb2d-df81-4066-af91-f63e4aba9e5f",
      "displayName":"Bryan",
      "userPrincipalName":BryanL@contoso.com
      }
}

Obter um administrador com função no escopo de uma unidade administrativaGet a scoped-role administrator of an administrative unit

Usado para obter a lista de administradores em funções com escopo para um recurso de administrativeUnit, como entidades ScopedRoleMembership.Used to get the list of administrators in scoped roles for an administrativeUnit resource, as ScopedRoleMembership entities.Observe que em ambos os casos, o segmento {scopedRoleMemberId} é opcional, dependendo se você quer o conjunto de membros ou um específico.Note that the {scopedRoleMemberId} segment is optional, depending on whether you want the set of members, or a specific one.

Método HTTPHTTP MethodURI de solicitaçãoRequest URI
GETGEThttps://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits/{objectId}/scopedAdministrators/{scopedRoleMemberId}?api-version=beta

Não há nenhum corpo de solicitação.There is no request body.

Consulte a seção Referência de Resposta HTTP abaixo para obter definições de código de resposta.See the HTTP Response Reference section below for response code definitions.O corpo da resposta abaixo é para uma consulta para todos os membros.The response body below is for a query for all members.

{ 
   "odata.metadata":https://graph.windows.net/contoso.onmicrosoft.com /$metadata#scopedRoleMemberships,
   "value":
   [
      {
      "id":"kxyuS4zvB0mDyB4cH9Liwf2cwDwjVAJAhbgHDWCmP-Itu0Khgd9mQK-R9j5Kup5fU",
      "roleObjectId":"4bae1c93-ef8c-4907-83c8-1e1c1fd2e2c1",
      "administrativeUnitObjectId":"3cc09cfd-5423-4002-85b8-070d60a63fe2",
      "roleMemberInfo":
         {
         "objectId":"a142bb2d-df81-4066-af91-f63e4aba9e5f",
         "displayName":"Bryan",
         "userPrincipalName":BryanL@contoso.com
         }
      }            
   ]
}

Excluir um administrador com função no escopo de uma unidade administrativa.Delete a scoped-role administrator from an administrative unit.

Usado para excluir uma ScopedRoleMembership de um recurso de administrativeUnit, especificado pelo segmento {scopedRoleMemberId}.Used to delete a ScopedRoleMembership from an administrativeUnit resource, specified by the {scopedRoleMemberId} segment.

Método HTTPHTTP MethodURI de solicitaçãoRequest URI
DELETEDELETEhttps://graph.windows.net/contoso.onmicrosoft.com/administrativeUnits/{objectId}/scopedAdministrators/{scopedRoleMemberId}?api-version=beta

Não há nenhum corpo de solicitação.There is no request body.

Consulte a seção Referência de Resposta HTTP abaixo para obter definições de código de resposta.See the HTTP Response Reference section below for response code definitions.Não há nenhuma resposta de OData no corpo da resposta.There is no OData response in the response body.

Operações com Suporte – usuários e gruposSupported Operations – users and groups

Esta seção define as operações com suporte recente em recursos de usuários e grupos, que oferecem suporte a recursos de administrativeUnit.This section defines the newly supported operations on users and groups resources, which provide support for administrativeUnit resources.

Você pode verificar a documentação completa de GA para as entidades User e Group e para operações em usuários e grupos.You can check the full GA documentation for the User and Group entities and for operations on users and groups.

Para cada uma das operações listadas abaixo:For each of the operations listed below:

  • A entidade de segurança que executa a operação deve ter privilégios para ler objetos usando solicitações GET.The principal that performs the operation must have privileges to read objects using GET requests.

  • Conforme apropriado, substitua as cadeias de caracteres de espaço reservado “contoso.onmicrosoft.com” pelo domínio do seu locatário do Azure Active Directory e {objectId} pela ID do tipo de recurso, conforme determinado na URL.As appropriate, replace the placeholder strings “contoso.onmicrosoft.com” with the domain of your Azure Active Directory tenant, and {objectId} with the ID of the resource type as determined in the URL.

  • Cada solicitação deve incluir os seguintes cabeçalhos de Solicitação HTTP:Each request must include the following HTTP Request headers:

    Cabeçalho de solicitaçãoRequest HeaderDescriçãoDescription
    AuthorizationAuthorizationObrigatório.Required.Um token de portador emitido pelo Active Directory do Azure.A bearer token issued by Azure Active Directory.Consulte Authentication Scenarios for Azure AD (Cenários de Autenticação do Azure AD) para obter mais informações.See Authentication Scenarios for Azure AD for more information.
    Content-TypeContent-TypeObrigatório.Required.O tipo de mídia do conteúdo do corpo da solicitação, por exemplo: application/json.The media type of the content in the request body, e.g.: application/json.
    Content-LengthContent-LengthObrigatório.Required.O comprimento da solicitação em bytes.The length of the request in bytes.

Obter unidades administrativas ao qual um usuário ou um grupo pertenceGet administrative unit(s) to which a user or group belongs

A Visualização permite a recuperação da associação de administrativeUnits para recursos de usuários e grupos, por meio da propriedade de navegação memberOf na entidade DirectoryObject.The Preview enables retrieval of administrativeUnits membership for users and groups resources, via the memberOf navigation property on the DirectoryObject entity.Especifique o segmento de recurso de "usuários" para recuperar a associação para os recursos de usuários ou “grupos” para os recursos de grupos.Specify the “users” resource segment to retrieve membership for users resources, or “groups” for groups resources.Especifique o segmento de recurso de "$links" para recuperar URLs/links de recurso ou omita para recuperar as propriedades.Specify the “$links” resource segment to retrieve the resource URLs/links, or omit to retrieve the properties.

Método HTTPHTTP MethodURI de solicitaçãoRequest URI
GETGEThttps://graph.windows.net/contoso.onmicrosoft.com/users/{objectID}/$links/memberOf?api-version=beta
GETGEThttps://graph.windows.net/contoso.onmicrosoft.com/users/{objectID}/memberOf?api-version=beta
GETGEThttps://graph.windows.net/contoso.onmicrosoft.com/groups/{objectID}/$links/memberOf?api-version=beta
GETGEThttps://graph.windows.net/contoso.onmicrosoft.com/groups/{objectID}/memberOf?api-version=beta

Não há nenhum corpo de solicitação.There is no request body.

Consulte a seção Referência de Resposta HTTP abaixo para obter definições de código de resposta.See the HTTP Response Reference section below for response code definitions.O primeiro exemplo abaixo mostra o corpo da resposta para um recurso de usuários com o segmento de $links, o qual tem associação em dois tipos de recursos: DirectoryRole e AdministrativeUnit.The first example below shows the response body for a users resource with the $links segment, which has membership in two types of resources: a DirectoryRole and an AdministrativeUnit.O segundo mostra a resposta para o mesmo exemplo, sem o segmento $links.The second shows the response for the same example, without the $links segment.

{
   "odata.metadata": "https://graph.windows.net/contoso.onmicrosoft.com/$metadata#directoryObjects/$links/memberOf",
   "value":
   [
      {
      "url":"https://graph.windows.net/contoso.onmicrosoft.com/directoryObjects/cbf54c29-6184-484d-92d6-d6af32f896a2/Microsoft.DirectoryServices.DirectoryRole"
      },
      {
      "url":"https://graph.windows.net/contoso.onmicrosoft.com/directoryObjects/3cc09cfd-5423-4002-85b8-070d60a63fe2/Microsoft.DirectoryServices.AdministrativeUnit"
      }
   ]
}
{
   "odata.metadata": "https://graph.windows.net/contoso.onmicrosoft.com/$metadata#directoryObjects",
   "value":
   [
      {
      "odata.type":"Microsoft.DirectoryServices.DirectoryRole",
      "objectType":"Role",
      "objectId":"cbf54c29-6184-484d-92d6-d6af32f896a2",
      "deletionTimestamp":null,
      "cloudSecurityIdentifier":"S-1-12-6-3421850665-1213030788-2950092434-2727802930",
      "description":"Company Administrator role has full access to perform any operation in the company scope.",
      "displayName":"Company Administrator",
      "isSystem":true,
      "roleDisabled":false,
      "roleTemplateId":"62e90394-69f5-4237-9190-012177145e10"
      },
      {
      "odata.type":"Microsoft.DirectoryServices.AdministrativeUnit",
      "objectType":"AdministrativeUnit",
      "objectId":"3cc09cfd-5423-4002-85b8-070d60a63fe2",
      "deletionTimestamp":null,
      "displayName":"Central Region Administrators",
      "description":"Administrators responsible for the Central Region"
      }    
   ]  
}

Obter unidades administrativas das quais um usuário é um administradorGet administrative unit(s) of which a user is an administrator

Usado para recuperar os recursos de adminstrativeUnits dos quais um usuário é um administrador, por meio da propriedade de navegação scopedAdministratorOf na entidade de Usuário.Used to retrieve the adminstrativeUnits resource(s) of which a user is an administrator, via the scopedAdministratorOf navigation property on the User entity.Observe que você pode usar qualquer forma das opções GET listadas abaixo.Note that you can use either form of the GET operations listed below.A primeira recupera URLs/link de recurso, a segunda retorna as propriedades.The first retrieves the resource URLs/link, the second returns the properties.

Método HTTPHTTP MethodURI de solicitaçãoRequest URI
GETGEThttps://graph.windows.net/contoso.onmicrosoft.com/users/{objectId}/$links/scopedAdministratorOf?api-version=beta
GETGEThttps://graph.windows.net/contoso.onmicrosoft.com/users/{objectId}/scopedAdministratorOf?api-version=beta

Não há nenhum corpo de solicitação.There is no request body.

Consulte a seção Referência de Resposta HTTP abaixo para obter definições de código de resposta.See the HTTP Response Reference section below for response code definitions.O primeiro exemplo abaixo mostra o corpo da resposta para uma operação usando o segmento de $links.The first example below shows the response body for an operation using the $links segment.O segundo mostra a resposta para o mesmo exemplo, sem o segmento $links.The second shows the response for the same example, without the $links segment.

{
   "odata.metadata": "https://graph.windows.net/contoso.onmicrosoft.com/$metadata#directoryObjects/$links/scopedAdministratorOf",
   "value":
   [
      {
      "url":"https://graph.windows.net/contoso.onmicrosoft.com/scopedRoleMemberships/kxyuS4zvB0mDyB4cH9Liwf2cwDwjVAJAhbgHDWCmP-Itu0Khgd9mQK-R9j5Kup5fU"
      }
   ]
}```
```json
{
   "odata.metadata": "https://graph.windows.net/contoso.onmicrosoft.com/$metadata#scopedRoleMemberships",
   "value":
   [
      {
      "id":"kxyuS4zvB0mDyB4cH9Liwf2cwDwjVAJAhbgHDWCmP-Itu0Khgd9mQK-R9j5Kup5fU",
      "roleObjectId":"4bae1c93-ef8c-4907-83c8-1e1c1fd2e2c1",
      "administrativeUnitObjectId":"3cc09cfd-5423-4002-85b8-070d60a63fe2",
      "roleMemberInfo":
         {
         "objectId":"a142bb2d-df81-4066-af91-f63e4aba9e5f",
         "displayName":"Bryan",
         "userPrincipalName":BryanL@contoso.com
         }
      }
   ]  
}

Operações com Suporte – directoryRolesSupported Operations – directoryRoles

Esta seção define as operações com suporte recente em recursos de directoryRoles, que oferecem suporte específico a recursos de administrativeUnits.This section defines the newly supported operations on directoryRoles resources that provide specific support for administrativeUnits resources.

Você pode verificar a documentação completa de GA para obter mais informações sobre a entidade DirectoryRole e operações relacionadas****.You can check the full GA documentation for more information about the DirectoryRole entity and related operations****.

Para cada uma das operações listadas abaixo:For each of the operations listed below:

  • A entidade de segurança que executa a operação deve ter privilégios para ler objetos usando solicitações GET.The principal that performs the operation must have privileges to read objects using GET requests.

  • Conforme apropriado, substitua as cadeias de caracteres de espaço reservado “contoso.onmicrosoft.com” pelo domínio do seu locatário do Azure Active Directory e {objectId} pela ID do tipo de recurso, conforme determinado na URL.As appropriate, replace the placeholder strings “contoso.onmicrosoft.com” with the domain of your Azure Active Directory tenant, and {objectId} with the ID of the resource type as determined in the URL.

  • Cada solicitação deve incluir os seguintes cabeçalhos de Solicitação HTTP: Request HeaderDescriptionAuthorizationRequired.Each request must include the following HTTP Request headers:Request HeaderDescriptionAuthorizationRequired.Um token de portador emitido pelo Active Directory do Azure.A bearer token issued by Azure Active Directory.Consulte Authentication Scenarios for Azure AD (Cenários de Autenticação do Azure AD) para obter mais informações.Content-TypeRequired.See Authentication Scenarios for Azure AD for more information.Content-TypeRequired.O tipo de mídia do conteúdo no corpo da solicitação, por exemplo: application/json.Content-LengthRequired.The media type of the content in the request body, e.g.: application/json.Content-LengthRequired.O comprimento da solicitação em bytes.The length of the request in bytes.

Cabeçalho de solicitaçãoRequest HeaderDescriçãoDescription
AuthorizationAuthorizationObrigatório.Required.Um token de portador emitido pelo Active Directory do Azure.A bearer token issued by Azure Active Directory.Consulte Authentication Scenarios for Azure AD (Cenários de Autenticação do Azure AD) para obter mais informações.See Authentication Scenarios for Azure AD for more information.
Content-TypeContent-TypeObrigatório.Required.O tipo de mídia do conteúdo do corpo da solicitação, por exemplo: application/json.The media type of the content in the request body, e.g.: application/json.
Content-LengthContent-LengthObrigatório.Required.O comprimento da solicitação em bytes.The length of the request in bytes.

Obtenha os administradores de unidade administrativa com escopo para uma função específicaGet administrative unit administrators scoped to a specific role

Os administradores são atribuídos a uma unidade administrativa, colocando-os em uma função que tem escopo para essa unidade administrativa.Administrators are assigned to an administrative unit by placing them in a role that has been scoped to that administrative unit.Esta operação permite que você recupere essas "associações de função com escopo" para um administrador, como um conjunto de recursos scopedRoleMemberships.This operation allows you to retrieve those “scoped role membership(s)” for an administrator, as a set of scopedRoleMemberships resources.Observe que apenas uma função "HelpDeskAdministrators" ou "UserAccountAdministrator" {objectId} é válida.Note that only a” HelpDeskAdministrators” or “UserAccountAdministrator” role {objectId} is valid.Observe também que o segmento de {scopedRoleMemberId} é opcional, dependendo se você deseja todos os recursos scopedRoleMembership para uma função específica ou um específico.Also note that the {scopedRoleMemberId} segment is optional, depending on whether you want all scopedRoleMembership resources for a specific role, or a specific one.

Método HTTPHTTP MethodURI de solicitaçãoRequest URI
GETGEThttps://graph.windows.net/contoso.onmicrosoft.com/directoryRoles/{objectId}/scopedAdministrators/{scopedRoleMemberId}?api-version=beta

Não há nenhum corpo de solicitação.There is no request body.

Consulte a seção Referência de Resposta HTTP abaixo para obter definições de código de resposta.See the HTTP Response Reference section below for response code definitions.O corpo da resposta abaixo é para uma consulta para todos os administradores de uma determinada unidade administrativa, no escopo para a função de Administrador de Assistência Técnica.The response body below is for a query for all administrators of a particular administrative unit, scoped to the Helpdesk Administrator role.

{ 
   "odata.metadata":https://graph.windows.net/contoso.onmicrosoft.com /$metadata#scopedRoleMemberships,
   "value":[
   {
      "id":"kxyuS4zvB0mDyB4cH9Liwf2cwDwjVAJAhbgHDWCmP-Itu0Khgd9mQK-R9j5Kup5fU",
      "roleObjectId":"4bae1c93-ef8c-4907-83c8-1e1c1fd2e2c1",
      "administrativeUnitObjectId":"3cc09cfd-5423-4002-85b8-070d60a63fe2",
      "roleMemberInfo":
      {
         "objectId":"a142bb2d-df81-4066-af91-f63e4aba9e5f",
         "displayName":"Bryan",
         "userPrincipalName":BryanL@contoso.com
      }
   ]
}

Referência de resposta HTTP HTTP Response Reference

Abaixo está a lista de possíveis códigos de resposta HTTP:Below is the list of possible HTTP response codes:

Código de status HTTPHTTP Status CodeCódigo de Erro ODataOData Error CodeDescriçãoDescription
200/OK200/OKN/Dn/aResposta normal para uma consulta bem-sucedida.Normal response for a successful query.O corpo da resposta conterá os dados que correspondem aos filtros especificados nos parâmetros de consulta.The response body will contain the data that matches the filters specified in the query parameters.
201/Criado201/CreatedN/Dn/aResposta normal para uma operação POST/criar bem-sucedida.Normal response for a successful POST/create operation.O corpo da resposta conterá os dados, conforme preenchido no novo recurso.The response body will contain the data as populated in the new resource.
204/Sem Conteúdo204/No ContentN/Dn/aResposta normal para uma operação bem-sucedida de PATCH/atualizar ou DELETE em um recurso ou POST em um recurso vinculado.Normal response for a successful PATCH/update or DELETE operation on a resource, or POST on a linked resource.O corpo da resposta não conterá uma resposta OData.The response body will not contain an OData response.
400/BadRequest400/BadRequestRequest_BadRequestRequest_BadRequestEsta é uma mensagem de erro genérica para um cabeçalho, um parâmetro ou um corpo de solicitação inválido ou ausente.This is a generic error message for an invalid or missing header, parameter, or request body data.Você também verá esse erro se tentar adicionar um recurso vinculado que já existe.You will also see this error if attempting to add a linked resource that already exists.
401/Não Autorizado401/UnauthorizedAuthorizationErrorAuthorizationErrorIsso será exibido quando o usuário não estiver autorizado a exibir o conteúdo.This will be displayed when the user is not authorized to view the content.Consulte o artigo principal do REST do AD Graph para obter detalhes adicionais sobre como proteger suas chamadas e como obter e especificar um token de acesso seguro.Please see the main AD Graph REST article for additional details on securing your calls, and obtaining and specifying a secure access token.
404/Não Encontrado404/Not FoundRequest_ResourceNotFoundRequest_ResourceNotFoundIsso será exibido quando o recurso que você está tentando acessar não existir.This will be displayed when the resource you are attempting to access does not exist.
405/Método não permitido405/Method not allowedRequest_BadRequestRequest_BadRequestIsso será exibido quando você estiver tentando uma operação destinada a um recurso específico, mas não fornecer a ID de recurso correta na URL da solicitação.This will be displayed when you are attempting an operation meant for a specific resource, but are not providing the correct resource ID in the request URL.

Recursos adicionaisAdditional resources

© 2018 Microsoft