Register application을 누른 뒤 Generate a new client secret을 눌러 Client ID/Client Secret 값을 복사합니다.
필드 매핑:
Client ID←Client ID
Client Secret←Client Secret
요청 스코프:
read:useruser:email
Apple
Apple Sign In은 Services ID와 Client Secret(JWT) 생성용 개인 키가 필요합니다. 설정 경로: developer.apple.com.
참고: Apple은 두 종류의 식별자를 사용합니다: App ID (네이티브 iOS/macOS 앱용)와 Services ID (웹 로그인용). 웹에서 Sign In with Apple을 사용하려면 반드시 Services ID가 필요합니다.
1
Apple Developer Portal에서 Certificates, Identifiers & Profiles → Identifiers로 이동해 App ID를 생성(또는 선택)하고 Sign In with Apple을 활성화합니다. (App ID는 네이티브 앱 로그인에 사용되며, 웹 로그인의 기반이 됩니다.)
2
같은 Identifiers 페이지에서 우측 상단 + 버튼을 눌러 새 식별자를 만듭니다. 타입 선택 시 Services IDs를 선택하고 Continue를 클릭합니다.
3
설명(예: My App Web Login)과 고유 식별자(예: com.yourapp.web)를 입력합니다. 이 식별자가 Authon에 입력할 Client ID가 됩니다. Continue → Register를 클릭하여 생성합니다.
4
생성된 Services ID를 클릭하여 편집 화면에 들어갑니다. Sign In with Apple을 체크하고 옆의 Configure를 클릭합니다. Primary App ID를 Step 1의 App ID로 선택하고, Domains and Subdomains에 도메인을, Return URLs에 아래 URL을 입력합니다:
https://api.authon.dev/v1/auth/oauth/redirect
5
Apple Developer Portal 왼쪽 메뉴에서 Keys를 클릭한 뒤 + 버튼 또는 Register a New Key를 클릭합니다.
6
키 이름(예: Authon Sign In)을 입력하고, 아래 체크박스에서 Sign In with Apple을 체크합니다. 오른쪽의 Configure를 클릭하여 Primary App ID를 Step 1에서 만든 App ID로 선택한 뒤 Save합니다.
7
Continue → Register를 클릭하면 키가 생성됩니다. Download를 눌러 .p8 파일을 저장합니다. 이 파일은 한 번만 다운로드 가능하므로 안전한 곳에 보관하세요. 화면에 표시되는 Key ID (10자리)도 복사해둡니다.
참고: Team ID는 Apple Developer Portal 오른쪽 상단 → 계정 이름 아래에 있는 10자리 코드입니다. 또는 Membership 페이지에서도 확인할 수 있습니다.
8
Apple은 최대 6개월 유효한 JWT를 Client Secret으로 사용합니다. 아래 스크립트에서 Team ID, Key ID, Services ID, .p8 파일 경로를 입력하여 JWT를 생성하고 Client Secret으로 입력하세요.
generate_apple_secret.py
import jwt, time
TEAM_ID = "YOUR_TEAM_ID"# 10-char Team ID from Apple Developer
KEY_ID = "YOUR_KEY_ID"# Key ID from the downloaded key
CLIENT_ID = "com.yourapp.web"# Your Services ID Bundle ID
KEY_FILE = "AuthKey_XXXXXX.p8"# Path to the .p8 private keywith open(KEY_FILE, "r") as f:
private_key = f.read()
payload = {
"iss": TEAM_ID,
"iat": int(time.time()),
"exp": int(time.time()) + 86400 * 180, # 180 days"aud": "https://appleid.apple.com",
"sub": CLIENT_ID,
}
client_secret = jwt.encode(payload, private_key, algorithm="ES256", headers={"kid": KEY_ID})
print(client_secret)
또는 아래 도구로 브라우저에서 JWT를 바로 생성할 수 있습니다. 어떤 데이터도 서버로 전송되지 않습니다:
Apple Client Secret Generatorruns in your browser — nothing is sent to any server
참고: Apple Client Secret은 최대 6개월 후 만료됩니다. 만료 전에 새 JWT를 재발급하여 Authon 대시보드에 갱신해야 합니다.
9
서버 대 서버 알림을 받으려면, Services ID 설정의 Server to Server Notification Endpoint에 아래 URL을 입력합니다:
https://api.authon.dev/v1/webhooks/oauth/apple
필드 매핑:
Client ID←Services ID Bundle ID (e.g. com.yourapp.web)
Client Secret←Generated JWT string (from the script above)