Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Note
Los grupos de interés de la comunidad ahora se han movido de Yammer a Microsoft Viva Engage. Para unirse a una comunidad de Viva Engage y participar en las últimas discusiones, complete el formulario Solicitud de acceso a la Comunidad de Viva Engage de Finanzas y Operaciones y elija la comunidad a la que desea unirse.
Importante
A partir de febrero de 2026, los nuevos clientes no pueden crear proyectos en Microsoft Dynamics Lifecycle Services para Microsoft Dynamics 365 Finance, Microsoft Dynamics 365 Human Resources, Microsoft Dynamics 365 Supply Chain Management y Microsoft Dynamics 365 Project Operations. En su lugar, los nuevos clientes deben usar el Centro de administración de Power Platform . Para obtener más información, consulte Congelación en la creación de proyectos de Lifecycle Services.
Puede capturar el conjunto de certificados de la Herramienta de automatización de conjuntos de regresión (RSAT) para un entorno a través de Microsoft Dynamics Lifecycle Services Services a través de la API del entorno de Servicios de ciclo de vida. Esta API devuelve un archivo ZIP codificado en Base 64 y una contraseña codificada en Base 64 para la contraseña de certificado privado.
El proceso completo para consumir el archivo ZIP se puede encontrar en la página de instalación y configuración de la herramienta automation de Regression Suite .
Permisos
Aplicación de API
Se requiere uno de los siguientes permisos para llamar a esta API. Para obtener más información sobre los permisos y cómo seleccionarlos, consulte API de movimiento de bases de datos: autenticación.
| Tipo de permiso | Permisos (de menos a más privilegios) |
|---|---|
| Delegado (cuenta profesional o educativa) | user_impersonation |
Servicios de ciclo de vida
En Lifecycle Services, el usuario que se usa en la autenticación de OAuth de API debe agregarse al proyecto como propietario del proyecto o administrador de entornos. El usuario debe aceptar la invitación al proyecto.
Solicitud HTTP
Use el siguiente punto de conexión GET para capturar el archivo ZIP para el certificado RSAT de un entorno.
Captura del certificado RSAT por entorno
GET /environmentinfo/v1/rsatdownload/project/{projectId}/environment/{environmentId}
Encabezados de solicitud
Use los siguientes valores de encabezado en el encabezado de solicitud HTTP.
| Encabezado | Value |
|---|---|
| Autorización | Portador {token} (obligatorio) |
| "x-ms-version" | '2017-09-15' (obligatorio) |
| Content-Type | application/json |
Cuerpo de la solicitud
No proporcione un cuerpo de solicitud para este método.
Respuesta
HTTP
La respuesta siempre es una respuesta "200 OK", a menos que no se autentique correctamente. Asegúrese de usar la propiedad IsSuccess para evaluar el éxito o el error de la acción.
Datos
| Propiedad | Description |
|---|---|
| CertificateZipEncoded | Un archivo ZIP que contiene . PFX y . Archivos CER en una matriz de bytes codificada en Base 64. |
| CertificateSecretEncoded | Secreto privado del certificado privado como una cadena codificada en Base 64. Esto cambiará cada solicitud. |
| CertificateThumbprint | Huella digital del certificado privado. |
| ExpirationDateTimeUTC | Fecha y hora en UTC (que se muestra en formato de texto completo) después del cual el certificado no es válido. |
| ExpirationISODateTimeUTC | Fecha y hora en UTC (que se muestra en formato ISO 8606) después del cual el certificado no es válido. |
| Nombre de archivo | Nombre de archivo del archivo zip que se devuelve. |
Respuesta de ejemplo
Respuesta correcta para una solicitud de nivel de proyecto
{
"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"
}
Análisis de datos mediante PowerShell
El siguiente script de ejemplo se comunica con la API de Lifecycle Services para descargar el archivo ZIP del certificado RSAT en la máquina local. Muestra la contraseña del certificado privado en la ventana de la consola. Se debe proporcionar un token de acceso.
# 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"
Límites de tarifas
Para equilibrar mejor la carga de las solicitudes, hay límites de velocidad en esta API. Estos límites también se comparten con la interfaz web de Lifecycle Services.
- 1 llamada para cada entorno por minuto
Note
Se rechazarán las solicitudes que superen los límites de velocidad y se devolverá una respuesta "HTTP 429 Demasiadas solicitudes". El encabezado retry-after indicará el número de segundos que se puede reintentar la solicitud después.