Pastaba.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti prisijungti arba pakeisti katalogus.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti pakeisti katalogus.
Taikoma šioms „Dynamics 365“ programoms:
„Human Resources“
Šiame straipsnyje apžvelgiama, kaip autentifikuoti naudojant „Microsoft“ Dynamics 365 Human Resources duomenų programų programavimo sąsają (API).
Apžvalga
„Human Resources“ skirta duomenų API yra „OData“ diegimas. Daugiau informacijos žr. „Open Data Protocol“ („OData“).
Jūsų programa turi autentifikuotis kaip įgaliotas skambintojas, kad API paslaugos pateiktų užklausas iš jūsų programos.
Pagrindai
Siekiant iškviesti duomenų API, programa turi gauti „Microsoft“ tapatumo platformos prieigos atpažinimo ženklą. Prieigos atpažinimo ženkle yra informacija apie jūsų programą ir teisė iškviesti „Human Resources“ išteklius.
Prieigos atpažinimo ženklas
„Microsoft“ tapatumo platformos išduodami prieigos atpažinimo ženklai yra base64 užkoduoti „JavaScript Object Notation“ (JSON) žiniatinklio atpažinimo ženklai (JWT). Jose yra informacija (paraiškos), kad duomenų API (ir kitos žiniatinklio API, saugomos „Microsoft“ tapatumo platformos) yra naudojamos kvietyklei patvirtinti ir įsitikinti, kad kvietyklė turi tinkamas teises prašomai operacijai atlikti. Skambučių metu galite laikyti prieigos atpažinimo ženklus nepermatomais. Prieigos atpažinimo ženklus visada turite perduoti saugiais kanalais, tokiais kaip transportavimo lygmens sauga (TLS) ir Hypertext Transfer Protocol Secure (HTTPS).
Štai prieigos atpažinimo ženklo, kurį išduoda "„Microsoft“ tapatybės platforma", pavyzdys.
EwAoA8l6BAAU7p9QDpi/D7xJLwsTgCg3TskyTaQAAXu71AU9f4aS4rOK5xoO/SU5HZKSXtCsDe0Pj7uSc5Ug008qTI+a9M1tBeKoTs7tHzhJNSKgk7pm5e8d3oGWXX5shyOG3cKSqgfwuNDnmmPDNDivwmi9kmKqWIC9OQRf8InpYXH7NdUYNwN+jljffvNTewdZz42VPrvqoMH7hSxiG7A1h8leOv4F3Ek/oeJX6U8nnL9nJ5pHLVuPWD0aNnTPTJD8Y4oQTp5zLhDIIfaJCaGcQperULVF7K6yX8MhHxIBwek418rKIp11om0SWBXOYSGOM0rNNN59qNiKwLNK+MPUf7ObcRBN5I5vg8jB7IMoz66jrNmT2uiWCyI8MmYDZgAACPoaZ9REyqke+AE1/x1ZX0w7OamUexKF8YGZiw+cDpT/BP1GsONnwI4a8M7HsBtDgZPRd6/Hfqlq3HE2xLuhYX8bAc1MUr0gP9KuH6HDQNlIV4KaRZWxyRo1wmKHOF5G5wTHrtxg8tnXylMc1PKOtaXIU4JJZ1l4x/7FwhPmg9M86PBPWr5zwUj2CVXC7wWlL/6M89Mlh8yXESMO3AIuAmEMKjqauPrgi9hAdI2oqnLZWCRL9gcHBida1y0DTXQhcwMv1ORrk65VFHtVgYAegrxu3NDoJiDyVaPZxDwTYRGjPII3va8GALAMVy5xou2ikzRvJjW7Gm3XoaqJCTCExN4m5i/Dqc81Gr4uT7OaeypYTUjnwCh7aMhsOTDJehefzjXhlkn//2eik+NivKx/BTJBEdT6MR97Wh/ns/VcK7QTmbjwbU2cwLngT7Ylq+uzhx54R9JMaSLhnw+/nIrcVkG77Hi3neShKeZmnl5DC9PuwIbtNvVge3Q+V0ws2zsL3z7ndz4tTMYFdvR/XbrnbEErTDLWrV6Lc3JHQMs0bYUyTBg5dThwCiuZ1evaT6BlMMLuSCVxdBGzXTBcvGwihFzZbyNoX+52DS5x+RbIEvd6KWOpQ6Ni+1GAawHDdNUiQTQFXRxLSHfc9fh7hE4qcD7PqHGsykYj7A0XqHCjbKKgWSkcAg==
Norėdami iškviesti duomenų API, pridėkite prieigos atpažinimo ženklą kaip nešiklio atpažinimo ženklą prie HTTP užklausos autorizacijos antraštės. Štai pavyzdys.
HTTP/1.1
Authorization: Bearer EwAoA8l6BAAU ... 7PqHGsykYj7A0XqHCjbKKgWSkcAg==
Host: https://{cluster}.hr.talent.dynamics.com
GET https://{cluster}.hr.talent.dynamics.com/namespaces/{namespace_guid}/data/JobTypes
Naudodami „Azure“ portalą, užregistruokite naują programą
Prisijunkite prie portalo Microsoft Azure naudodami darbo ar mokyklos paskyrą arba asmeninę Microsoft paskyrą.
Jei jūsų abonementas suteikia prieigą prie daugiau nei vieno nuomotojo, viršutiniame dešiniajame kampe pasirinkite savo abonementą ir nustatykite norimą portalo seanso metu Microsoft Entra nuomotoją.
Kairiojoje srityje pasirinkite Microsoft Entra ID tarnybą, tada pasirinkite Programų registracijos Nauja > registracija.
Kai pasirodys puslapis Registruoti programą, įveskite programos registracijos informaciją:
Pavadinimas: įveskite prasmingą programos pavadinimą, kurį mato vartotojai.
Palaikomi paskyrų tipai: pasirinkite paskyrų, kurias palaiko programa, tipus.
Palaikomi sąskaitų tipai Aprašą Paskyros tik šiame organizaciniame kataloge Pasirinkite šią pasirinktį, jei kuriate verslui skirtą programą. Ši parinktis pasiekiama tik tuo atveju, jei registruojate programą kataloge. Ši parinktis susieta tik su Microsoft Entra vienu nuomotoju.
Ši parinktis yra numatytoji parinktis, nebent registruojate programą ne kataloge. Tokiu atveju numatytoji parinktis yra Microsoft Entra kelių nuomininkų ir asmeninės „Microsoft“ paskyros.
Paskyros bet kokiame organizaciniame kataloge Pasirinkite šią parinktį, norėdami tiksline auditorija pasirinkti visus verslo ir mokslo klientus. Ši parinktis susieta tik su Microsoft Entra keliais nuomotojais.
Jei užregistravote programą tik kaip Microsoft Entra vieną nuomininką, galite naudoti autentifikavimo ašmenis, kad atnaujintumėte ją Microsoft Entra tik į kelis nuomininkus , o tada grįžtumėte tik į Microsoft Entra vieną nuomininką.
Bet kokio organizacinio katalogo paskyros ir asmeninės „„Microsoft““ paskyros Pasirinkite šia parinktį, kad tiksline auditorija pasirinktumėte didžiausią klientų grupę. Ši parinktis susieta su Microsoft Entra kelių nuomininkų ir asmeninėmis „Microsoft“ paskyromis.
Jei užregistravote programą kaip Microsoft Entra kelių nuomininkų ir asmenines „Microsoft“ paskyras, negalite pakeisti šio nustatymo vartotojo sąsajoje (UI). Vietoj to naudokite programos manifesto rengyklę, kad pakeistumėte palaikomus paskyrų tipus.
Nukreipimo URI (pasirinktinai) – pasirinkite, kokio tipo programą kuriate: Žiniatinklio ar Viešojo kliento (skirta mobiliesiems įrenginiams ir asmeniniams kompiuteriams). Tada įveskite programos nukreipimo URI (arba atsakymo URL).
- Norėdami naudoti žiniatinklio programas, nurodykite pagrindinį programos URL. Pavyzdžiui,
http://localhost:31544gali būti jūsų vietiniame kompiuteryje veikiančios žiniatinklio programos URL. Tada vartotojai naudoja šį URL, kad prisijungtų prie žiniatinklio kliento programos. - Jei naudojate viešojo kliento programas, pateikite URI, kuris Microsoft Entra naudojamas žetonų atsakymams pateikti. Įveskite programai būdingą reikšmę, pvz
myapp://auth., .
Norėdami pamatyti konkrečius žiniatinklio programų arba savųjų programų pavyzdžius, peržiūrėkite greitąjį paleidimą Microsoft tapatybės platformoje (anksčiau – Microsoft Entra ID kūrėjai).
- Norėdami naudoti žiniatinklio programas, nurodykite pagrindinį programos URL. Pavyzdžiui,
Dalyje API teisėspasirinkite Įtraukti teisę. Tada skirtuke API, kurias naudoja mano organizacija, ieškokite Dynamics 365 Human Resources ir įtraukite user_impersonation leidimą į savo programą. „Human Resources“ programos ID yra f9be0c49-aa22-4ec6-911a-c5da515226ff. Naudokite šį ID norėdami įsitikinti, kad pasirinkote tinkamą programą.
Pasirinkite Registruotis.
Microsoft Entra programai priskiria unikalų programos ID (kliento ID) ir nukreipia jus į programos apžvalgos puslapį. Norėdami įtraukti daugiau galimybių į programą, pasirinkite kitas konfigūracijos parinktis, pvz., prekės ženklo kūrimo ir sertifikatų bei paslapčių parinktis.
Prieigos atpažinimo ženklo nuskaitymas
Prieigos atpažinimo ženklo, skirto žmogiškųjų išteklių duomenų API iškvietimui, gavimo būdas priklauso nuo technologijų, kurias naudojate kurdami kliento programą. Pavyzdžiui, galite išbandyti naudodami trečiosios šalies programą, sukurti C# konsolės programą ar žiniatinklio paslaugą arba sukurti JavaScript/TypeScript klientą.
C# kliento programos pavyzdys:
using System;
using System.Net.Http;
using System.Threading.Tasks;
// requires appropriate NuGet package references in the project
using Microsoft.IdentityModel.Clients.ActiveDirectory;
namespace TalentODataPoC
{
class Program
{
// prereq: This client app must be registered in Microsoft Entra ID. The app must be
// registered as requiring permission to the Dynamics 365 for Talent API (with the Dynamics
// HCM Workload delegated permission).
static string clientId = "00001111-aaaa-2222-bbbb-3333cccc4444"; // This value should be obtained from Microsoft Entra and must match your registered app
static string talentNamespaceUri = "";
public static async Task CallTalentODataService()
{
// authority URI
UriBuilder uri = new UriBuilder("https://login.microsoftonline.com/common");
AuthenticationContext authenticationContext = new AuthenticationContext(uri.ToString());
// request token for the resource we want to access (Human Resources). This will authenticate
// the user and return an access token containing claims for the authenticated user.
var authResult = await authenticationContext.AcquireTokenAsync(
"http://hr.talent.dynamics.com", /*Talent app id or resource URI*/
clientId, /*registered client app id*/
new Uri("https://localhost"), /*redirect URI, as registered in your Microsoft Entra app*/
new PlatformParameters(PromptBehavior.SelectAccount));
// create the authorization header, which needs to be passed in the Header of the HTTP Requests to Talent
string authHeader = authResult.CreateAuthorizationHeader();
// HINT: paste the JWT into https://jwt.ms to decode and view it
Console.Write("authHeader: ");
Console.WriteLine(authHeader);
Console.WriteLine();
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", authHeader);
string s;
Console.Write("Talent Namespace URI: ");
Console.WriteLine(talentNamespaceUri);
Console.WriteLine();
// call the OData service to get JobType data from Talent
var resultOdata = await client.GetAsync(talentNamespaceUri + "data/JobTypes");
s = await resultOdata.Content.ReadAsStringAsync();
Console.WriteLine(s);
Console.WriteLine();
}
static void Main(string[] args)
{
Console.WriteLine();
// if the user passes in a single parameter, assume it is the namespaceUri for Talent
if (args.Length == 1)
{
talentNamespaceUri = args[0];
} else if (args.Length == 0)
{
Console.WriteLine("Enter Talent URL including namespace.");
Console.WriteLine("Example: https://aos-rts-sf-21454f9d830-prod-westus2.hr.talent.dynamics.com/namespaces/2328af1a-2d45-4c6a-99e3-12a4c3867dcf/");
Console.Write("> ");
talentNamespaceUri = Console.ReadLine();
if (!talentNamespaceUri.EndsWith("/"))
{
talentNamespaceUri = talentNamespaceUri + "/";
}
} else
{
Console.WriteLine("Unexpected Arguments");
System.Environment.Exit(1);
}
Task t = Program.CallTalentODataService();
t.Wait();
}
}
}
Nuskaitę prieigos raktą, perduokite jį antraštėje Authorization kaip pareikštinį atpažinimo ženklą su kiekviena užklausa, kurią siunčiate duomenų API, kaip aprašyta anksčiau.