OAuth 토큰 및 범위
OAuth 토큰이 보호된 리소스에 대한 액세스를 승인하고, 연결된 앱이 권한 부여 후 클라이언트 대신 토큰을 수신합니다. 범위는 연결된 앱이 액세스할 수 있는 보호된 리소스 유형을 세밀하게 정의합니다. 연결된 앱을 구축할 때 연결된 앱에 범위를 할당하고, 인가 플로 동안 OAuth 토큰에 포함됩니다.
필수 Edition
| 지원 제품: Salesforce Classic 및 Lightning Experience 모두 |
| 지원 제품: 모든 Edition |
OAuth 토큰
권한 부여 플로에 따라 권한 부여 서버가 다음에 명시된 OAuth 토큰을 제공할 수 있습니다.
| OAuth 토큰 | 상세 설명 |
|---|---|
| 권한 부여 코드 | 권한 부여 서버는 단기간 사용할 수 있는 토큰인 권한 부여 코드를 만들고 인증 후 클라이언트에게 전달하며, 클라이언트는 액세스 토큰 또는 필요한 경우 새로 고침 토큰을 얻기 위해 권한 부여 서버에 권한 부여 코드를 전송합니다. |
| 액세스 토큰 | 클라이언트가 승인된 후 Salesforce가 클라이언트에 액세스 토큰을 보내고, 클라이언트가 리소스 서버에 액세스 토큰을 전달하여 보호된 리소스에 대한 액세스를 요청합니다. 그러면 리소스 서버가 범위 형태로 액세스 토큰 및 추가 권한을 확인한 다음, 클라이언트에 액세스 권한을 부여합니다. 액세스 토큰은 일반적으로 권한 부여 코드보다 몇 분 또는 몇 시간 정도 수명이 깁니다. 액세스 토큰이 만료되면 사용 시도에 실패합니다. 클라이언트는 새로 고침 토큰을 사용하거나 인가 플로를 다시 시작하여 새 액세스 토큰을 가져와야 합니다. 클라이언트는 TLS(Transport Layer Security) 또는 SSL 등의 프로토콜에서 액세스 토큰을 가로채지 못하도록 보호할 수 있어야 합니다. 액세스 토큰을 사용하는 OAuth 2.0 권한 부여 플로를 구현하려면, 클라이언트와 Salesforce API를 통합하는 연결된 앱에 액세스 토큰을 받은 후 클라이언트가 다음 방법 중 하나를 사용하여 액세스를 요청할 수 있습니다.
Salesforce가 연결된 각 앱(클라이언트) 및 사용자 조합에 대해 고유한 액세스 토큰을 부여합니다. 그러나 Salesforce는 다음 조건으로 다른 서비스 공급자에게 동일한 액세스 토큰을 발행할 수 있습니다.
여러 서비스 공급자가 고유한 액세스 토큰을 수신하도록 하려면 각 서비스 공급자에 대해 고유한 연결된 앱을 만듭니다. |
| 새로 고침 토큰 | 클라이언트는 자원 서버에 액세스하기 위해 새로 고침 토큰을 반복적으로 사용할 수 있습니다. 새로 고침 토큰이 만료되거나 사용자가 클라이언트 외부에서 새로 고침 토큰을 취소할 경우 클라이언트는 일반적으로 시작부터 권한 부여 플로를 구현하여 새 액세스 토큰을 요청합니다. 새로 고침 토큰은 관리자가 구성한 기간 동안 또는 명시적으로 해지할 때까지 지속되므로 수명이 무한할 수 있으며, 클라이언트는 새로 고침 토큰을 저장하고 새로 고침 토큰을 사용하여 새 액세스 토큰을 얻을 수 있습니다. 보안상의 이유로 클라이언트는 무단 액세스로부터 새로 고침 토큰을 보호해야 합니다. 요청에 |
| ID 토큰 | ID 토큰은 사용자의 고유한 ID 및 토큰이 발급된 시기를 비롯하여 인증받은 사용자 속성을 포함하는 서명된 데이터 구조이며, 클라이언트 앱 요청을 식별합니다. Salesforce에서 OpenID Connect 사양에 일치하는 ID 토큰을 사용하여 OAuth 토큰에 응답할 수 있습니다. 요청에 해당 매개 변수가 포함된 경우 OAuth 2.0 사용자-에이전트 및 OAuth 2.0 웹 서버 플로 모두 서명된 ID 토큰을 요청할 수 있습니다. 반환되는 토큰은 JSON 웹 토큰(JWT)입니다.
다음은 사용자-에이전트 플로를 사용하여 ID 토큰에 대한 요청의 예입니다. 게시된 공개 키를 사용하여 응답의 서명이 유효한 Salesforce 서명인지 확인합니다. MyDomainName.my.salesforce.com/id/keys에서는 응답에 서명에 사용되는 공개 키에 대한 JSON 형식 정보가 포함됩니다. 릴리스 버전을 지정하는 올바른 |
| 첫 액세스 토큰 | Salesforce에서는 동적 클라이언트 등록 요청 플로를 인증하기 위해 첫 액세스 토큰이 필요합니다. OAuth 2.0 연결된 앱을 구성한 후 첫 액세스 토큰을 생성합니다. |
| 자산 토큰 | 효율적으로 토큰을 교환하고 Service Cloud 자산 데이터에 장치를 연결하기 위해 클라이언트는 OAuth 2.0 장치 플로를 구현합니다. 이 플로에서 클라이언트는 액세스 토큰 및 작업자 토큰을 자산 토큰과 교환할 수 있습니다. 이 플로는 자산 토큰 발급과 자산 등록을 결합합니다. |
| 토큰 삭제 | 새로 고침 토큰 및 연결된 액세스 토큰을 취소하는 데 사용할 수 있는 토큰입니다. 이 토큰은 OauthToken 개체의 DeleteToken 필드에 표시됩니다. 이 토큰을 사용하려면 OAuth 2.0 취소 끝점에 대한 요청에 포함하거나 Apex를 사용합니다. 불투명 OAuth 토큰 취소를 참조하십시오. |
OAuth 범위
이러한 OAuth 범위를 연결된 앱에 할당하여 클라이언트가 액세스할 수 있는 보호된 리소스 유형을 정의할 수 있습니다.
| 값 | 설명 |
|---|---|
Customer Data Platform 데이터에서 ANSI SQL 쿼리 수행(cdp_query_api) |
사용자를 대신하여 Data Cloud 데이터의 ANSI SQL 쿼리를 허용합니다. |
Pardot 서비스 관리(pardot_api) |
사용자를 대신하여 Marketing Cloud Account Engagement API 서비스에 액세스할 수 있습니다. Account Engagement에서 액세스 가능한 모든 서비스를 관리합니다. (이제 Pardot = Marketing Cloud Account Engagement입니다) |
Customer Data Platform 프로필 데이터 관리(cdp_profile_api) |
Data Cloud REST API 데이터에 액세스하도록 허용합니다. 이 범위를 사용하여 프로필 레코드를 관리합니다. |
Connect REST API 자원에 액세스(chatter_api) |
사용자를 대신하여 일부 Connect REST API 리소스에 액세스할 수 있습니다. 모든 Connect REST API 리소스에 대한 액세스를 허용하려면 api 범위를 사용합니다. |
Customer Data Platform 수집 API 데이터 관리(cdp_ingest_api) |
Data Cloud 수집 API 데이터에 액세스하도록 허용합니다. 이 범위를 사용하면 Data Cloud에 외부 데이터 집합을 업로드하고 유지할 수 있습니다. 이 범위는 JSON 웹 토큰(JWT)으로 패키지됩니다. |
Access Analytics REST API 차트 지리 데이터 자원에 액세스(eclair_api) |
Analytics REST API 차트 지리 데이터 자원에 액세스하도록 허용합니다. |
Analytics REST API 자원에 액세스(wave_api) |
Analytics REST API 자원에 액세스하도록 허용합니다. |
API를 통해 사용자 데이터 관리(api) |
REST API 및 대량 API 2.0과 같은 API를 사용하여 현재 로그인한 사용자의 계정에 액세스할 수 있습니다. 이 범위에서는 모든 Connect REST API 리소스에 액세스할 수도 있습니다. |
사용자 정의 권한에 액세스(custom_permissions) |
연결된 앱과 연결된 조직에서 사용자 정의 권한에 대한 액세스를 허용하고, 이 범위가 현재 사용자에게 권한이 각각 활성화되어 있는지 표시합니다. |
ID URL 서비스에 액세스(id, profile, email, address, phone) |
ID URL 서비스에 액세스하도록 허용합니다. profile, email, address 또는 phone를 개별적으로 요청하여 id를 사용하는 것과 동일한 결과를 얻을 수 있습니다. |
Lightning 응용 프로그램에 액세스(lightning) |
하이브리드 앱이 OAuth 2.0 하이브리드 앱 토큰 플로와 하이브리드 앱 새로 고침 토큰 플로를 통해 Lightning 하위 세션을 직접 가져오도록 허용합니다. |
콘텐츠 자원에 액세스(content) |
하이브리드 앱이 OAuth 2.0 하이브리드 앱 토큰 플로와 하이브리드 앱 새로 고침 토큰 플로를 통해 콘텐츠 하위 세션을 직접 가져오도록 허용합니다. |
고유 사용자 식별자에 액세스(openid) |
OpenID Connect 앱에 대해 현재 로그인된 사용자의 고유 식별자에 액세스하도록 허용합니다. OAuth 2.0 사용자-에이전트 플로 및 OAuth 2.0 웹 서버 플로에서 |
전체 액세스(full) |
로그인된 사용자가 액세스할 수 있는 모든 데이터에 액세스하도록 허용하고 기타 모든 범위를 포함합니다.
|
언제든지 요청 수행(refresh_token, offline_access) |
요청한 클라이언트에 수신할 자격이 있는 경우 새로 고침 토큰이 반환됩니다. 그러면 사용자가 오프라인 상태인 경우 앱이 새로 고침 토큰으로 사용자의 데이터와 상호 작용할 수 있으며, 이 토큰은 요청하는 offline_access와 동일합니다. |
Visualforce 응용 프로그램에 액세스(visualforce) |
고객이 만든 Visualforce 페이지에만 액세스할 수 있습니다. 이 범위는 표준 Salesforce UI에 대한 액세스를 허용하지 않습니다. 하이브리드 앱이 Visualforce 하위 세션을 직접 가져오도록 허용하려면 OAuth 2.0 하이브리드 앱 토큰 플로 또는 하이브리드 앱 새로 고침 토큰 플로에 이 범위를 포함하십시오. |
웹 브라우저를 통해 사용자 데이터 관리(web) |
웹에서 access_token의 사용을 허용합니다. 이 범위에는 고객이 만든 Visualforce 페이지에 액세스할 수 있도록 visualforce도 포함됩니다. |
Chatbot 서비스에 액세스(chatbot_api) |
Einstein Bot API 서비스에 액세스할 수 있습니다. |
| 헤드리스 등록 API에 액세스(user_registration_api) | 헤드리스 등록 플로의 API에 액세스할 수 있습니다. 인증을 요구하도록 플로를 설정하는 경우 이 범위를 포함하는 액세스 토큰을 전달해야 합니다. |
헤드리스 암호 분실 API에 액세스(forgot_password) |
헤드리스 암호 분실 플로의 API에 액세스할 수 있습니다. 인증을 요구하도록 플로를 설정하는 경우 이 범위를 포함하는 액세스 토큰을 전달해야 합니다. |
모든 Data Cloud API 자원에 액세스(cdp_api) |
모든 Data Cloud API 자원에 액세스하도록 허용합니다. |
Salesforce API 플랫폼에 액세스(sfap_api) |
api.salesforce.com 또는 이에 상응하는 운영 영역 엔드포인트에서 액세스한 API 서비스를 비롯한 Salesforce API 플랫폼에 액세스하도록 허용합니다. |
| 상호 작용 API 리소스에 액세스(interaction_api) | 나중에 사용하도록 예약합니다. |
클라이언트가 액세스 토큰을 받은 경우 인증 서버는 연결된 앱에 할당된 범위도 응답에 포함합니다. 해당 범위도 새로 고침을 사용하여 저장됩니다. JSON 또는 SAML 전달자 토큰 요청의 경우 요청에서 모든 이전 새로 고침 토큰의 범위를 결합합니다.
모든 범위 값은 언제든지 ID URL 액세스에 사용할 수 있는 id를 포함합니다.
이 요청 예는 api, id, web 범위를 포함하며, 범위 값은 공백 문자, %20을 사용하여 구분됩니다.
https://MyDomainName.my.salesforce.com/services/oauth2/authorize?
response_type=token&
client_id=3MVG9lKcPoNINVBKV6EgVJiF.snSDwh6_2wSS7BrOhHGEJkC_&
redirect_uri=http%3A%2F%2F2www.example.org%2Fqa%2Fsecurity%2Foauth%2Fuseragent_flow_callback.jsp&
scope=api%20id%20web
