특별한 시나리오를 위한 OAuth 2.0 사용자 이름-암호 플로
사용자 이름-암호 플로를 사용하여 연결된 앱을 통해 이미 사용자의 자격 증명이 있는 클라이언트를 승인할 수 있습니다. 그러나 자격 증명이 앞뒤로 전달되므로 이 플로를 사용하지 않는 것이 좋습니다. 리소스 소유자와 클라이언트 사이에 신뢰도가 높은 경우, 클라이언트가 자사 앱이거나 Salesforce에서 데이터를 호스팅할 때, 기타 허용 유형을 사용할 수 없는 경우에만 이 플로를 사용하십시오. 이러한 경우 액세스를 최소화하고 저장된 자격 증명을 무단 액세스로부터 보호할 수 있는 사용자 권한을 설정하십시오.
필수 Edition
| 지원 제품: Salesforce Classic 및 Lightning Experience 모두 |
| 지원 제품: 모든 Edition |
사용자 이름-암호 플로는 검사할 수 없는 Salesforce 세션 ID로 액세스 토큰을 생성합니다. 액세스 토큰이 임시이므로 활성 세션이 있더라도 이 플로를 사용하는 연결된 앱은 연결된 앱 OAuth 사용 페이지에 표시되지 않습니다. 이 플로는 범위 또는 새로 고침 토큰을 지원하지 않습니다. Experience Cloud 사이트는 OAuth 2.0 사용자 이름-암호 플로를 지원하지 않습니다.
다음은 사용자 이름-암호 플로에 관련된 주요 단계입니다.
- 연결된 앱이 Salesforce 토큰 끝점에 사용자의 로그인 자격 증명을 보내 액세스 토큰을 요청합니다.
- 요청을 확인한 후 Salesforce가 연결된 앱에 액세스 토큰을 발급합니다.
- 연결된 앱은 액세스 토큰을 사용하여 사용자를 대신해 보호된 데이터에 액세스할 수 있습니다.
액세스 토큰 요청
액세스 토큰을 요청하기 위해 연결된 앱이 Salesforce 토큰 끝점에 대역 외 POST로 사용자 이름 및 암호를 보냅니다. 다음은 예제 POST 입니다.
grant_type=password&
client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&
client_secret=1955279925675241571&
username=testuser@salesforce.com&
password=mypasswordPOST에 다음 자격 증명을 포함하십시오.
| 매개 변수 | 상세 설명 |
|---|---|
grant_type
|
연결된 앱이 요청하는 OAuth 2.0 허용 유형입니다. 이 플로에 대한 값은 password이어야 합니다. |
client_id
|
연결된 앱의 소비자 키입니다. 소비자 키에 액세스하려면 앱 관리자에서 연결된 앱을 찾고 드롭다운에서 보기를 선택합니다. 그런 다음, 소비자 세부 사항 관리를 클릭합니다. 소비자 키를 보기 전에 ID를 확인하라는 메시지가 표시될 수도 있습니다. |
client_secret
|
연결된 앱의 소비자 암호입니다. 소비자 암호에 액세스하려면 앱 관리자에서 연결된 앱을 찾고 드롭다운에서 보기를 선택합니다. 그런 다음, 소비자 세부 사항 관리를 클릭합니다. 소비자 암호를 보기 전에 ID를 확인하라는 메시지가 표시될 수도 있습니다. |
username
|
연결된 앱이 가장하는 사용자의 사용자 이름. |
password
|
연결된 앱이 가장하는 사용자의 암호. API에서 사용자 이름-암호 흐름을 사용하는 경우 사용자가 보안 토큰을 입력할 수 있는 사용자 이름 및 암호 로그인 화면에 필드를 만듭니다. 보안 토큰은 신뢰할 수 없는 네트워크에서 Salesforce에 로그인하기 위해 암호의 끝에 추가해야 하는 자동으로 생성된 키입니다. 인증 요청이 통과되면 암호와 토큰을 연결해야 합니다. |
format
|
요청의 머리글에 포함되지 않은 경우 예상 반환 형식을 지정할 수 있습니다.
|
Salesforce에서 액세스 토큰 부여
요청이 확인되면 Salesforce에서 클라이언트에게 응답을 보냅니다.
다음은 예제 반응입니다.
{"id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
"issued_at":"1278448832702",
"instance_url":"https://yourInstance.salesforce.com/",
"signature":"0CmxinZir53Yex7nE0TD+zMpvIWYGb/bdJh6XfOH6EQ=",
"access_token":"00Dx0000000BV7z!AR8AQAxo9UfVkh8AlV0Gomt9Czx9LjHnSSpwBMmbRcgKFmxOtvxjTrKW19ye6PE3Ds1eQz3z8jr3W7_VbWmEu4Q8TVGSTHxs",
"token_type":"Bearer"}이러한 매개 변수는 응답의 본문에 있습니다.
| 매개 변수 | 상세 설명 |
|---|---|
id
|
사용자를 식별하고 사용자에 대한 추가 정보를 쿼리하는 데 사용할 수 있는 ID URL입니다. ID URL을 참조하십시오. |
issued_at
|
서명 작성 시 타임스탬프(단위: 밀리초)입니다. |
instance_url
|
사용자 조직의 인스턴스를 표시하는 URL입니다. 예: https://yourInstance.salesforce.com/을 참조하세요.
|
signature
|
client_secret으로 서명된 Base64 인코딩된 HMAC-SHA256 서명입니다. 서명에는 연결된 ID 및 issued_at value가 포함될 수 있으며 서버에서 ID URL을 전송한 이후 ID URL이 변경되지 않았는지 확인하는 작업에 사용됩니다. |
access_token
|
연결된 앱을 사용하여 클라이언트 응용 프로그램을 대신해 보호된 자원에 대한 액세스를 요청하는 OAuth 토큰. 범위 형태의 추가 권한이 액세스 토큰과 함께 제공될 수 있습니다. |
token_type
|
액세스 토큰을 포함하는 모든 응답에 사용되는 Bearer 토큰 유형.
|

