

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 계정 연결을 위한 OAuth 2.0 요구 사항
<a name="concepts-account-linking"></a>

모든 C2C 커넥터는 OAuth 2.0 권한 부여 서버를 사용하여 최종 사용자를 인증합니다. 이 서버를 통해 최종 사용자는 타사 계정을 고객의 디바이스 플랫폼과 연결합니다. 계정 연결은 최종 사용자가 C2C 커넥터에서 지원하는 디바이스를 사용하는 데 필요한 첫 번째 단계입니다. 계정 연결 및 OAuth 2.0의 다양한 역할에 대한 자세한 내용은 섹션을 참조하세요[계정 연결 역할](roles-account-linking.md).

C2C 커넥터는 권한 부여 흐름을 지원하기 위해 특정 비즈니스 로직을 구현할 필요는 없지만 C2C 커넥터와 연결된 OAuth2.0 권한 부여 서버는를 충족해야 합니다[OAuth 구성 요구 사항](#oauth-config-requirements).

**참고**  
용 관리형 통합은 권한 부여 코드 흐름이 있는 OAuth 2.0 AWS IoT Device Management 만 지원합니다. 자세한 내용은 [RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749#section-1.3.1)를 참조하세요.

계정 연결은 관리형 통합 및 커넥터가 액세스 토큰을 사용하여 최종 사용자의 디바이스에 액세스할 수 있도록 허용하는 프로세스입니다. 이 토큰은 최종 사용자의 권한으로 AWS IoT Device Management에 대한 관리형 통합을 제공하므로 커넥터가 API 호출을 통해 최종 사용자의 데이터와 상호 작용할 수 있습니다. 자세한 내용은 [계정 연결 워크플로](account-linking-flow.md) 단원을 참조하십시오.

이러한 민감한 토큰을 로그에 기록하지 않는 것이 좋습니다. 그러나 로그에 저장되는 경우 CloudWatch Logs 데이터 보호 정책을 사용하여 로그의 토큰을 마스킹하는 것이 좋습니다. 자세한 내용은 [Help protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html)을 참조하세요.

용 관리형 통합 AWS IoT Device Management 은 액세스 토큰을 직접 가져오지 않고 권한 부여 코드 권한 부여 유형을 통해 가져옵니다. 먼저 AWS IoT Device Management의 관리형 통합은 권한 부여 코드를 얻어야 합니다. 그런 다음 코드를 액세스 토큰 및 새로 고침 토큰으로 교환합니다. 새로 고침 토큰은 이전 액세스 토큰이 만료될 때 새 액세스 토큰을 요청하는 데 사용됩니다. 액세스 토큰과 새로 고침 토큰이 모두 만료된 경우 계정 연결 흐름을 다시 수행해야 합니다. `StartAccountAssociationRefresh` API 작업을 사용하여이 작업을 수행할 수 있습니다.

**중요**  
발급된 액세스 토큰의 범위는 OAuth 클라이언트가 아닌 사용자별로 지정해야 합니다. 토큰이 클라이언트에 속한 모든 사용자의 모든 디바이스에 대한 액세스를 제공해서는 안 됩니다.  
 권한 부여 서버는 다음 중 하나를 수행해야 합니다.  
JWT 토큰과 같이 추출 가능한 최종 사용자(리소스 소유자) ID가 포함된 액세스 토큰을 발급합니다.
발급된 각 액세스 토큰의 최종 사용자 ID를 반환합니다.

## OAuth 구성 요구 사항
<a name="oauth-config-requirements"></a>

다음 표는 AWS IoT Device Management가 [계정 연결을](account-linking-flow.md) 수행하는 데 필요한 관리형 통합을 위한 OAuth 권한 부여 서버의 필수 파라미터를 보여줍니다.


**OAuth 서버 파라미터**  

|  |  |  | 
| --- |--- |--- |
| 필드 | 필수 | Comment | 
| `clientId` | 예 | 애플리케이션의 퍼블릭 식별자입니다. 권한 부여 흐름을 시작하는 데 사용되며 공개적으로 공유할 수 있습니다. | 
| `clientSecret` | 예 | 특히 액세스 토큰에 대한 권한 부여 코드를 교환할 때 권한 부여 서버로 애플리케이션을 인증하는 데 사용되는 보안 키입니다. 기밀을 유지해야 하며 공개적으로 공유해서는 안 됩니다. | 
| `authorizationType` | 예 | 이 권한 부여 구성에서 지원하는 권한 부여 유형입니다. 현재 "OAuth 2.0"만 지원됩니다. | 
| `authUrl` | 예 | 타사 클라우드 공급자의 권한 부여 URL입니다. | 
| `tokenUrl` | 예 | 타사 클라우드 공급자의 토큰 URL입니다. | 
| `tokenEndpointAuthenticationScheme` | 예 | “HTTP\_BASIC” 또는 “REQUEST\_BODY\_CREDENTIALS”의 인증 체계입니다. HTTP\_BASIC는 클라이언트 자격 증명이 권한 부여 헤더에 포함되어 있음을 알리는 반면, 래더는 요청 본문에 포함되어 있음을 알립니다. | 

액세스 토큰 문자열 값이 UTF-8 문자 집합으로 Base64 인코딩되어야 하도록 사용하는 OAuth 서버를 구성해야 합니다.