Operaciones en el usuario que inició sesión | Referencia de API Graph

Se aplica a: API Graph | Azure Active Directory

En este tema se describe cómo realizar operaciones en el usuario que inició sesión con API Graph de Azure Active Directory (AD) mediante el alias me. Con API Graph de Azure AD, puede leer y actualizar propiedades del usuario que inició sesión. También puede consultar y modificar las relaciones de un usuario que inició sesión en otras entidades de directorio. Por ejemplo, puede asignar el administrador del usuario que inició sesión, consultar los subordinados directos del usuario, administrar las pertenencias a grupos, los roles de aplicación y los dispositivos asignados al usuario, etc.

API Graph es una API de REST compatible con OData 3.0 que proporciona acceso mediante programación a objetos de directorio en Azure Active Directory, como usuarios, grupos, contactos de la organización y aplicaciones.

Importante

La funcionalidad de la API de Azure AD Graph también se encuentra disponible a través de Microsoft Graph, una API unificada que también incluye las API de otros servicios Microsoft como Outlook, OneDrive, OneNote, Planner y Office Graph, todos ellos accesibles a través de un solo punto de conexión con un solo token de acceso.

Realización de operaciones REST en el usuario que inició sesión

Puede usar el alias me para establecer como destino el usuario que inició sesión. Para realizar operaciones en el usuario que inició sesión con API Graph, debe enviar solicitudes HTTP con un método admitido (GET, POST, PATCH, PUT o DELETE) a un punto de conexión que use el alias me para establecer como destino el usuario que inició sesión, una propiedad de navegación del usuario o una función o acción que se pueda llamar en el usuario.

Las solicitudes de la API Graph usan la siguiente dirección URL básica:

https://graph.windows.net/{tenant_id}/{resource_path}?{api_version}[odata_query_parameters]

Importante

Las solicitudes enviadas a la API Graph deben tener el formato correcto, ir dirigidas a un punto de conexión y una versión de la API Graph que sean válidos y llevar en su encabezado Authorization un token de acceso válido obtenido de Azure AD. Para más información sobre cómo crear solicitudes y recibir respuestas con la API Graph, consulte Operations Overview.

Puede usar el alias me para establecer como destino el usuario que inició sesión. Este alias reemplaza los segmentos {tenant id} y {resource path} de la dirección URL de la solicitud. Cuando se envía una solicitud a API Graph con el alias me, deriva el inquilino y el usuario del token de portador adjunto a la solicitud. Por ejemplo, al enviar una solicitud GET a https://graph.windows.net/me?api-version=1.6 devolverá el objeto de usuario del usuario que inició sesión.

Especifique la dirección URL de manera diferente en función de que el destino sea el usuario que inició sesión o una de sus propiedades de navegación.

  • me tiene como destino el usuario que inició sesión. Puede usar esta ruta de acceso a recursos para obtener las propiedades declaradas del usuario y para modificarlas.
  • me/{nav_property} tiene como destino la propiedad de navegación especificada del usuario que inició sesión. Se puede usar para devolver los objetos a los que hace referencia la propiedad de navegación de destino del usuario. Nota: Esta forma de direccionamiento solo está disponible para lecturas.
  • me/$links/{nav_property} tiene como destino la propiedad de navegación especificada del usuario que inició sesión. Puede usar esta forma de direccionamiento tanto para leer como para modificar una propiedad de navegación. En las lecturas, los objetos a los que hace referencia la propiedad se devuelven como uno o varios vínculos en el cuerpo de respuesta. En las escrituras, los objetos se especifican como uno o varios vínculos en el cuerpo de la solicitud.

Por ejemplo, la siguiente solicitud devuelve un vínculo al administrador del usuario que inició sesión:

GET https://graph.windows.net/me/$links/manager?api-version=1.6

Operaciones básicas en el usuario que inició sesión

Puede leer el usuario que inició sesión y actualizar sus propiedades declaradas con el alias me. En los temas siguientes verá cómo hacerlo.


Obtener el usuario que inició sesión

Obtiene el usuario que inició sesión.

Si se ejecuta correctamente, devuelve el objeto User del usuario que inició sesión; de lo contrario, el cuerpo de respuesta contiene detalles del error. Para más información sobre los errores, consulte Error Codes and Error Handling.

{
    "api":  "MeOps",
    "operation":    "get me",
     "showComponents": {
        "codeGenerator":    "true",
        "tryFeature": "true"      
    } 
}

Actualizar el usuario que inició sesión

Actualiza las propiedades del usuario que inició sesión. Especifique cualquier propiedad User que se pueda escribir en el cuerpo de la solicitud. Solo se cambian las propiedades que especifique.

Si se ejecuta correctamente, no se devuelve ningún cuerpo de respuesta; de lo contrario, el cuerpo de respuesta contiene detalles del error. Para más información sobre los errores, consulte Error Codes and Error Handling.

{
    "api":  "MeOps",
    "operation":    "update me"
}

Operaciones en propiedades de navegación

Las relaciones entre un usuario y otros objetos del directorio, como el administrador del usuario, las pertenencias directas a grupos y los subordinados directos se exponen a través de las propiedades de navegación. Cuando usa el alias me, puede leer y, en algunos casos, modificar estas relaciones estableciendo como destino estas propiedades de navegación en las solicitudes.


Obtener el administrador del usuario que inició sesión (objeto)

Obtiene el administrador del usuario que inició sesión de la propiedad de navegación manager.

Si se ejecuta correctamente, devuelve el User o Contact asignado como administrador del usuario; de lo contrario, el cuerpo de respuesta contiene detalles del error. Para más información sobre los errores, consulte Error Codes and Error Handling.

Devuelve 404 No encontrado si el usuario no tiene un administrador asignado.

{
    "api":  "MeOps",
    "operation":    "get my manager object",
     "showComponents": {
        "codeGenerator":    "true",
        "tryFeature": "true"      
    } 
}

Obtener el administrador del usuario que inició sesión (vínculo)

Obtiene un vínculo al administrador del usuario que inició sesión de la propiedad de navegación manager.

Si se ejecuta correctamente, devuelve un vínculo al User o Contact asignado como administrador del usuario; de lo contrario, el cuerpo de respuesta contiene detalles del error. Para más información sobre los errores, consulte Error Codes and Error Handling.

Devuelve 404 No encontrado si el usuario no tiene un administrador asignado.

{
    "api":  "MeOps",
    "operation":    "get my manager link",
     "showComponents": {
        "codeGenerator":    "true",
        "tryFeature": "true"      
    } 
}

Actualizar el administrador del usuario que inició sesión

Asigna el administrador del usuario que inició sesión a través de la propiedad manager. Se puede asignar un usuario o un contacto. El cuerpo de la solicitud contiene un vínculo al objeto User o Contact que se va a asignar.

Si se ejecuta correctamente, no se devuelve ningún cuerpo de respuesta; de lo contrario, el cuerpo de respuesta contiene detalles del error. Para más información sobre los errores, consulte Error Codes and Error Handling.

{
    "api":  "MeOps",
    "operation":    "set my manager"
}

Otras propiedades de navegación

Gracias al uso de los mismos patrones mostrados anteriormente, puede tener como destino otras propiedades de navegación expuestas por los usuarios. Algunas propiedades son de solo lectura y otras pueden modificarse. Para más información sobre las propiedades de navegación del usuario, consulte la documentación de User.


Funciones y acciones en el usuario que inició sesión

Puede llamar a cualquiera de las siguientes funciones o acciones en el usuario que inició sesión mediante el uso del alias me.

Asignar y quitar licencias

Puede llamar a la acción assignLicense para asignar o quitar licencias de un usuario y para habilitar o deshabilitar planes específicos para el usuario.

Cambiar contraseña del usuario que inició sesión

Puede llamar a la acción changePassword para permitir al usuario que inició sesión que cambie su contraseña.

Comprobar la pertenencia en una lista de grupos (transitiva)

Puede llamar a la función checkMemberGroups para comprobar la pertenencia a una lista de grupos. La comprobación es transitiva.

Obtener todas las pertenencias a grupos (transitivas)

Puede llamar a la función getMemberGroups para devolver todos los grupos de los que el usuario es miembro. La comprobación es transitiva, a diferencia de la lectura de la propiedad de navegación memberOf, que solo devuelve los grupos de los que el usuario es miembro directo.

Obtener todas las pertenencias a grupos y roles de directorio (transitiva)

Puede llamar a la función getMemberObjects para devolver todos los grupos y roles de directorio de los que el usuario es miembro. La comprobación es transitiva, a diferencia de la lectura de la propiedad de navegación memberOf, que solo devuelve los grupos de los que el usuario es miembro directo.


Basic operations on the signed-in user

GET https://graph.windows.net/me?api-version
Parameter Type Value Notes
Query
api-version string 1.6 Specifies the version of the Graph API to target. Beginning with version 1.5, the api-version string is represented in major.minor format. Prior releases were represented as date strings: '2013-11-08' and '2013-04-05'. Required.

Response

Status Code:200

Content-Type: application/json

{
   {
  "odata.metadata": "https://graph.windows.net/myorganization/$metadata#directoryObjects/Microsoft.DirectoryServices.User/@Element",
  "odata.type": "Microsoft.DirectoryServices.User",
  "objectType": "User",
  "objectId": "13addec1-c5ae-47f5-a1fe-202be14b1570",
  "deletionTimestamp": null,
  "accountEnabled": true,
  "signInNames": [],
  "assignedLicenses": [
    {
      "disabledPlans": [],
      "skuId": "6fd2c87f-b296-42f0-b197-1e91e994b900"
    }
  ],
  "assignedPlans": [
    {
      "assignedTimestamp": "2014-10-14T02:54:04Z",
      "capabilityStatus": "Enabled",
      "service": "exchange",
      "servicePlanId": "efb87545-963c-4e0d-99df-69c6916d9eb0"
    },
    {
      "assignedTimestamp": "2014-10-14T02:54:04Z",
      "capabilityStatus": "Enabled",
      "service": "SharePoint",
      "servicePlanId": "5dbe027f-2339-4123-9542-606e4d348a72"
    },
    {
      "assignedTimestamp": "2014-10-14T02:54:04Z",
      "capabilityStatus": "Enabled",
      "service": "SharePoint",
      "servicePlanId": "e95bec33-7c88-4a70-8e19-b10bd9d0c014"
    },
    {
      "assignedTimestamp": "2014-10-14T02:54:04Z",
      "capabilityStatus": "Enabled",
      "service": "MicrosoftCommunicationsOnline",
      "servicePlanId": "0feaeb32-d00e-4d66-bd5a-43b5b83db82c"
    },
    {
      "assignedTimestamp": "2014-10-14T02:54:04Z",
      "capabilityStatus": "Enabled",
      "service": "MicrosoftOffice",
      "servicePlanId": "43de0ff5-c92c-492b-9116-175376d08c38"
    },
    {
      "assignedTimestamp": "2014-10-14T02:54:04Z",
      "capabilityStatus": "Enabled",
      "service": "RMSOnline",
      "servicePlanId": "bea4c11e-220a-4e6d-8eb8-8ea15d019f90"
    }
  ],
  "city": "Tulsa",
  "country": "United States",
  "creationType": null,
  "department": "Sales & Marketing",
  "dirSyncEnabled": null,
  "displayName": "Garth Fort",
  "facsimileTelephoneNumber": null,
  "givenName": "Garth",
  "immutableId": null,
  "jobTitle": "Web Marketing Manager",
  "lastDirSyncTime": null,
  "mail": "garthf@a830edad9050849NDA1.onmicrosoft.com",
  "mailNickname": "garthf",
  "mobile": null,
  "onPremisesSecurityIdentifier": null,
  "otherMails": [],
  "passwordPolicies": "None",
  "passwordProfile": null,
  "physicalDeliveryOfficeName": "20/1101",
  "postalCode": "74133",
  "preferredLanguage": "en-US",
  "provisionedPlans": [
    {
      "capabilityStatus": "Enabled",
      "provisioningStatus": "Success",
      "service": "exchange"
    },
    {
      "capabilityStatus": "Enabled",
      "provisioningStatus": "Success",
      "service": "MicrosoftCommunicationsOnline"
    },
    {
      "capabilityStatus": "Enabled",
      "provisioningStatus": "Success",
      "service": "SharePoint"
    },
    {
      "capabilityStatus": "Enabled",
      "provisioningStatus": "Success",
      "service": "SharePoint"
    },
    {
      "capabilityStatus": "Enabled",
      "provisioningStatus": "Success",
      "service": "MicrosoftOffice"
    }
  ],
  "provisioningErrors": [],
  "proxyAddresses": [
    "SMTP:garthf@a830edad9050849NDA1.onmicrosoft.com"
  ],
  "sipProxyAddress": "garthf@a830edad9050849NDA1.onmicrosoft.com",
  "state": "OK",
  "streetAddress": "7633 E. 63rd Place, Suite 300",
  "surname": "Fort",
  "telephoneNumber": "+1 918 555 0101",
  "usageLocation": "US",
  "userPrincipalName": "garthf@a830edad9050849NDA1.onmicrosoft.com",
  "userType": "Member"
}

Response List

Status Code Description
200 OK. Indicates success. The signed-in user is returned in the response body.

Code Samples

using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;

namespace CSHttpClientSample
{
    static class Program
    {
	    static void Main()
        {
            MakeRequest();

            Console.WriteLine("Hit ENTER to exit...");
            Console.ReadLine();
        }

        static async void MakeRequest()
        {
            var client = new HttpClient();
            var queryString = HttpUtility.ParseQueryString(string.Empty);

            /* OAuth2 is required to access this API. For more information visit:
               https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks */



		   // Specify values for the following required parameters
			queryString["api-version"] = "1.6";
            // Specify values for path parameters (shown as {...})
            var uri = "https://graph.windows.net/me?" + queryString;


            var response = await client.GetAsync(uri);

            if (response.Content != null)
            {
                var responseString = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseString);
            }
        }
    }
}
@ECHO OFF

REM OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
REM Specify values for path parameters (shown as {...}), values for query parameters
curl -v -X GET "https://graph.windows.net/me?api-version=1.6&"^
// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
import java.net.URI;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class JavaSample {

  public static void main(String[] args) {
	HttpClient httpclient = HttpClients.createDefault();

	try
	{
		// OAuth2 is required to access this API. For more information visit:
		// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks

		// Specify values for path parameters (shown as {...})
		URIBuilder builder = new URIBuilder("https://graph.windows.net/me");
		// Specify values for the following required parameters
		builder.setParameter("api-version", "1.6");
		URI uri = builder.build();
		HttpGet request = new HttpGet(uri);
		HttpResponse response = httpclient.execute(request);
		HttpEntity entity = response.getEntity();
		if (entity != null) {
			System.out.println(EntityUtils.toString(entity));
		}
	}
	catch (Exception e)
	{
		System.out.println(e.getMessage());
	}
  }
}
<!DOCTYPE html>
<html>
<head>
<title>JSSample</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
	$(function() {
		// OAuth2 is required to access this API. For more information visit:
		// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks

		var params = {
			// Specify values for the following required parameters
			'api-version': "1.6",
		};
		
		$.ajax({
			// Specify values for path parameters (shown as {...})
			url: 'https://graph.windows.net/me?' + $.param(params),
			type: 'GET',
		})
		.done(function(data) {
			alert("success");
		})
		.fail(function() {
			alert("error");
		});
	});
</script>
</body>
</html>
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    
	// OAuth2 is required to access this API. For more information visit:
	// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks

	// Specify values for path parameters (shown as {...})
    NSString* path = @"https://graph.windows.net/me";
    NSArray* array = @[
                         @"entities=true",
                      ];
    
    NSString* string = [array componentsJoinedByString:@"&"];
    path = [path stringByAppendingFormat:@"?%@", string];
    NSLog(@"%@", path);

    NSMutableURLRequest* _request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path]];
    [_request setHTTPMethod:@"GET"];
    
    NSURLResponse *response = nil;
    NSError *error = nil;
    NSData* _connectionData = [NSURLConnection sendSynchronousRequest:_request returningResponse:&response error:&error];
    if(nil != error)
    {
        NSLog(@"Error: %@", error);
    }
    else
    {
        NSError* error = nil;
        NSMutableDictionary* json = nil;
        
        NSString* dataString = [[NSString alloc] initWithData:_connectionData encoding:NSUTF8StringEncoding];
        NSLog(@"%@", dataString);
        
        if(nil != _connectionData)
        {
            json = [NSJSONSerialization JSONObjectWithData:_connectionData options:NSJSONReadingMutableContainers error:&error];
        }
        
        if (error || !json)
        {
            NSLog(@"Could not parse loaded json with error:%@", error);
        }
        
        NSLog(@"%@", json);
        _connectionData = nil;
    }
    
    [pool drain];
    return 0;
}
<?php

// This sample uses the pecl_http package. (for more information: http://pecl.php.net/package/pecl_http)
require_once 'HTTP/Request2.php';
$headers = array(
);

$query_params = array(
	// Specify values for the following required parameters
	'api-version' => '1.6',
);

$request = new Http_Request2('https://graph.windows.net/me');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setHeader($headers);

// OAuth2 is required to access this API. For more information visit:
// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks

$url = $request->getUrl();
$url->setQueryVariables($query_params);

try
{
	$response = $request->send();
	
	echo $response->getBody();
}
catch (HttpException $ex)
{
	echo $ex;
}

?>
########### Python 2.7 #############
import httplib, urllib, base64

# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks

headers = {
}

params = urllib.urlencode({
	# Specify values for the following required parameters
	'api-version': '1.6',
})

try:
	conn = httplib.HTTPSConnection('graph.windows.net')
	# Specify values for path parameters (shown as {...}) and request body if needed
	conn.request("GET", "/me?%s" % params, "", headers)
	response = conn.getresponse()
	data = response.read()
	print(data)
	conn.close()
except Exception as e:
	print("[Errno {0}] {1}".format(e.errno, e.strerror))

####################################

########### Python 3.2 #############
import http.client, urllib.request, urllib.parse, urllib.error, base64

# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks

headers = {
}

params = urllib.parse.urlencode({
	# Specify values for the following required parameters
	'api-version': '1.6',
})

try:
	conn = http.client.HTTPSConnection('graph.windows.net')
	# Specify values for path parameters (shown as {...}) and request body if needed
	conn.request("GET", "/me?%s" % params, "", headers)
	response = conn.getresponse()
	data = response.read()
	print(data)
	conn.close()
except Exception as e:
	print("[Errno {0}] {1}".format(e.errno, e.strerror))

####################################
require 'net/http'

uri = URI('https://graph.windows.net/me')

uri.query = URI.encode_www_form({
	# Specify values for the following required parameters
	'api-version' => '1.6',
})

request = Net::HTTP::Get.new(uri.request_uri)

# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks



response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
    http.request(request)
end

puts response.body

###Get the signed-in user's manager (object) { "odata.metadata": "https://graph.windows.net/myorganization/$metadata#directoryObjects/Microsoft.DirectoryServices.User/@Element", "odata.type": "Microsoft.DirectoryServices.User", "objectType": "User", "objectId": "13addec1-c5ae-47f5-a1fe-202be14b1570", "deletionTimestamp": null, "accountEnabled": true, "signInNames": [], "assignedLicenses": [ { "disabledPlans": [], "skuId": "6fd2c87f-b296-42f0-b197-1e91e994b900" } ], "assignedPlans": [ { "assignedTimestamp": "2014-10-14T02:54:04Z", "capabilityStatus": "Enabled", "service": "exchange", "servicePlanId": "efb87545-963c-4e0d-99df-69c6916d9eb0" }, { "assignedTimestamp": "2014-10-14T02:54:04Z", "capabilityStatus": "Enabled", "service": "SharePoint", "servicePlanId": "5dbe027f-2339-4123-9542-606e4d348a72" }, { "assignedTimestamp": "2014-10-14T02:54:04Z", "capabilityStatus": "Enabled", "service": "SharePoint", "servicePlanId": "e95bec33-7c88-4a70-8e19-b10bd9d0c014" }, { "assignedTimestamp": "2014-10-14T02:54:04Z", "capabilityStatus": "Enabled", "service": "MicrosoftCommunicationsOnline", "servicePlanId": "0feaeb32-d00e-4d66-bd5a-43b5b83db82c" }, { "assignedTimestamp": "2014-10-14T02:54:04Z", "capabilityStatus": "Enabled", "service": "MicrosoftOffice", "servicePlanId": "43de0ff5-c92c-492b-9116-175376d08c38" }, { "assignedTimestamp": "2014-10-14T02:54:04Z", "capabilityStatus": "Enabled", "service": "RMSOnline", "servicePlanId": "bea4c11e-220a-4e6d-8eb8-8ea15d019f90" } ], "city": "Tulsa", "country": "United States", "creationType": null, "department": "Sales & Marketing", "dirSyncEnabled": null, "displayName": "Garth Fort", "facsimileTelephoneNumber": null, "givenName": "Garth", "immutableId": null, "jobTitle": "Web Marketing Manager", "lastDirSyncTime": null, "mail": "garthf@a830edad9050849NDA1.onmicrosoft.com", "mailNickname": "garthf", "mobile": null, "onPremisesSecurityIdentifier": null, "otherMails": [], "passwordPolicies": "None", "passwordProfile": null, "physicalDeliveryOfficeName": "20/1101", "postalCode": "74133", "preferredLanguage": "en-US", "provisionedPlans": [ { "capabilityStatus": "Enabled", "provisioningStatus": "Success", "service": "exchange" }, { "capabilityStatus": "Enabled", "provisioningStatus": "Success", "service": "MicrosoftCommunicationsOnline" }, { "capabilityStatus": "Enabled", "provisioningStatus": "Success", "service": "SharePoint" }, { "capabilityStatus": "Enabled", "provisioningStatus": "Success", "service": "SharePoint" }, { "capabilityStatus": "Enabled", "provisioningStatus": "Success", "service": "MicrosoftOffice" } ], "provisioningErrors": [], "proxyAddresses": [ "SMTP:garthf@a830edad9050849NDA1.onmicrosoft.com" ], "sipProxyAddress": "garthf@a830edad9050849NDA1.onmicrosoft.com", "state": "OK", "streetAddress": "7633 E. 63rd Place, Suite 300", "surname": "Fort", "telephoneNumber": "+1 918 555 0101", "usageLocation": "US", "userPrincipalName": "garthf@a830edad9050849NDA1.onmicrosoft.com", "userType": "Member" }

###Get the signed-in user's manager (link)

GET https://graph.windows.net/me/$links/manager[?api-version]

Parameters |Parameter| Type|Value|Notes| |---------|-----|-----|------| |Query| |api-version| string |1.6|Specifies the version of the Graph API to target. Beginning with version 1.5, the api-version string is represented in major.minor format. Prior releases were represented as date strings: '2013-11-08' and '2013-04-05'. Required.|

Response

Status Code:200

Content-Type: application/json

{
  "odata.metadata": "https://graph.windows.net/myorganization/$metadata#directoryObjects/$links/manager",
  "url": "https://graph.windows.net/myorganization/directoryObjects/fabeb27a-0481-4a80-b43e-a5c02c125874/Microsoft.WindowsAzure.ActiveDirectory.User"
}

Response List |Status Code|Description| |------|------| |200 |OK. Indicates success. A link to the signed-in user's manager is returned.| |404| Not Found. The requested resource was not found. This could be due to a bad domain, a bad user ID, or can occur if the manager property is not currently set for the specified user.|

Code Samples

using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;

namespace CSHttpClientSample
{
    static class Program
    {
	    static void Main()
        {
            MakeRequest();

            Console.WriteLine("Hit ENTER to exit...");
            Console.ReadLine();
        }

        static async void MakeRequest()
        {
            var client = new HttpClient();
            var queryString = HttpUtility.ParseQueryString(string.Empty);

            /* OAuth2 is required to access this API. For more information visit:
               https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks */



			// Specify values for optional parameters, as needed
			// queryString["api-version"] = "1.6";
            // Specify values for path parameters (shown as {...})
            var uri = "https://graph.windows.net/me/$links/manager?" + queryString;


            var response = await client.GetAsync(uri);

            if (response.Content != null)
            {
                var responseString = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseString);
            }
        }
    }
}
@ECHO OFF

REM OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
REM Specify values for path parameters (shown as {...}), values for query parameters
curl -v -X GET "https://graph.windows.net/me/$links/manager?api-version=1.6&amp;"^
// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
import java.net.URI;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class JavaSample {

  public static void main(String[] args) {
	HttpClient httpclient = HttpClients.createDefault();

	try
	{
		// OAuth2 is required to access this API. For more information visit:
		// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks

		// Specify values for path parameters (shown as {...})
		URIBuilder builder = new URIBuilder("https://graph.windows.net/me/$links/manager");
		// Specify values for optional parameters, as needed
		// builder.setParameter("api-version", "1.6");
		URI uri = builder.build();
		HttpGet request = new HttpGet(uri);
		HttpResponse response = httpclient.execute(request);
		HttpEntity entity = response.getEntity();
		if (entity != null) {
			System.out.println(EntityUtils.toString(entity));
		}
	}
	catch (Exception e)
	{
		System.out.println(e.getMessage());
	}
  }
}
<!DOCTYPE html>
<html>
<head>
<title>JSSample</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
	$(function() {
		// OAuth2 is required to access this API. For more information visit:
		// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks

		var params = {
			// Specify values for optional parameters, as needed
			// api-version: "1.6",
		};
		
		$.ajax({
			// Specify values for path parameters (shown as {...})
			url: 'https://graph.windows.net/me/$links/manager?' + $.param(params),
			type: 'GET',
		})
		.done(function(data) {
			alert("success");
		})
		.fail(function() {
			alert("error");
		});
	});
</script>
</body>
</html>
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    
	// OAuth2 is required to access this API. For more information visit:
	// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks

	// Specify values for path parameters (shown as {...})
    NSString* path = @"https://graph.windows.net/me/$links/manager";
    NSArray* array = @[
                         @"entities=true",
                      ];
    
    NSString* string = [array componentsJoinedByString:@"&"];
    path = [path stringByAppendingFormat:@"?%@", string];
    NSLog(@"%@", path);

    NSMutableURLRequest* _request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path]];
    [_request setHTTPMethod:@"GET"];
    
    NSURLResponse *response = nil;
    NSError *error = nil;
    NSData* _connectionData = [NSURLConnection sendSynchronousRequest:_request returningResponse:&response error:&error];
    if(nil != error)
    {
        NSLog(@"Error: %@", error);
    }
    else
    {
        NSError* error = nil;
        NSMutableDictionary* json = nil;
        
        NSString* dataString = [[NSString alloc] initWithData:_connectionData encoding:NSUTF8StringEncoding];
        NSLog(@"%@", dataString);
        
        if(nil != _connectionData)
        {
            json = [NSJSONSerialization JSONObjectWithData:_connectionData options:NSJSONReadingMutableContainers error:&error];
        }
        
        if (error || !json)
        {
            NSLog(@"Could not parse loaded json with error:%@", error);
        }
        
        NSLog(@"%@", json);
        _connectionData = nil;
    }
    
    [pool drain];
    return 0;
}
<?php

// This sample uses the pecl_http package. (for more information: http://pecl.php.net/package/pecl_http)
require_once 'HTTP/Request2.php';
$headers = array(
);

$query_params = array(
	// Specify values for optional parameters, as needed
	//'api-version' => '1.6',
);

$request = new Http_Request2('https://graph.windows.net/me/$links/manager');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setHeader($headers);

// OAuth2 is required to access this API. For more information visit:
// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks

$url = $request->getUrl();
$url->setQueryVariables($query_params);

try
{
	$response = $request->send();
	
	echo $response->getBody();
}
catch (HttpException $ex)
{
	echo $ex;
}

?>
########### Python 2.7 #############
import httplib, urllib, base64

# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks

headers = {
}

params = urllib.urlencode({
	# Specify values for optional parameters, as needed
	#'api-version': '1.6',
})

try:
	conn = httplib.HTTPSConnection('graph.windows.net')
	# Specify values for path parameters (shown as {...}) and request body if needed
	conn.request("GET", "/me/$links/manager?%s" % params, "", headers)
	response = conn.getresponse()
	data = response.read()
	print(data)
	conn.close()
except Exception as e:
	print("[Errno {0}] {1}".format(e.errno, e.strerror))

####################################

########### Python 3.2 #############
import http.client, urllib.request, urllib.parse, urllib.error, base64

# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks

headers = {
}

params = urllib.parse.urlencode({
	# Specify values for optional parameters, as needed
	#'api-version': '1.6',
})

try:
	conn = http.client.HTTPSConnection('graph.windows.net')
	# Specify values for path parameters (shown as {...}) and request body if needed
	conn.request("GET", "/me/$links/manager?%s" % params, "", headers)
	response = conn.getresponse()
	data = response.read()
	print(data)
	conn.close()
except Exception as e:
	print("[Errno {0}] {1}".format(e.errno, e.strerror))

####################################
require 'net/http'

uri = URI('https://graph.windows.net/me/$links/manager')

uri.query = URI.encode_www_form({
	# Specify values for optional parameters, as needed
	# 'api-version' => '1.6',
})

request = Net::HTTP::Get.new(uri.request_uri)

# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks



response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
    http.request(request)
end

puts response.body

###Update the signed-in user's manager

PUT https://graph.windows.net/me/$links/manager?api-version

Parameters |Parameter |Type| Value| Notes| |-----------|----|------|--------| |Query| |api-version| string | 1.6 |Specifies the version of the Graph API to target. Beginning with version 1.5, the api-version string is represented in major.minor format. Prior releases were represented as date strings: '2013-11-08' and '2013-04-05'. Required.| |Body| |Content-Type: application/json|

{
  "url": "https://graph.windows.net/contoso.onmicrosoft.com/directoryObjects/fabeb27a-0481-4a80-b43e-a5c02c125874"
}

Response

Status Code:204

Content-Type: application/json

Response List

Status CodeDescription
204No Content. Indicates success. No response body is returned.
404Not Found. The requested resource was not found. For exmaple, this could be due to a bad domain.

Recursos adicionales

  • Aprenda más sobre las características, funcionalidades y características de la versión preliminar que se admiten en API Graph en los conceptos de la API Graph.