>

자동 프로세스를 사용하여 위험 이벤트를 닫거나 닫으려고합니다. 이를 위해 Graph API https://graph.microsoft.com/beta를 사용해야합니다./riskyUsers/dismiss

예를 검색했지만 찾을 수 없습니다.

헤더에 OAuth Bearer 토큰을 제공하여 Post man을 사용해 보았고 PowerShell 스크립트를 사용해 보았으며 페이지에 제공된 .Net 예제를 사용해 보았습니다. 그들 중 아무도 일하지 않았다

PowerShell 코드

{
$body       = @{grant_type="client_credentials";resource=$resource;client_id=$ClientID;client_secret=$ClientSecret} 
$oauthResponse      = Invoke-RestMethod -Method POST -Uri $loginURL/$TenantName/oauth2/token?api-version=1.0 -Body $body 
return $oauthResponse
}  
$loginURL       = "https://login.windows.net" 
$resource = "https://graph.microsoft.com"
$ClientSecret="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 
$ClientID="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 
$TenantName="xxxxx.com"
$oauth=RefreshToken -loginURL $loginURL -resource $resource -ClientID $ClientID -clientSecret $ClientSecret -tenantName $TenantName
$headerParams = @{'Authorization'="$($oauth.token_type) $($oauth.access_token)"}
$url="https://graph.microsoft.com/beta/riskyUsers/dismiss"
[email protected]()
$userIds+="xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"
$body=(@{"userIds"=$userIds})|convertto-json
$Response = Invoke-WebRequest -UseBasicParsing -Headers $headerParams -Uri $url -Body $body -Method Post -ContentType "application/Json"


응답 : Invoke-WebRequest : 원격 서버가 오류를 리턴했습니다 : (500) 내부 서버 오류. C : \ SourceCode \ MIMSolution \ PowerShellScripts \ AzurePSMA \ RiskyIdentityEvents \ ExportScript_debug.ps1 : 19 char : 13에서 + $Response = Invoke-WebRequest -UseBasicParsing-헤더 $headerParams -Uri $url ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     + CategoryInfo : InvalidOperation : (System.Net.HttpWebRequest : HttpWebRequest) [Invoke-WebRequest], WebException     + FullyQualifiedErrorId : WebCmdletWebResponseException, Microsoft.PowerShell.Commands.InvokeWebRequestCommand

C # 코드 :

static void Main(string[] args)
        {
            var userIdsList = new List<String>();
            userIdsList.Add("xxxxx-xxxxx-xxxxx-xxxxx-xxxx");
             dismissUser(userIdsList);
        }
       static async void dismissUser(List<string> userIDs)
        {
            ClientCredential clientCredential = new ClientCredential("xxxxxxxxxxxxxxxxxxxxxxx");
            string clientId = "xxxxxxxxxxxxxxxxxxxxxx";
            IConfidentialClientApplication clientApplication = ClientCredentialProvider.CreateClientApplication(clientId, clientCredential);
            ClientCredentialProvider authProvider = new ClientCredentialProvider(clientApplication);
            GraphServiceClient graphClient = new GraphServiceClient(authProvider);
            await graphClient.RiskyUsers.Dismiss(userIDs).Request().PostAsync();
        }```
Exception:
{"Code: generalException\r\nMessage: An error occurred sending the request.\r\n"}
Inner Exception: 
{"Code: generalException\r\nMessage: Unexpected exception occured while authenticating the request.\r\n"}

  • 답변 # 1

    마지막으로 여러 번의 트레일을 거쳐 해결책을 찾았습니다. OAuth 1.0과 같은 토큰 문제가있었습니다.

    OAuth 2.0을 요청하는이 스 니펫을 수정했으며 문제가 해결되었습니다 :

    function RefreshToken($loginURL,$ClientID,$clientSecret,$tenantName) 
    { $body = @{grant_type="client_credentials";client_id=$ClientID;client_secret=$ClientSecret;scope="https://graph.microsoft.com/.default"}
    
    

    $oauthResponse = Invoke-RestMethod-방법 POST -Uri $loginURL/$TenantName/oauth2/v2.0/token -Body $body $oauthResponse를 반환 }

  • 이전 electron - Electronjs에서 Javascript Webspeech Api 사용
  • 다음 java - persistencexml 및 제공자를 둘 다 지정한 동안 찾을 수 없습니다