İngilizce dilinde oku

Aracılığıyla paylaş


Operations Manager REST API Başvurusu

System Center Operations Manager önemli uygulamaların ve altyapı hizmetlerinin tahmin edilebilir performansını ve kullanılabilirliğini sağlamak amacıyla esnek ve ekonomik altyapı izleme hizmeti sunar. Operations Manager, ortamınızdaki tüm izlenen nesnelerin durumunu, performansını ve kullanılabilirliğini denetleyerek ve hızlı çözüm için sorunların belirlenmesine yardımcı olarak veri merkeziniz için kapsamlı izleme sunar. Daha ayrıntılı bir genel bakış için Bkz. System Center Operations Manager ürün sayfası.

Not

Operations Manager 2019 UR1, CSRF saldırılarını önlemek için Siteler Arası İstek Sahteciliği (CSRF) belirteçlerini destekler. Operations Manager 2019 UR1 kullanıyorsanız CSRF belirtecini başlatmanız gerekir. CSRF belirteçleri başlatılmazsa HTML betikleri çalışmaz.

CSRF belirtecini başlatma

Operations Manager 2019 UR1 için geçerli olan gerekli eylem.

  1. Panonun HTML üst bilgisine aşağıdaki kodu ekleyin:
            Accept: 'q=0.8;application/json;q=0.9',
            "Content-Type": "application/json"
        };
        InitializeCSRFToken();
        function InitializeCSRFToken() {
            var documentcookies = document.cookie.split('; ');
            var result = {};
            for (var i = 0; i < documentcookies.length; i++) {
                var cur = documentcookies[i].split('=');
                result[cur[0]] = cur[1];
            }
            if (result["SCOM-CSRF-TOKEN"] && result["SCOM-CSRF-TOKEN"] != null) {
                requestHeaders["SCOM-CSRF-TOKEN"] = decodeURIComponent(result["SCOM-CSRF-TOKEN"]);
            }
        }
  1. onload işlevinde üst bilgi değerini requestHeaders olarak değiştirin.

Örnek:

CSRF belirteci örneğini başlatma

Operations Manager REST API PowerShell örneği

#Set Headers for the request
$userName ="domain\username";
$password ="Password";
$AuthenticationMode= "Network"
$scomHeaders = New-Object “System.Collections.Generic.Dictionary[[String],[String]]”
$scomHeaders.Add('Content-Type','application/json; charset=utf-8')
$bodyraw = "($AuthenticationMode):$($userName):$($password)”
$Bytes = [System.Text.Encoding]::UTF8.GetBytes($bodyraw)
$EncodedText =[Convert]::ToBase64String($Bytes)
$jsonbody = $EncodedText | ConvertTo-Json

$uriBase = 'http://<scomserver>/OperationsManager'

#Authenticate
$auth = Invoke-WebRequest -Method POST -Uri $uriBase/authenticate -Headers $scomheaders -body $jsonbody -UseDefaultCredentials -SessionVariable $websession 
#Include CSRF Token
$csrfTocken = $websession.Cookies.GetCookies($uriBase) | ? { $_.Name -eq 'SCOM-CSRF-TOKEN' }
$scomHeaders.Add('SCOM-CSRF-TOKEN', [System.Web.HttpUtility]::UrlDecode($csrfTocken.Value))

#Examples to Invoke the required SCOM API

#Data/alertDescription/{alertid}
$alertid="6A88FBC1-0EDC-4173-9BB1-30FFEC296672"
$uri = "$uriBase/data/alertDetails"
$Response = Invoke-WebRequest -Uri "$uriBase/data/alertDetails/$alertid" -Headers $scomheaders -Method Get -WebSession $websession
$Response.Content | Convertto-json



#Criteria: Enter the displayname of the SCOM object
$Criteria = "DisplayName LIKE '%SQL%'"
#Convert our criteria to JSON format
$JSONBody = $Criteria | ConvertTo-Json
$Response = Invoke-WebRequest -Uri "$uriBase/data/class/monitors" -Method Post -Body $JSONBody -WebSession $WebSession
$Response.Content | Convertto-json


#Data Request in JSON Format
$dashboardbody='
{
  "refreshing": false,
  "Name": "TestAPIDashboard",
  "path": "35b6eba3-6202-8738-a47f-16acf476230f"
}'
$response = Invoke-WebRequest -Uri "$uriBase/monitoring/dashboard" -Headers $scomheaders -Method POST -Body $dashboardbody -ContentType "application/json" -UseDefaultCredentials -WebSession $websession