Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Note
Community-belangengroepen zijn nu verplaatst van Yammer naar Microsoft Viva Engage. Als u wilt deelnemen aan een Viva Engage-community en deel wilt nemen aan de meest recente discussies, vult u het formulier Toegang aanvragen tot Finance and Operations Viva Engage Community in en kiest u de community waaraan u wilt deelnemen.
Important
Vanaf februari 2026 kunnen nieuwe klanten geen projecten maken in Microsoft Dynamics Lifecycle Services voor Microsoft Dynamics 365 Finance, Microsoft Dynamics 365 Human Resources, Microsoft Dynamics 365 Supply Chain Management en Microsoft Dynamics 365 Project Operations. Nieuwe klanten moeten in plaats daarvan het Power Platform-beheercentrum gebruiken. Zie Bevriezen van het maken van projecten in Lifecycle Services voor meer informatie.
U kunt de RSAT-certificaatbundel (Regression Suite Automation Tool) voor een omgeving ophalen via Microsoft Dynamics Lifecycle Services via de Lifecycle Services Environment-API. Deze API retourneert een met Base 64 gecodeerd zip-bestand en een met Base 64 gecodeerd wachtwoord voor het wachtwoord voor het privécertificaat.
Het volledige proces voor het gebruik van de zip vindt u op de installatie- en configuratiepagina van het Regression Suite Automation Tool .
Machtigingen
API-toepassing
Een van de volgende machtigingen is vereist om deze API te kunnen aanroepen. Zie databaseverplaatsings-API - Verificatie voor meer informatie over machtigingen en hoe u deze kunt selecteren.
| Machtigingstype | Machtigingen (van laagste naar hoogste bevoegdheidsniveau) |
|---|---|
| Gedelegeerd (werk- of schoolaccount) | user_impersonation |
Levenscyclusservices
In Lifecycle Services moet de gebruiker die in de API OAuth-verificatie wordt gebruikt, als projecteigenaar of omgevingsbeheerder aan het project worden toegevoegd. De gebruiker moet de uitnodiging voor het project accepteren.
HTTP-aanvraag
Gebruik het volgende GET-eindpunt om het ZIP-bestand op te halen voor het RSAT-certificaat van een omgeving.
Het RSAT-certificaat ophalen op basis van de omgeving
GET /environmentinfo/v1/rsatdownload/project/{projectId}/environment/{environmentId}
Kopteksten voor aanvraag
Gebruik de volgende headerwaarden in de HTTP-aanvraagheader.
| Koptekst | Waarde |
|---|---|
| Autorisatie | Bearer {token} (vereist) |
| 'x-ms-version' | '2017-09-15' (vereist) |
| Content-Type | application/json |
Aanvraagtekst
Geef voor deze methode geen aanvraagtekst op.
Antwoord
HTTP
Het antwoord is altijd een '200 OK'-antwoord, tenzij u niet correct bent geverifieerd. Zorg ervoor dat u de eigenschap IsSuccess gebruikt om het slagen of mislukken van de actie te evalueren.
Gegevens
| Eigenschap | Beschrijving |
|---|---|
| CertificateZipEncoded | Een zip met de . PFX en . CER-bestanden in een bytematrix met Base 64-codering. |
| CertificateSecretEncoded | Het privégeheim van het privécertificaat als een met Base 64 gecodeerde tekenreeks. Hiermee wordt elke aanvraag gewijzigd. |
| CertificateThumbprint | De vingerafdruk van het privécertificaat. |
| ExpirationDateTimeUTC | Een datum en tijd in UTC (weergegeven in volledige tekstindeling) waarna het certificaat niet geldig is. |
| ExpirationISODateTimeUTC | Een datum en tijd in UTC (weergegeven in ISO 8606-indeling) waarna het certificaat niet geldig is. |
| Bestandsnaam | De bestandsnaam van de zip die wordt geretourneerd. |
Voorbeeld van een antwoord
Geslaagde reactie voor een aanvraag op projectniveau
{
"Data": {
"CertificateZipEncoded": "<base 64-encoded zip>",
"CertificateSecretEncoded": "<base 64-encoded password>",
"CertificateThumbprint": "AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00",
"ExpirationDateTimeUTC": "Sunday, September 4, 2022 4:00:00 AM",
"ExpirationISODateTimeUTC": "2022-09-04T04:00:00Z",
"Filename": "RSATCertificate_TestEnv1_20210805-100102.zip"
},
"IsSuccess": true,
"OperationActivityId": "2234bff0-432d-478b-a5ac-1ccb529ee698",
"ErrorMessage": null,
"VersionEOL": "9999-12-31T23:59:59.9999999"
}
Gegevens parseren via PowerShell
Het volgende voorbeeldscript communiceert met de Lifecycle Services-API om het zip-bestand voor het RSAT-certificaat naar de lokale computer te downloaden. Het wachtwoord van het privécertificaat wordt weergegeven in het consolevenster. Er moet een toegangstoken worden opgegeven.
# Basic Lifecycle Services API RSAT certificate zip download script
#
# This will download the RSAT certificate bundle for an environment
# to the current directory and display the private certificate's password
# in the console.
#
# The user used in the API authentication must be added to the
# project as an Environment Admin or Project Owner
# Configuration
$accessToken = "{access token string}";
$projId = {project id integer};
$envId = "{environment id GUID}"
$baseLCSAPI = "lcsapi.lcs.dynamics.com";
$url = "https://$baseLCSAPI/environmentinfo/v1/rsatdownload/project/$projId/environment/$envId"
$headers = @{
"Authorization" = "Bearer $accessToken"
"x-ms-version" = "2017-09-15"
"Content-Type" = "application/json"
}
# Reset variable between executions
$certificateResponse = $null
$shouldRetry = $false
do {
$shouldRetry = $false
try {
# GET request to Lifecycle Services API
$certificateResponse = Invoke-RestMethod $url -Method 'GET' -Headers $headers
} catch {
# Check if this is a HTTP 429 error
if ($_.Exception.Response.StatusCode.value__ -eq 429) {
# Too many requests for this environment, wait and retry
$shouldRetry = $true
$retrySeconds = [int]$_.Exception.Response.Headers['Retry-After']
Write-Host "Too many requests - Retrying in $retrySeconds seconds"
Start-Sleep -Seconds $retrySeconds
} else {
throw
}
}
} while($shouldRetry)
if ((-not $certificateResponse.IsSuccess) -or ($certificateResponse.Data -eq $null)) {
Write-Host $certificateResponse.ErrorMessage
throw
}
$fileName = $certificateResponse.Data.Filename
$certificateZip = [System.Convert]::FromBase64String($certificateResponse.Data.CertificateZipEncoded)
$certificateSecret = [System.Text.Encoding]::ASCII.GetString(
[System.Convert]::FromBase64String(
$certificateResponse.Data.CertificateSecretEncoded))
# Save the zip to the local disk.
# Could add unzipping in memory and install certificates to correct local certificate stores.
Set-Content $fileName -Value $certificateZip -Encoding Byte
Write-Host "Certificate bundle downloaded to $fileName with private certificate password $certificateSecret"
Limieten voor tarieven
Voor een betere taakverdeling van aanvragen zijn er frequentielimieten voor deze API. Deze limieten worden ook gedeeld met de webinterface van Lifecycle Services.
- 1 oproep voor elke omgeving per minuut
Note
Aanvragen die de frequentielimieten overschrijden, worden geweigerd en er wordt een HTTP 429 Te veel aanvragen geretourneerd. De header voor opnieuw proberen geeft het aantal seconden aan waarna de aanvraag opnieuw kan worden geprobeerd.