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)
인증 방식별로 REST API 호출 시 인증 헤더를 어떻게 붙이는지 보여주는 Python 코드 샘플 250417
2025. 4. 17. 08:03
반응형