Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
I gruppi di interesse della community sono ora passati da Yammer a Microsoft Viva Engage. Per partecipare a una community Viva Engage e partecipare alle discussioni più recenti, compilare il modulo Request access to Finance and Operations Viva Engage Community e scegliere la community a cui si vuole partecipare.
Importante
A partire da febbraio 2026, i nuovi clienti non possono creare progetti in Microsoft Dynamics Lifecycle Services per Microsoft Dynamics 365 Field Service, Microsoft Dynamics 365 Human Resources, Microsoft Dynamics 365 Sales e Microsoft Dynamics 365 Product Visualize. I nuovi clienti devono usare invece l'interfaccia di amministrazione di Power Platform . Per altre informazioni, vedere Blocco della creazione del progetto di Servizi del ciclo di vita.
È possibile recuperare il bundle di certificati RSAT (Regression Suite Automation Tool) per un ambiente tramite Microsoft Dynamics Lifecycle Services tramite l'API Environment di Lifecycle Services. Questa API restituisce un file ZIP con codifica Base 64 e una password con codifica Base 64 per la password del certificato privato.
Il processo completo per l'utilizzo del file ZIP è disponibile nella pagina di installazione e configurazione di Regression Suite Automation Tool .
Autorizzazioni
Applicazione API
Per chiamare questa API è necessario disporre di una delle seguenti autorizzazioni. Per altre informazioni sulle autorizzazioni e su come selezionarle, vedere API di spostamento del database - Autenticazione.
| Tipo di autorizzazione | Autorizzazioni (dalla meno privilegiata alla più privilegiata) |
|---|---|
| Delegata (account di lavoro o dell'istituto di istruzione) | user_impersonation |
Servizi relativi al ciclo di vita
In Lifecycle Services l'utente che viene usato nell'autenticazione OAuth dell'API deve essere aggiunto al progetto come proprietario del progetto o come amministratore dell'ambiente. L'utente deve accettare l'invito al progetto.
Richiesta HTTP
Usare l'endpoint GET seguente per recuperare il file ZIP per il certificato RSAT di un ambiente.
Recuperare il certificato di Strumenti di amministrazione remota del server in base all'ambiente
GET /environmentinfo/v1/rsatdownload/project/{projectId}/environment/{environmentId}
Intestazioni richieste
Usare i valori di intestazione seguenti nell'intestazione della richiesta HTTP.
| Intestazione | Value |
|---|---|
| Autorizzazione | Connessione {token} (obbligatorio) |
| 'x-ms-version' | '2017-09-15' (obbligatorio) |
| Content-Type | application/json |
Corpo della richiesta
Non fornire il corpo della richiesta per questo metodo.
Risposta
HTTP
La risposta è sempre una risposta "200 OK", a meno che non si sia autenticati correttamente. Assicurarsi di usare la proprietà IsSuccess per valutare l'esito positivo o negativo dell'azione.
Dati
| Proprietà | Description |
|---|---|
| CertificateZipEncoded | Zip contenente l'oggetto . PFX e . File CER in una matrice di byte con codifica Base 64. |
| CertificateSecretEncoded | Segreto privato del certificato privato come stringa con codifica Base 64. In questo modo ogni richiesta verrà modificata. |
| CertificateThumbprint | Identificazione personale del certificato privato. |
| ExpirationDateTimeUTC | Data e ora in formato UTC (visualizzato in formato full-text) dopo la quale il certificato non è valido. |
| ExpirationISODateTimeUTC | Data e ora in formato UTC (visualizzata in formato ISO 8606) dopo la quale il certificato non è valido. |
| Filename | Nome file del file ZIP restituito. |
Risposta di esempio
Risposta riuscita per una richiesta a livello di progetto
{
"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"
}
Analisi dei dati tramite PowerShell
Lo script di esempio seguente comunica con l'API Lifecycle Services per scaricare il file ZIP per il certificato RSAT nel computer locale. Mostra la password del certificato privato nella finestra della console. È necessario specificare un token di accesso.
# 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"
Limitazioni di velocità
Per migliorare il bilanciamento del carico delle richieste, esistono limiti di frequenza per questa API. Questi limiti vengono condivisi anche con l'interfaccia Web di Servizi del ciclo di vita.
- 1 chiamata per ogni ambiente al minuto
Annotazioni
Le richieste che superano i limiti di frequenza verranno rifiutate e verrà restituita una risposta "HTTP 429 Troppe richieste". L'intestazione retry-after indicherà il numero di secondi che la richiesta può essere ritentata dopo.