Salesforce OAuth 2.0 Access Token 획득 방식 총정리

molamola·2025년 5월 14일

Salesforce

목록 보기
10/10

Salesforce API와 통합하기 위해서는 가장 먼저 Access Token을 발급받아야 합니다. Salesforce는 OAuth 2.0 표준을 따르며, 다양한 인증 방식(Grant Type)을 제공합니다.


✅ OAuth 2.0 Access Token이란?

Access Token은 Salesforce에 API 요청을 보낼 수 있게 해주는 인증된 키입니다.
하지만 이 토큰은 사용자 인증 방식에 따라 얻는 방법이 다르며, 단기 또는 장기 세션 유지 여부에도 영향을 줍니다.


📦 Salesforce OAuth 2.0 인증 방식 정리

인증 방식 (Grant Type)설명Refresh Token사용자 로그인 필요사용 예시
authorization_code사용자가 로그인하여 승인 코드를 받아 토큰 발급✅ 지원Web App
password사용자 ID, PW 직접 입력✅ (조건부)백오피스, 테스트
client_credentials앱 자체 인증 (M2M)백엔드 to Salesforce
jwt_bearerJWT로 서명된 토큰으로 인증서버 자동화, CI/CD
device_code디바이스에서 브라우저 없는 인증IoT, TV 앱 등
refresh_token기존 토큰으로 새 토큰 재발급🔁세션 연장
saml2-bearerSAML 기반의 인증 연동SSO 시스템

🔍 주요 인증 방식 자세히 보기

1️⃣ Authorization Code Flow (authorization_code)

사용자 로그인을 통해 Salesforce가 승인 코드를 발급 → 이를 통해 Access Token 획득

특징:

  • 가장 안전하고 표준적인 방식
  • 사용자 인증이 필요
  • refresh_token도 함께 받을 수 있어 장기 세션 유지 가능

사용 예시:

  • Salesforce를 연동하는 웹앱
  • 마케팅/고객 관리 SaaS

2️⃣ Username-Password Flow (password)

사용자 ID, 비밀번호, 보안 토큰을 직접 입력하여 Access Token 발급

특징:

  • 로그인 UI 없이 토큰 발급 가능
  • 보안상 위험도가 높아 실제 서비스에서는 권장되지 않음
  • refresh_token 발급은 Connected App 설정에 따라 가능

사용 예시:

  • 테스트 자동화
  • 내부 관리툴

3️⃣ Client Credentials Flow (client_credentials)

앱 자체가 Salesforce 리소스에 접근할 수 있도록 인증 (사용자 없음)

특징:

  • Machine-to-Machine 인증
  • 사용자 개입 없이 서버 간 통신
  • refresh_token 없음

사용 예시:

  • 서버 백엔드에서 Salesforce 데이터를 주기적으로 조회

주의:

  • Salesforce에서는 이 Flow를 사용하려면 Connected App에서 Client Credentials Flow 허용 + 사용자 연결 필요

4️⃣ JWT Bearer Flow (jwt_bearer)

사전에 등록된 사용자와 비밀 키를 사용하여 서명된 JWT를 제출 → Access Token 발급

특징:

  • 사용자 로그인 없이 무인 인증 가능
  • refresh_token 없음
  • 고도화된 자동화/보안에 적합

사용 예시:

  • CI/CD 파이프라인
  • 서버-to-Salesforce 인증 연동

5️⃣ Device Flow (device_code)

디바이스(예: TV, 콘솔)에서 브라우저 없이 인증 수행

특징:

  • 사용자 브라우저에서 인증 진행
  • 디바이스는 승인 여부만 폴링
  • refresh_token 발급 가능

사용 예시:

  • POS, IoT, 터치스크린 등에서 Salesforce 인증

6️⃣ Refresh Token Flow (refresh_token)

기존에 받은 Refresh Token을 사용하여 새 Access Token을 재발급

특징:

  • 사용자가 다시 로그인하지 않아도 됨
  • 자동 로그인/세션 유지에 필수

사용 예시:

  • 모바일 앱의 자동 로그인
  • 토큰 만료 후 자동 재인증

🧭 어떤 Flow를 써야 할까?

사용 환경추천 Flow
웹/프론트엔드 앱authorization_code
내부 관리자용 툴password (단, 주의)
CI/CD 서버, 배치 작업jwt_bearer
백엔드 서비스 (M2M)client_credentials
IoT/디바이스 앱device_code

✅ Refresh Token 지원 여부 정리

Grant TypeRefresh Token 지원
authorization_code✔️ 지원
password✔️ 조건부
device_code✔️ 지원
jwt_bearer
client_credentials

🚨 참고: Connected App 설정에 따라 영향 받는 항목

  • refresh_token 발급 여부 → OAuth Scopes에 offline_access 필수
  • password flow 허용 여부 → "Permitted Users" 설정 필요
  • client_credentials flow 사용 시 → 사용자 연결 필요

🔚 마무리

Salesforce OAuth 2.0은 강력하지만 복잡합니다.
각 Flow는 사용 환경과 보안 요구사항에 따라 신중하게 선택해야 합니다.
가장 일반적이고 권장되는 방식은 authorization_code이며,
자동화나 서버 작업에는 jwt_bearer가 탁월한 선택이 될 수 있습니다.

0개의 댓글