이 페이지에는 클래스룸 부가기능을 위한 Google Cloud 프로젝트를 만들고 구성하는 방법에 관한 정보가 포함되어 있습니다. Google Cloud 프로젝트는 OAuth 2.0(Google SSO)을 통해 Google 싱글 사인온을 구현하고, 부가기능에서 실행한 요청을 승인하며, Google Workspace 마켓플레이스 스토어에서 부가기능의 등록정보를 관리하는 데 사용됩니다.
마켓플레이스에 부가기능을 게시하는 방법에 관한 일반적인 내용은 앱 게시를 참고하세요.
Google Cloud 프로젝트 생성
만들 수 있는 프로젝트 유형에는 두 가지가 있습니다. 개발에 사용되는 비공개 프로젝트와 최종 사용자가 액세스할 수 있는 공개 프로젝트입니다. '공개' 및 '비공개' 라벨은 Google Workspace Marketplace에서 애플리케이션의 공개 상태를 나타냅니다. 비공개 Marketplace 애플리케이션은 생성된 도메인 내의 사용자만 설치할 수 있지만 공개 Marketplace 애플리케이션은 모든 Google Workspace 도메인에서 사용할 수 있습니다. 프로젝트가 공개 및 비공개가 될 수 없으므로 이는 두 개의 개별 애플리케이션이어야 합니다. 공개 애플리케이션은 마켓플레이스에서 제공되기 전에 검토 및 승인을 받아야 합니다.
일반적인 Google Cloud 프로젝트 만들기 정보는 Google Cloud 프로젝트 만들기를 참조하세요.
공개 Google Cloud 프로젝트 만들기
이 프로젝트는 관리자, 교사, 학생이 액세스할 수 있는 부가기능 애플리케이션을 나타냅니다. 공개 프로젝트는 출시 또는 설치하기 전에 Google Workspace Marketplace팀에서 검토하고 승인해야 합니다.
프로덕션 도메인에 새 Google Cloud 프로젝트를 만듭니다.
Cloud 프로젝트에서 Classroom API를 사용 설정합니다.
Cloud 프로젝트에서 Google Workspace Marketplace SDK를 사용 설정합니다.
Marketplace SDK 앱 구성 앱 공개 상태를 공개로 설정하고 미등록 체크박스를 선택합니다.
Marketplace SDK 스토어 등록정보 페이지에서 필수 입력란을 작성하고 PUBLISH를 클릭합니다.
Google Workspace Marketplace팀에서 앱을 검토합니다. Marketplace SDK에 지정된 개발자 이메일 주소를 사용하여 연락을 드립니다. 앱이 승인되면 교사와 관리자가 Marketplace에서 찾을 수 있도록 일부 공개 상자를 선택 해제합니다.
비공개 Google Cloud 프로젝트 만들기
이 비공개 프로젝트는 개발에 사용되는 부가기능 애플리케이션을 나타냅니다. 생성된 도메인 외부의 사용자는 액세스할 수 없지만 설치 전에 승인받을 필요는 없습니다. 따라서 이 프로젝트를 사용하여 통제된 환경에서 부가기능을 개발하고 테스트하는 것이 좋습니다.
비공개 프로젝트를 만들려면 Teaching & Learning 또는 Plus 라이선스가 있는 Google Workspace for Education 도메인에 액세스할 수 있어야 합니다. 이러한 도메인에 아직 액세스할 수 없는 경우 다음 단계에 따라 Google Workspace for Education 데모 도메인을 설정하고 Plus 라이선스로 업그레이드한 후 클래스룸 부가기능 API에 액세스할 수 있도록 허용합니다.
- 개발자 테스트 도메인 받기 단계를 완료하세요.
데모 도메인에서 관리자로 로그인한 상태에서 새 Google Cloud 프로젝트를 만듭니다.
Google Cloud 콘솔에 액세스할 수 없거나 Cloud 프로젝트를 만들 수 없으면 관리 콘솔에서 다음을 확인하세요.
- 계정 설정 > 연령별 액세스 설정 페이지로 이동하여 이 그룹 또는 조직 단위의 모든 사용자가 18세 이상임 옵션을 선택합니다.
- 앱 > 추가 Google 서비스에서 다음을 수행합니다.
- Google Cloud Platform은 모든 사용자에게 사용 설정되어 있습니다.
- 프로젝트 생성 설정은 사용자가 프로젝트를 만들 수 있도록 허용입니다.
- Cloud Shell 액세스 설정은 Cloud Shell에 대한 액세스 허용입니다.
데모 도메인 업그레이드 요청 양식을 작성하여 제출합니다. 이 양식을 제출하면 Google에서 데모 도메인을 라이선스 10개가 포함된 Google Workspace for Education Plus로 업그레이드하고 Cloud 프로젝트를 클래스룸 부가기능 API에 허용하도록 요청합니다.
업그레이드 및 허용 목록 추가 프로세스가 완료되면 이메일이 전송됩니다. 관리 콘솔에서 테스트 교사 계정에 Plus 라이선스를 할당합니다. 디렉터리 > 사용자에서 테스트 교사 계정을 만들거나 선택합니다. 각 교사의 라이선스에서 Google Workspace for Education Plus가 할당되어 있는지 확인합니다.
클라우드 프로젝트에서 Classroom API를 사용 설정합니다.
Cloud 프로젝트에서 Google Workspace Marketplace SDK를 사용 설정합니다.
Marketplace SDK 앱 구성 앱 공개 상태를 비공개로 설정합니다.
Marketplace SDK 스토어 등록정보 페이지에서 필수 입력란을 작성하고 PUBLISH를 클릭합니다. 앱 등록정보가 게시되면 도메인의 사용자는 Google Workspace Marketplace 또는 스토어 등록정보 페이지에 표시된 앱 URL에서 앱을 찾아 설치할 수 있습니다.
OAuth 2.0
클래스룸 API에 액세스하려면 사용자 데이터 액세스 동의가 필요합니다. 로그인한 사용자의 Google OAuth 범위에 대한 액세스를 요청하고 이후 Google 클래스룸에 API를 호출하는 데 사용할 수 있는 토큰을 수신하여 가져옵니다. 사용자가 부가기능을 설치하는 경우 도메인 관리자가 도메인 사용자를 대신하여 동의를 제공할 수 있도록 Google Workspace Marketplace 스토어 등록정보에서 범위를 구성해야 합니다.
클래스룸 범위는 민감하므로 부가기능을 출시하기 전에 OAuth 인증을 요청해야 합니다. 그러지 않으면 사용자에게 애플리케이션이 확인되지 않았다는 경고 메시지가 표시되고 소수의 사용자만 제품에 액세스할 수 있습니다. 인증에 관한 자세한 내용은 검토 절차 개요를 참고하세요.
사용 가능한 모든 범위와 용도의 세부 목록은 Google API용 OAuth 범위 페이지를 참고하세요. 일반적인 OAuth 구성 정보는 Workspace 문서의 OAuth 구성 페이지를 참고하세요.
사용자 권한
웹 앱은 다음 범위 중 하나 이상을 요청해야 합니다.
https://www.googleapis.com/auth/userinfo.email
: 애플리케이션이 사용자의 이메일 주소를 볼 수 있습니다.https://www.googleapis.com/auth/userinfo.profile
: 애플리케이션이 세로 모드 이름, 성명 및 사용자가 공개적으로 제공한 기타 개인 정보와 같은 개인 정보를 확인할 수 있습니다.
사용자가 부가기능에서 이러한 범위 중 하나를 승인하면 login_hint
쿼리 매개변수로 식별됩니다. 이 매개변수는 iframe이 열릴 때 웹 앱의 URL에 전달됩니다. 사용자가 이러한 범위 중 하나를 승인하지 않으면 login_hint
가 전송되지 않습니다.
login_hint
는 Google 로그인을 사용하거나 OAuth 토큰을 요청할 때 선택적으로 Google에 전달할 수 있는 표준 OpenID Connect 매개변수입니다. 최종 사용자에게 보다 원활한 승인 환경을 제공하기 위한 것입니다.
클래스룸 부가기능 범위
다음은 클래스룸 부가기능에만 해당하는 범위입니다.
https://www.googleapis.com/auth/classroom.addons.teacher
: 모든 API 메서드에 액세스할 수 있습니다.https://www.googleapis.com/auth/classroom.addons.student
: 유효성 검사 및 첨부파일 읽기 작업을 시작할 수 있는 액세스 권한을 허용합니다.
사용자의 사용자 인증 정보를 나타내는 유효한 OAuth 액세스 토큰이 있더라도 API 호출은 추가 요구사항에 따라 제한됩니다.
- 모든 메서드에서 사용자가 요청의
courseId
에 지정된 과정의 교사 또는 학생이어야 합니다. - 첨부파일 생성, 업데이트, 삭제, 성적 전달을 수행하려면 사용자가 교사여야 합니다.
- 특정 Google 클래스룸 게시물 호출은 다음 검사에 따라 제한됩니다.
- 부가기능에서 게시물에 이미 하나 이상의 첨부파일이 있는 경우 다음을 요청할 수 있습니다.
- iframe 실행 검증
- 첨부파일 읽기, 업데이트, 삭제 작업
- 해당 게시물의 성적 업데이트
- 첨부파일 검색 iframe이 처음 열릴 때는 부가기능에 아직 게시물의 첨부파일이 없을 수 있습니다. 다음을 요청하는 데 사용할 수 있는
addOnToken
쿼리 매개변수가 제공됩니다.- 게시물 아래에 첨부파일 만들기 (
addOnToken
필요) - 실행 유효성 검사 (
addOnToken
는 제공된 경우 유효성 검사를 거치며, 게시물에 부가기능의 기존 첨부파일이 없는 경우 필요함)
- 게시물 아래에 첨부파일 만들기 (
- 부가기능에서 게시물에 이미 하나 이상의 첨부파일이 있는 경우 다음을 요청할 수 있습니다.
OAuth 확인
클래스룸 부가기능은 Google API를 사용하여 Google 사용자 데이터에 액세스합니다.
인증 절차에 관한 자세한 내용은 OAuth API 인증 FAQ를 참고하세요.
Google Workspace Marketplace 등록정보
일반적인 Google Workspace Marketplace SDK 구성 정보는 Google Workspace Marketplace SDK 사용 설정 및 구성하기 및 Google Workspace Marketplace 스토어 등록정보 만들기를 참고하세요.
등록정보 고려사항
공개 Google Cloud 프로젝트의 Marketplace SDK 스토어 등록정보는 최종 사용자에게 표시할 애플리케이션의 이름과 설명을 지정합니다. 앱 세부정보에서 여러 언어로 이러한 세부정보를 제공할 수 있습니다.
등록정보에 다음 가이드라인을 따르세요.
앱 세부정보에서 다음을 수행합니다.
애플리케이션 이름에 구두점을 사용하지 마세요. 예를 들어 '내 회사: 내 부가기능' 또는 '내 회사별 내 부가기능' 대신 '내 회사별 부가기능'을 사용합니다.
간단한 설명과 상세 설명에 동일한 텍스트가 포함되어서는 안 됩니다.
+ 가격 필드의 값을 선택했는지 확인합니다. 이 필드에는 무료, 무료 체험판이 포함된 유료, 무료 기능이 포함된 유료, 유료 가격 옵션이 포함됩니다. 마켓플레이스 등록정보에 비용 금액을 지정할 필요는 없습니다.
카테고리 필드의 값을 선택했는지 확인합니다. 학술 리소스 또는 교사 및 관리자 도구가 클래스룸 부가기능으로 적합할 수 있습니다.
자세한 내용은 마켓의 앱 세부정보 설명에 나열된 항목을 참고하세요.
그래픽 저작물에서 다음을 수행합니다.
제공된 그래픽 애셋이 흐릿하지 않고 Google Workspace Marketplace 표준에 지정된 크기를 충족합니다.
제공된 스크린샷은 부가기능 환경을 정확하게 표현합니다.
지원 링크에서 다음을 수행합니다.
- 애플리케이션의 서비스 약관 링크를 제공했는지 확인합니다.
허용되는 이름과 설명을 다루는 Google API 브랜딩 가이드라인을 준수해야 합니다.
등록정보에서 Google 제품을 언급하는 경우 상표 목록에 제공된 형식으로 이름을 사용하세요. 지정된 경우 상표 (™) 기호를 포함해야 합니다. 'Google Docs'가 아닌 'Google Docs™'를 사용하세요.
Google의 라이선스 및 결제 서비스와 통합
Google Workspace Marketplace 애플리케이션을 Google의 라이선스 및 결제 서비스와 통합하려면 Marketplace API를 참고하세요.
설치 설정
부가기능은 관리자 설치 외에도 개별 설치를 허용할 수 있습니다. 이 페이지에서는 두 설치 유형의 몇 가지 차이점을 중점적으로 설명합니다. 두 설치 유형을 홍보하기 위한 것이 아닙니다. Google Workspace Marketplace SDK 앱 구성 페이지에서 개별 설치를 허용할지 선택할 수 있습니다.
관리자 설치
관리자 설치를 사용하면 관리자가 도메인의 모든 계정 또는 특정 액세스 그룹 또는 조직 단위에 부가기능을 추가할 수 있습니다. 도메인 관리자만 관리자 설치를 실행할 수 있습니다. 관리자는 도메인의 모든 사용자를 대신하여 선택적으로 모든 액세스 범위에 동의할 수 있습니다. 관리자가 선택하는 경우 사용자에게 액세스 범위에 동의하라는 메시지가 표시되지 않습니다.
다음은 관리자 설치와 관련된 몇 가지 고려사항입니다.
- 더욱 세밀한 제어. 관리자는 부가기능에 액세스할 수 있는 사용자를 제한할 수 있습니다.
- 라이선스와의 호환성. 애플리케이션에 라이선스가 필요한 경우 관리자를 통해 설치를 채널하면 라이선스가 해당 기관에 적절하게 배포되고 사용되도록 할 수 있습니다.
- 최종 사용자의 부담을 줄입니다. 관리자가 설치하면 교사와 학생의 설정 부담이 줄어듭니다. 이렇게 하면 클릭 수가 줄고 혼란을 야기할 가능성이 줄어 더 원활한 사용자 환경을 제공할 수 있습니다.
관리자 설치를 실행하는 방법에 관한 자세한 내용은 도메인에 Marketplace 앱 설치하기를 참고하고 조직 단위 및 액세스 그룹에 관한 자세한 내용은 조직 구조 작동 방식을 참고하세요.
개별 설치
개별 설치의 경우 사용자 자신의 계정에 부가기능이 추가됩니다. 설치 중에 부가기능의 액세스 범위에 동의하라는 메시지가 사용자에게 표시됩니다.
다음은 개별 설치와 관련된 몇 가지 고려사항입니다.
- 채택을 용이하게 합니다. 더 많은 사용자가 Google Workspace Marketplace에서 부가기능을 보고 설치할 수 있습니다. 개별 설치를 허용하면 더 많은 교사가 제품을 채택하거나 홍보하도록 유도할 수 있습니다.
- 관리자 테스트. 관리자는 부가기능을 개별적으로 설치하여 테스트하거나 평가한 후 더 큰 그룹에 승인하거나 설치할 수 있습니다.
관리자는 사용자를 대신하여 부가기능을 설치할 뿐만 아니라 허용 목록을 유지하여 사용자가 개별 설치를 허용하는 부가기능을 설치하도록 허용할 수도 있습니다. 부가기능이 허용 목록에 없으면 사용자는 Google Workspace Marketplace에서 부가기능 등록정보를 계속 볼 수 있지만 부가기능을 설치할 수는 없습니다. 대신 도메인 관리자가 부가기능 설치를 허용하지 않았다는 메시지가 표시됩니다. 이 동작에 관한 자세한 내용은 허용 목록에서 Google Workspace Marketplace 앱 관리하기를 참고하세요.
자세한 내용은 Google Workspace Marketplace 설치 설정 문서를 참고하세요.
앱 통합
첨부파일 설정 URI 필드에 실행 iframe URL을 제공해야 합니다. 이 URL은 첨부파일 검색 iframe의 iframe src
값으로 사용됩니다. 첨부파일 검색 iframe은 교사가 과제에 첨부할 콘텐츠 또는 활동을 찾는 데 사용합니다.
또한 부가기능에서 첨부파일이 허용되는 모든 URI 접두사를 지정해야 합니다. 이 기능은 승인되지 않은 소스의 첨부파일을 방지하여 보안을 강화합니다.
이러한 필드에 관한 자세한 내용은 iframe 가이드 페이지를 참고하세요.
테스트 계정
데모 도메인에 테스트 계정을 만들어 비공개 부가기능의 올바른 동작을 확인합니다. 학생 과제 검토 iframe에서 학생 간에 전환하는 것을 테스트하려면 학생 계정이 2개 필요합니다.
추천 테스트 계정:
- 태미 선생님, tammy.teacher@<your demo domain>
- 샘 학생, sam.student@<your demo domain>
- 샐리 학생, sally.student@<your demo domain>
다음 절차에 따라 새 테스트 계정을 만듭니다.
- 관리 콘솔에 로그인합니다.
- 사용자로 이동합니다.
- 새 사용자 추가를 클릭합니다 (그림 1 참고).
- 사용자 정보를 입력하고 적절한 역할을 할당합니다.
그림 1. 관리 콘솔 내의 새 사용자 추가 링크 위치입니다.
새 테스트 그룹을 만들려면 다음 절차를 따르세요.
- 관리 콘솔에 로그인합니다.
- 그룹스로 이동합니다.
- 그룹 만들기를 클릭합니다 (그림 2 참고).
- 그룹의 구성원 및 소유자를 입력합니다.
그림 2. 관리 콘솔 내 그룹 만들기 링크의 위치