q1: 인증 방식별 Python 코드 샘플

a1:

인증 방식별 Python 코드 샘플, 각 샘플은 requests 라이브러리를 사용하며, REST API 호출 시 인증 헤더를 어떻게 붙이는지를 보여줌



✅ 1. Bearer Token (OAuth2 + JWT)

import requests

url = "https://api.example.com/loan/count"
headers = {
    "Authorization": "Bearer YOUR_ACCESS_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "customer_id": "C123456789"
}

response = requests.post(url, json=data, headers=headers)
print(response.json())



✅ 2. API Key

(1) 헤더에 넣는 방식

headers = {
    "x-api-key": "YOUR_API_KEY"
}
response = requests.get("https://api.example.com/resource", headers=headers)

(2) 쿼리 스트링에 넣는 방식

params = {
    "api_key": "YOUR_API_KEY"
}
response = requests.get("https://api.example.com/resource", params=params)



✅ 3. Basic Auth

from requests.auth import HTTPBasicAuth

url = "https://api.example.com/private"
auth = HTTPBasicAuth("your_id", "your_password")

response = requests.get(url, auth=auth)
print(response.status_code)



✅ 4. HMAC 서명 방식 (예: AWS Signature V4)

import hmac, hashlib, base64
import requests
import time

secret_key = b"my_secret_key"
message = f"GET:/api/data:{int(time.time())}"
signature = hmac.new(secret_key, message.encode(), hashlib.sha256).hexdigest()

headers = {
    "X-Signature": signature,
    "X-Timestamp": str(int(time.time()))
}
response = requests.get("https://api.example.com/data", headers=headers)
print(response.json())



✅ 5. Mutual TLS (mTLS)

# 인증서(.crt)와 개인키(.key)가 있는 경우
response = requests.get(
    "https://secure-api.example.com/secure-data",
    cert=("client.crt", "client.key"),
    verify="ca.crt"  # 서버 인증서 확인용
)
print(response.status_code)


반응형

+ Recent posts