ํ‰๊ฐ€์— ์ฃผ์„ ์ถ”๊ฐ€

์ด ํŽ˜์ด์ง€์—์„œ๋Š” reCAPTCHA์—์„œ ์ƒ์„ฑ๋œ ํ‰๊ฐ€์˜ ์ •ํ™•์„ฑ์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ reCAPTCHA๋Š” ์‚ฌ์ดํŠธ๋ณ„ ๋ชจ๋ธ์„ ์กฐ์ •ํ•˜๊ณ  ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์‚ฌ์ดํŠธ์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‰๊ฐ€์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

reCAPTCHA๋Š” ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์˜ ์œ„ํ—˜๋„๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ํ‰๊ฐ€๋ฅผ ๋งŒ๋“ค ๋•Œ ์ ์ˆ˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์ด ์ ๋ฒ•ํ•œ์ง€ ๋˜๋Š” ํ—ˆ์œ„์ธ์ง€ ํŒ๋‹จํ•  ๋•Œ reCAPTCHA์˜ ํ‰๊ฐ€๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด LEGITIMATE ๋˜๋Š” FRAUDULENT๋กœ ๋ผ๋ฒจ์ด ์ง€์ •๋œ reCAPTCHA ํ‰๊ฐ€ ID๋ฅผ Google๋กœ ๋‹ค์‹œ ๋ณด๋ƒ…๋‹ˆ๋‹ค. reCAPTCHA์˜ ํ‰๊ฐ€๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋ฉด ์‚ฌ์ดํŠธ์˜ reCAPTCHA ์„ฑ๋Šฅ์ด ๊ฐœ์„ ๋ฉ๋‹ˆ๋‹ค.

reCAPTCHA์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ž ์žฌ์  ํ‰๊ฐ€ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์ฃผ์„ ์™ธ์—๋„ ์ฐธ์–‘์„ฑ ๋ฐ ์ฐธ์Œ์„ฑ์— ๋Œ€ํ•œ ์ฃผ์„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 2๋‹จ๊ณ„ ์ธ์ฆ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ฑ๊ณต์ ์œผ๋กœ ์ธ์ฆ๋ฐ›๊ณ  ๋†’์€ reCAPTCHA ์ ์ˆ˜๋ฅผ ๋ฐ›์€ ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ ํ‰๊ฐ€์— LEGITIMATE๋กœ ์ฃผ์„์„ ๋‹ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” reCAPTCHA ์ ์ˆ˜๊ฐ€ ๋‚ฎ์•„ ์‚ฌ์ดํŠธ์—์„œ ์ƒํ˜ธ ์ž‘์šฉ์ด ํ—ˆ์œ„์ด๊ฑฐ๋‚˜ ๋ชจ์š•์ ์ด๋ผ๊ณ  ํŒ๋‹จํ•œ ๊ฒฝ์šฐ ํ‰๊ฐ€์— FRAUDULENT๋กœ ์ฃผ์„์„ ๋‹ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋ชฉ๋ก์€ ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์ด ํ•ฉ๋ฒ•์ ์ธ์ง€ ๋˜๋Š” ์‚ฌ๊ธฐ์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ผ๋ถ€ ์ƒ˜ํ”Œ ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

  • ์‹ ์šฉ์นด๋“œ ์ง€๋ถˆ ๊ฑฐ์ ˆ ๋˜๋Š” ๊ธฐํƒ€ ์‚ฌ๊ธฐ์— ๊ด€๋ จํ•œ ๋ช…๋ฐฑํ•œ ์ฆ๊ฑฐ๋Š” ์ด์ „์˜ ๊ธˆ์œต ๊ฑฐ๋ž˜๊ฐ€ ์‚ฌ๊ธฐ์˜€์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์ŠคํŒธ์œผ๋กœ ํ‘œ์‹œํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ์ƒˆ ๊ณ„์ •์€ ๊ณ„์ • ์ƒ์„ฑ์ด ํ—ˆ์œ„์˜€์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ๊ณ„์ •์— ๋กœ๊ทธ์ธํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ง€์› ๊ธฐ๋ก์ด ์žˆ์œผ๋ฉด ํƒ€๋‹นํ•œ ๋กœ๊ทธ์ธ ์‹œ๋„์ž„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • reCAPTCHA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํฌ๋žฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ์‚ฌ์ดํŠธ์˜ ๊ตฌ๋งค ๋˜๋Š” ์˜ˆ์•ฝ์€ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ฉ๋ฒ•์ ์ž„์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

ํ‰๊ฐ€ ID ๊ฒ€์ƒ‰

ํ‰๊ฐ€์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณ ์œ ํ•œ ํ‰๊ฐ€ ID๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

  • ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ํ†ตํ•ฉ์˜ ๊ฒฝ์šฐ ํ‰๊ฐ€ ์‘๋‹ต์—์„œ ๊ณ ์œ ํ•œ ํ‰๊ฐ€ ID๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ‰๊ฐ€๋ฅผ ๋งŒ๋“ค๋ฉด ๋‹ค์Œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด JSON ์‘๋‹ต์ด ์ˆ˜์‹ ๋ฉ๋‹ˆ๋‹ค.

    JSON ์‘๋‹ต์˜ name ํ•„๋“œ์—์„œ ๊ณ ์œ  ํ‰๊ฐ€ ID๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

    {
    'tokenProperties': {
      'valid': True,
      'hostname': 'www.google.com',
      'action': 'homepage',
      'createTime': u'2019-03-28T12:24:17.894Z'
    },
    'riskAnalysis': {
      'score': 0.1,
      'reasons': ['AUTOMATION']
    },
    'event': {
      'token': 'RESPONSE_TOKEN',
      'siteKey': 'KEY_ID'
    },
    'name': 'ASSESSMENT_ID'
    }
  • WAF ํ†ตํ•ฉ์˜ ๊ฒฝ์šฐ reCAPTCHA ํ† ํฐ์—์„œ ๊ณ ์œ ํ•œ ํ‰๊ฐ€ ID๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ์œ ํ•œ ํ‰๊ฐ€ ID๋Š” :U= ๋‹ค์Œ์— reCAPTCHA ํ† ํฐ ๋์— ํ‘œ์‹œ๋˜๋Š” 16์ž์˜ ๊ณ ์œ ํ•œ ์˜์ˆซ์ž ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด reCAPTCHA ํ† ํฐ์ด .................U=6ZZZZe73fZZZZZZ0์ด๋ฉด ํ‰๊ฐ€ ID๋Š” 6ZZZZe73fZZZZZZ0์ž…๋‹ˆ๋‹ค.

ํ‰๊ฐ€์— ์ฃผ์„ ์ถ”๊ฐ€

  1. ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋”ฐ๋ผ ์š”์ฒญ JSON ๋ณธ๋ฌธ์— ์ถ”๊ฐ€ํ•  ์ •๋ณด ๋ฐ ๋ผ๋ฒจ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

    ๋‹ค์Œ ํ‘œ์—๋Š” ์ด๋ฒคํŠธ์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ๋ฒจ๊ณผ ๊ฐ’์ด ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋ผ๋ฒจ ์„ค๋ช… ์š”์ฒญ ์˜ˆ์‹œ
    reasons ์„ ํƒ์‚ฌํ•ญ. ํ‰๊ฐ€๋ฅผ ์ง€์›ํ•˜๋Š” ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

    ์‹ค์‹œ๊ฐ„ ๊ฐ์ง€์— ์˜ํ–ฅ์„ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒคํŠธ ๋ฐœ์ƒ ํ›„ ๋ช‡ ์ดˆ ๋˜๋Š” ๋ช‡ ๋ถ„ ์ด๋‚ด์— reasons ๋ผ๋ฒจ์— ์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธ ์„ธ๋ถ€์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ๊ฐ€๋Šฅํ•œ ๊ฐ’ ๋ชฉ๋ก์€ ์ด์œ  ๊ฐ’์„ ์ฐธ์กฐํ•˜์„ธ์š”.

    ์˜ˆ์‹œ: ๊ณ„์ • ํƒˆ์ทจ๋ฅผ ๊ฐ์ง€ํ•˜๋ ค๋ฉด ์ž…๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ CORRECT_PASSWORD ๋˜๋Š” INCORRECT_PASSWORD ๊ฐ’์— ์˜ฌ๋ฐ”๋ฅธ์ง€ ์ฃผ์„์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ž์ฒด MFA๋ฅผ ๋ฐฐํฌํ•œ ๊ฒฝ์šฐ INITIATED_TWO_FACTOR, PASSED_TWO_FACTOR, FAILED_TWO_FACTOR ๊ฐ’์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

          {
          "reasons": ["INCORRECT_PASSWORD"]
          }
        
    annotation ์„ ํƒ์‚ฌํ•ญ. ํ‰๊ฐ€ ์ ๋ฒ•์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

    annotation ๋ผ๋ฒจ์—์„œ ์œ„ํ—˜ ํ‰๊ฐ€๋ฅผ ๊ฒ€์ฆํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๊ทธ์ธ ๋ฐ ๋“ฑ๋ก ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์‚ฌ์‹ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ LEGITIMATE ๋˜๋Š” FRAUDULENT์ž…๋‹ˆ๋‹ค.

    ์ด ์ •๋ณด๋Š” ์–ธ์ œ๋“ ์ง€ ๋˜๋Š” ์ผ๊ด„ ์ž‘์—…์„ ํ†ตํ•ด ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์‹œ๊ฐ„ ๊ฐ์ง€์— ์˜ํ–ฅ์„ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒคํŠธ ํ›„ ๋ช‡ ์ดˆ ๋˜๋Š” ๋ช‡ ๋ถ„ ์ด๋‚ด์— ์ด ์ •๋ณด๋ฅผ ์ „์†กํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

          {
           "annotation": "LEGITIMATE"
          }
    
      

  2. gcloud CLI ๋˜๋Š” API ํ‚ค์™€ ํ•จ๊ป˜ projects.assessments.annotate ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‰๊ฐ€์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    gcloud CLI

    ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • ASSESSMENT_ID: projects.assessments.create ํ˜ธ์ถœ์—์„œ ๋ฐ˜ํ™˜๋œ name ํ•„๋“œ ๊ฐ’์ž…๋‹ˆ๋‹ค.
    • ANNOTATION_LABEL: ํ‰๊ฐ€๊ฐ€ ์ ๋ฒ•ํ•œ์ง€ ๋˜๋Š” ํ—ˆ์œ„์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ LEGITIMATE ๋˜๋Š” FRAUDULENT์ž…๋‹ˆ๋‹ค.
    • ANNOTATION_REASON: ์ด ํ‰๊ฐ€์— ์„ ํƒ๋œ ์ฃผ์„์˜ ์ปจํ…์ŠคํŠธ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ‰๊ฐ€์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ด์œ ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    HTTP ๋ฉ”์„œ๋“œ ๋ฐ URL:

    POST https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate

    JSON ์š”์ฒญ ๋ณธ๋ฌธ:

    {
    "annotation": "ANNOTATION_LABEL"
    "reasons": "ANNOTATION_REASON"
    }
    

    ์š”์ฒญ์„ ๋ณด๋‚ด๋ ค๋ฉด ๋‹ค์Œ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    curl

    ์š”์ฒญ ๋ณธ๋ฌธ์„ request.json ํŒŒ์ผ์— ์ €์žฅํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate"

    PowerShell

    ์š”์ฒญ ๋ณธ๋ฌธ์„ request.json ํŒŒ์ผ์— ์ €์žฅํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate" | Select-Object -Expand Content

    ์„ฑ๊ณต ์ƒํƒœ ์ฝ”๋“œ(2xx)์™€ ๋นˆ ์‘๋‹ต์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

    API ํ‚ค

    ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • ASSESSMENT_ID: projects.assessments.create ํ˜ธ์ถœ์—์„œ ๋ฐ˜ํ™˜๋œ name ํ•„๋“œ ๊ฐ’์ž…๋‹ˆ๋‹ค.
    • ANNOTATION_LABEL: ํ‰๊ฐ€๊ฐ€ ์ ๋ฒ•ํ•œ์ง€ ๋˜๋Š” ํ—ˆ์œ„์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ LEGITIMATE ๋˜๋Š” FRAUDULENT์ž…๋‹ˆ๋‹ค.
    • ANNOTATION_REASON: ์ด ํ‰๊ฐ€์— ์„ ํƒ๋œ ์ฃผ์„์˜ ์ปจํ…์ŠคํŠธ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ‰๊ฐ€์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ด์œ ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    HTTP ๋ฉ”์„œ๋“œ ๋ฐ URL:

    POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments/ASSESSMENT_ID:annotate?key=API_KEY

    JSON ์š”์ฒญ ๋ณธ๋ฌธ:

    {
    "annotation": "ANNOTATION_LABEL"
    "reasons": "ANNOTATION_REASON"
    }
    

    ์š”์ฒญ์„ ๋ณด๋‚ด๋ ค๋ฉด ๋‹ค์Œ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    curl

    ์š”์ฒญ ๋ณธ๋ฌธ์„ request.json ํŒŒ์ผ์— ์ €์žฅํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    curl -X POST \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments/ASSESSMENT_ID:annotate?key=API_KEY"

    PowerShell

    ์š”์ฒญ ๋ณธ๋ฌธ์„ request.json ํŒŒ์ผ์— ์ €์žฅํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    $headers = @{  }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments/ASSESSMENT_ID:annotate?key=API_KEY" | Select-Object -Expand Content

    ์„ฑ๊ณต ์ƒํƒœ ์ฝ”๋“œ(2xx)์™€ ๋นˆ ์‘๋‹ต์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„