Ympäristön RSAT-varmenteen noutaminen zip-tiedostoon

Huomautus

Yhteisön eturyhmät ovat nyt siirtyneet Yammerista Microsoft Viva Engageen. Liity Viva Engage -yhteisöön ja osallistu uusimpiin keskusteluihin täyttämällä Pyydä käyttöoikeutta rahoitukseen ja toimintoihin Viva Engage -yhteisö -lomake ja valitse yhteisö, johon haluat liittyä.

Tärkeää

Vuoden 2026 helmikuusta alkaen uudet asiakkaat eivät voi luoda projekteja Microsoft Dynamics Lifecycle Services for Microsoft Dynamics 365 Finance, Microsoft Dynamics 365 Human Resources, Microsoft Dynamics 365 Supply Chain Management ja Microsoft Dynamics 365 Project Operations. Uusien asiakkaiden tulisi käyttää sen sijaan Power Platform -hallintakeskusta . Lisätietoja on artikkelissa Elinkaaripalvelut-projektin luonnin jäädyttäminen.

Voit noutaa Regression Suite Automation Tool (RSAT) -varmennepaketin ympäristölle Microsoft Dynamics elinkaaripalvelujen kautta elinkaaripalvelujen ympäristön ohjelmointirajapinnan kautta. Tämä ohjelmointirajapinta palauttaa base 64 -koodatun zip-tiedoston ja base 64 -koodatun salasanan yksityissertifikaatin salasanalle.

Koko zip-tiedoston käyttöprosessi on Regression Suite Automation Tool -työkalun asennus- ja määrityssivulla .

Käyttöoikeudet

Ohjelmointirajapintasovellus

Tämän ohjelmointirajapinnan kutsumiseen tarvitaan jokin seuraavista käyttöoikeuksista. Lisätietoja käyttöoikeuksista ja niiden valitsemisesta on kohdassa Tietokannan siirron ohjelmointirajapinta – todentaminen.

Käyttöoikeuden tyyppi Käyttöoikeudet (vähiten etuoikeutetusta etuoikeutetuimpaan)
Valtuutettu (työ- tai opiskelijatili) user_impersonation

Elinkaaripalvelut

Elinkaaripalveluissa API OAuth -todennuksessa käytettävä käyttäjä täytyy lisätä projektiin joko projektin omistajana tai ympäristön järjestelmänvalvojana. Käyttäjän on hyväksyttävä kutsu projektiin.

HTTP-pyyntö

Nouda ympäristön RSAT-varmenteen zip-tiedosto käyttämällä seuraavaa GET-päätepistettä.

RSAT-varmenteen noutaminen ympäristön mukaan

GET /environmentinfo/v1/rsatdownload/project/{projectId}/environment/{environmentId}

Pyynnön otsikot

Käytä seuraavia otsikkoarvoja HTTP-pyynnön otsikossa.

Otsikko Arvo
Valtuutus Haltija {tunnus} (pakollinen)
'x-ms-version' '2017-09-15' (pakollinen)
Sisältötyyppi application/json

Pyynnön teksti

Älä anna tälle menetelmälle pyynnön tekstiä.

Vastaus

HTTP

Vastaus on aina 200 OK -vastaus, ellet ole todennettu oikein. Muista arvioida toiminnon onnistuminen tai epäonnistuminen IsSuccess-ominaisuuden avulla.

Tiedot

Ominaisuus Kuvaus
Varmenteen koodaus Zip-tiedosto, joka sisältää kohteen . PFX ja . CER-tiedostot Base 64 -koodatussa tavumatriisissa.
Varmenteen salasana Yksityisen varmenteen yksityinen salasana Base 64 -koodattuna merkkijonona. Tämä muuttaa jokaisen pyynnön.
CertificateThumbprint Yksityisen varmenteen allekirjoitus.
VanhentuminenDateTimeUTC Päivämäärä ja aika UTC-muodossa (näytetään täydessä tekstimuodossa), jonka jälkeen varmenne ei ole kelvollinen.
VanhentuminenISODateTimeUTC Päivämäärä ja aika UTC-muodossa (näytetään ISO 8606 -muodossa), jonka jälkeen varmenne ei ole kelvollinen.
Tiedostonimi Palautettavan zip-tiedoston nimi.

Esimerkkivastaus

Projektitason pyynnön onnistunut vastaus

{
    "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"
}

Tietojen jäsentäminen PowerShellin kautta

Seuraava esimerkkikomentosarja viestii Elinkaaripalvelujen ohjelmointirajapinnan kanssa RSAT-varmenteen zip-tiedoston lataamiseksi paikalliseen koneeseen. Yksityisen varmenteen salasana näkyy konsoli-ikkunassa. Käyttöoikeustietue on annettava.

# 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"

Hintarajoitukset

Kuormituksen tasauspyyntöjen parantamiseksi tällä ohjelmointirajapinnalla on korkorajoitukset. Nämä rajoitukset jaetaan myös Elinkaaripalvelut-verkkoliittymän kanssa.

  • 1 puhelu kullekin ympäristölle minuuttia kohti

Huomautus

Pyynnöt, jotka ylittävät korkorajat, hylätään ja palautetaan "HTTP 429 Too Many Requests" -vastaus. Uudelleenyritysten otsikko ilmaisee, kuinka monen sekunnin kuluttua pyyntöä voidaan yrittää uudelleen.