교차 클라이언트 ID

개발자가 소프트웨어를 빌드할 때는 웹 서버에서 실행되는 모듈, 브라우저에서 실행되는 다른 모듈, 네이티브 모바일 앱으로 실행되는 모듈이 포함됩니다. 개발자와 소프트웨어를 사용하는 사람들은 일반적으로 이러한 모든 모듈을 단일 앱의 일부로 생각합니다.

Google의 OAuth 2.0 구현은 이러한 관점을 지원합니다. OAuth2.0 기반 서비스를 사용하려면 Google API Console에서 소프트웨어를 설정해야 합니다. API Console 의 조직 단위는 '프로젝트'이며 다중 구성요소 앱에 해당할 수 있습니다. 각 프로젝트에 브랜드 정보를 제공할 수 있으며 앱이 액세스할 API를 지정해야 합니다. 다중 구성요소 앱의 각 구성요소는 API Console에서 생성되는 고유 문자열인 클라이언트 ID로 식별됩니다.

고객 간 승인 목표

앱에서 승인에 OAuth 2.0을 사용하면 앱이 사용자를 대신하여 리소스 액세스를 위한 OAuth 2.0 액세스 토큰을 요청합니다. 앱은 이를 하나 이상의 범위 문자열로 식별합니다. 일반적으로 사용자에게 액세스 승인을 요청하는 메시지가 표시됩니다.

사용자가 특정 범위의 앱에 대한 액세스 권한을 부여하면 Google API Console에서 설정한 프로젝트 수준의 제품 브랜딩이 포함된 사용자 동의 화면이 사용자에게 표시됩니다. 따라서 사용자가 프로젝트의 클라이언트 ID에 대한 특정 범위에 대한 액세스 권한을 부여한 경우 권한 부여는 해당 범위의 전체 애플리케이션에 대한 사용자의 신뢰를 나타냅니다.

그 결과, Google의 승인 인프라(현재 웹 앱, Android 앱, Chrome 앱, iOS 앱, 기본 데스크톱 앱 및 제한된 입력 기기 포함)에서 애플리케이션 구성요소를 안정적으로 인증할 수 있을 때마다 사용자에게 동일한 논리 애플리케이션의 리소스에 대한 액세스를 2회 이상 승인하라는 메시지가 표시되지 않아야 합니다.

클라이언트 간 액세스 토큰

소프트웨어는 코드가 실행되는 플랫폼에 따라 다양한 방법으로 OAuth 2.0 액세스 토큰을 가져올 수 있습니다. 자세한 내용은 OAuth 2.0을 사용하여 Google API에 액세스를 참조하세요. 일반적으로 액세스 토큰을 부여할 때는 사용자 승인이 필요합니다.

다행히 Google 승인 인프라는 동일한 프로젝트의 다른 항목을 승인할지 여부를 평가할 때 특정 프로젝트 내에서 클라이언트 ID의 사용자 승인에 대한 정보를 사용할 수 있습니다.

결과적으로 Android 앱이 특정 범위의 액세스 토큰을 요청하고 요청하는 사용자가 동일한 프로젝트에 있는 동일한 범위의 웹 애플리케이션에 이미 승인을 부여한 경우 사용자에게 승인을 요청하는 메시지가 다시 표시되지 않습니다. 이는 두 가지 방식으로 작동합니다. 즉, 특정 범위에 대한 액세스가 Android 앱에 부여되면 웹 애플리케이션과 같은 동일한 프로젝트의 다른 클라이언트에서 다시 요청하지 않습니다.