Salesforce API와 통합하기 위해서는 가장 먼저 Access Token을 발급받아야 합니다. Salesforce는 OAuth 2.0 표준을 따르며, 다양한 인증 방식(Grant Type)을 제공합니다.
Access Token은 Salesforce에 API 요청을 보낼 수 있게 해주는 인증된 키입니다.
하지만 이 토큰은 사용자 인증 방식에 따라 얻는 방법이 다르며, 단기 또는 장기 세션 유지 여부에도 영향을 줍니다.
| 인증 방식 (Grant Type) | 설명 | Refresh Token | 사용자 로그인 필요 | 사용 예시 |
|---|---|---|---|---|
authorization_code | 사용자가 로그인하여 승인 코드를 받아 토큰 발급 | ✅ 지원 | ✅ | Web App |
password | 사용자 ID, PW 직접 입력 | ✅ (조건부) | ❌ | 백오피스, 테스트 |
client_credentials | 앱 자체 인증 (M2M) | ❌ | ❌ | 백엔드 to Salesforce |
jwt_bearer | JWT로 서명된 토큰으로 인증 | ❌ | ❌ | 서버 자동화, CI/CD |
device_code | 디바이스에서 브라우저 없는 인증 | ✅ | ✅ | IoT, TV 앱 등 |
refresh_token | 기존 토큰으로 새 토큰 재발급 | 🔁 | ❌ | 세션 연장 |
saml2-bearer | SAML 기반의 인증 연동 | ❌ | ❌ | SSO 시스템 |
authorization_code)사용자 로그인을 통해 Salesforce가 승인 코드를 발급 → 이를 통해 Access Token 획득
특징:
refresh_token도 함께 받을 수 있어 장기 세션 유지 가능사용 예시:
password)사용자 ID, 비밀번호, 보안 토큰을 직접 입력하여 Access Token 발급
특징:
refresh_token 발급은 Connected App 설정에 따라 가능사용 예시:
client_credentials)앱 자체가 Salesforce 리소스에 접근할 수 있도록 인증 (사용자 없음)
특징:
refresh_token 없음사용 예시:
주의:
jwt_bearer)사전에 등록된 사용자와 비밀 키를 사용하여 서명된 JWT를 제출 → Access Token 발급
특징:
refresh_token 없음사용 예시:
device_code)디바이스(예: TV, 콘솔)에서 브라우저 없이 인증 수행
특징:
refresh_token 발급 가능사용 예시:
refresh_token)기존에 받은 Refresh Token을 사용하여 새 Access Token을 재발급
특징:
사용 예시:
| 사용 환경 | 추천 Flow |
|---|---|
| 웹/프론트엔드 앱 | authorization_code |
| 내부 관리자용 툴 | password (단, 주의) |
| CI/CD 서버, 배치 작업 | jwt_bearer |
| 백엔드 서비스 (M2M) | client_credentials |
| IoT/디바이스 앱 | device_code |
| Grant Type | Refresh Token 지원 |
|---|---|
authorization_code | ✔️ 지원 |
password | ✔️ 조건부 |
device_code | ✔️ 지원 |
jwt_bearer | ❌ |
client_credentials | ❌ |
refresh_token 발급 여부 → OAuth Scopes에 offline_access 필수password flow 허용 여부 → "Permitted Users" 설정 필요client_credentials flow 사용 시 → 사용자 연결 필요Salesforce OAuth 2.0은 강력하지만 복잡합니다.
각 Flow는 사용 환경과 보안 요구사항에 따라 신중하게 선택해야 합니다.
가장 일반적이고 권장되는 방식은 authorization_code이며,
자동화나 서버 작업에는 jwt_bearer가 탁월한 선택이 될 수 있습니다.