Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
Os grupos de interesse da comunidade passaram do Yammer para o Microsoft Viva Engage. Para se juntar a uma comunidade Viva Engage e participar nas discussões mais recentes, preencha o formulário Solicitar acesso à Comunidade Viva Engage de Finanças e Operações e escolha a comunidade à qual pretende juntar-se.
Importante
A partir de fevereiro de 2026, novos clientes não poderão criar projetos no Microsoft Dynamics Lifecycle Services para Microsoft Dynamics 365 Finance, Microsoft Dynamics 365 Human Resources, Microsoft Dynamics 365 Supply Chain Management e Microsoft Dynamics 365 Project Operations. Os novos clientes devem usar o centro de administração do Power Platform em vez disso. Para mais informações, consulte o congelamento de criação de projetos do Lifecycle Services.
Pode obter o pacote de certificados Regression Suite Automation Tool (RSAT) para um ambiente através do Microsoft Dynamics Lifecycle Services através da API Lifecycle Services Environment. Essa API retorna um arquivo zip codificado em Base 64 e uma senha codificada em Base 64 para a senha de certificado privado.
O processo completo para consumir o zip pode ser encontrado na página de instalação e configuração da Ferramenta de Automação do Regression Suite .
Permissões
Aplicação API
Uma das permissões a seguir é necessária para chamar esta API. Para obter mais informações sobre permissões e como selecioná-las, consulte API de movimentação de banco de dados - Autenticação.
| Tipo de permissão | Permissões (do menos privilegiado ao mais privilegiado) |
|---|---|
| Delegada (conta escolar ou profissional) | user_impersonation |
Serviços ao Ciclo de Vida
Nos Serviços de Ciclo de Vida, o utilizador utilizado na autenticação OAuth da API deve ser adicionado ao projeto como proprietário do projeto ou administrador de ambiente. O usuário deve aceitar o convite para o projeto.
Pedido HTTP
Use o seguinte ponto de extremidade GET para buscar o arquivo zip para o certificado RSAT de um ambiente.
Buscar o certificado RSAT por ambiente
GET /environmentinfo/v1/rsatdownload/project/{projectId}/environment/{environmentId}
Cabeçalhos de pedidos
Use os seguintes valores de cabeçalho no cabeçalho da solicitação HTTP.
| Cabeçalho | Value |
|---|---|
| Autorização | Portador {token} (obrigatório) |
| 'x-ms-versão' | '2017-09-15' (obrigatório) |
| Tipo de Conteúdo | application/json |
Corpo do pedido
Não forneça um corpo do pedido para este método.
Resposta
HTTP
A resposta é sempre uma resposta "200 OK", a menos que você não esteja autenticado corretamente. Certifique-se de usar a propriedade IsSuccess para avaliar o sucesso ou a falha da ação.
Dados
| Propriedade | Description |
|---|---|
| CertificadoZipEncoded | Um zip contendo o arquivo . PFX e . CER em uma matriz de bytes codificada em Base 64. |
| CertificateSecretEncoded | O segredo privado do certificado privado como uma cadeia de caracteres codificada em Base 64. Isso mudará todos os pedidos. |
| CertificateThumbprint | A impressão digital do certificado privado. |
| ExpirationDateTimeUTC | Uma data e hora em UTC (exibidas em formato de texto completo) após as quais o certificado não é válido. |
| ExpiraçãoISODateTimeUTC | Uma data e hora em UTC (exibidas no formato ISO 8606) após as quais o certificado não é válido. |
| Nome do ficheiro | O nome do arquivo do zip que está sendo retornado. |
Resposta de exemplo
Resposta bem-sucedida para uma solicitação no nível do projeto
{
"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álise de dados via PowerShell
O seguinte script de exemplo comunica com a API dos Serviços de Ciclo de Vida para descarregar o ficheiro zip do certificado RSAT para a máquina local. Ele mostra a senha do certificado privado na janela do console. Um token de acesso deve ser fornecido.
# 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"
Limites tarifários
Para melhorar as solicitações de balanceamento de carga, há limites de taxa nessa API. Estes limites também são partilhados com a interface web dos Lifecycle Services.
- 1 chamada para cada ambiente por minuto
Observação
As solicitações que excederem os limites de taxa serão rejeitadas e uma resposta "HTTP 429 Too Many Requests" será retornada. O cabeçalho retry-after indicará o número de segundos que a solicitação pode ser repetida depois.