클라이언트 간 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에서 설정 한 프로젝트 수준 제품 브랜딩이 포함 된 사용자 동의 화면을보고 있습니다. 따라서 Google은 사용자가 프로젝트의 모든 클라이언트 ID에 특정 범위에 대한 액세스 권한을 부여한 경우 해당 범위에 대한 전체 애플리케이션에 대한 사용자의 신뢰를 나타냅니다.

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

클라이언트 간 액세스 토큰

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

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

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