Google Cloud 프로젝트 구성

이 페이지에는 클래스룸 부가기능을 위한 Google Cloud 프로젝트를 만들고 구성하는 데 필요한 정보가 포함되어 있습니다. Google Cloud 프로젝트는 OAuth 2.0(Google SSO)을 통해 Google 싱글 사인온을 구현하고, 부가기능에서 발생한 요청을 승인하고, Google Workspace Marketplace 스토어에서 부가기능의 등록정보를 관리하는 데 사용됩니다.

Marketplace에 부가기능을 게시하는 방법에 관한 일반적인 정보는 앱 게시를 참고하세요.

Google Cloud 프로젝트 만들기

만들 프로젝트에는 두 가지 유형이 있습니다. 개발에 사용되는 비공개 프로젝트와 최종 사용자가 액세스할 수 있는 공개 프로젝트입니다. "공개" 및 "비공개" 라벨은 Google Workspace Marketplace에서 애플리케이션의 공개 상태를 나타냅니다. 비공개 Marketplace 애플리케이션은 생성된 도메인 내의 사용자만 설치할 수 있는 반면, 공개 Marketplace 애플리케이션은 모든 Google Workspace 도메인에서 사용할 수 있습니다. 프로젝트는 공개 및 비공개일 수 없으므로 두 개의 별도 애플리케이션이어야 합니다. 공개 애플리케이션은 Marketplace에서 제공되기 전에 검토 및 승인을 받아야 합니다.

일반적인 Google Cloud 프로젝트 생성 정보는 Create a Google Cloud project를 참고하세요.

공개 Google Cloud 프로젝트 만들기

이 프로젝트는 관리자, 교사, 학생이 액세스할 수 있는 부가기능 애플리케이션을 나타냅니다. 공개 프로젝트는 출시 또는 설치되기 전에 Google Workspace Marketplace팀의 검토 및 승인을 받아야 합니다.

  1. 프로덕션 도메인에서 새 Google Cloud 프로젝트를 만듭니다.

    Google Cloud 프로젝트 만들기

  2. Google Cloud 프로젝트에서 클래스룸 API를 사용 설정합니다.

    클래스룸 API 사용 설정

  3. Google Cloud 프로젝트에서 Google Workspace Marketplace SDK를 사용 설정합니다.

    Google Workspace Marketplace SDK 사용 설정

  4. Marketplace SDK 앱 구성 앱 공개 상태공개로 설정하고 비공개 체크박스를 선택합니다.

  5. Marketplace SDK 스토어 등록정보 페이지에서 필수 필드를 작성하고 게시를 클릭합니다.

  6. 앱은 Google Workspace Marketplace팀에서 검토합니다. Marketplace SDK에 지정된 개발자 이메일 주소를 사용하여 연락을 드립니다. 앱이 승인되면 교사와 관리자가 Marketplace에서 앱을 찾을 수 있도록 비공개 체크박스를 선택 해제합니다.

비공개 Google Cloud 프로젝트 만들기

비공개 프로젝트는 개발에 사용되는 부가기능 애플리케이션을 나타냅니다. 생성된 도메인 외부의 사용자는 액세스할 수 없지만 설치 전에 승인을 받을 필요는 없습니다. 따라서 Google에서는 이 프로젝트를 사용하여 제어된 환경에서 부가기능을 개발하고 테스트하는 것이 좋습니다.

비공개 프로젝트를 만들려면 Teaching &Learning 또는 Plus 라이선스가 있는 Google Workspace for Education 도메인에 액세스해야 합니다. 이러한 도메인에 아직 액세스할 수 없는 경우 다음 단계에 따라 Google Workspace for Education 데모 도메인을 설정하고 Plus 라이선스로 업그레이드하고 클래스룸 부가기능 API에 액세스하도록 허용하세요.

  1. 개발자 테스트 도메인을 가져오는 단계를 완료합니다.
  2. 데모 도메인의 관리자로 로그인한 상태에서 새 Google Cloud 프로젝트를 만듭니다.

    Google Cloud 프로젝트 만들기

    Google Cloud 콘솔에 액세스하거나 Cloud 프로젝트를 만들 수 없는 경우 관리 콘솔에서 다음을 확인하세요.

    • 계정 설정 > 연령 기반 액세스 설정 페이지로 이동하여 이 그룹 또는 조직 단위의 모든 사용자가 만 18세 이상임 옵션을 선택합니다.
    • 앱 > 추가 Google 서비스 에서 다음을 확인합니다.
    • Google Cloud Platform이 모든 사용자에게 사용 설정 되어 있습니다.
    • 프로젝트 생성 설정이 사용자가 프로젝트를 만들 수 있도록 허용 되어 있습니다.
    • Cloud Shell 액세스 설정이 Cloud Shell에 대한 액세스 허용 되어 있습니다.
  3. 데모 도메인 업그레이드 요청 양식을 작성하여 제출합니다. 이 양식을 제출하면 Google에서 데모 도메인을 10개의 라이선스가 있는 Google Workspace for Education Plus로 업그레이드하고 클래스룸 부가기능 API에서 Google Cloud 프로젝트를 허용하도록 요청합니다.

    업그레이드 및 허용 목록 프로세스가 완료되면 이메일이 전송됩니다. 관리 콘솔에서 테스트 교사 계정에 Plus 라이선스를 할당합니다. 디렉터리 > 사용자 에서 테스트 교사 계정을 만들거나 선택합니다. 각 교사의 라이선스에서 Google Workspace for Education Plus가 할당됨으로 표시되는지 확인합니다.

  4. Google Cloud 프로젝트에서 클래스룸 API를 사용 설정합니다.

    클래스룸 API 사용 설정

  5. Google Cloud 프로젝트에서 Google Workspace Marketplace SDK를 사용 설정합니다.

    Google Workspace Marketplace SDK 사용 설정

  6. Marketplace SDK 앱 구성 앱 공개 상태비공개로 설정합니다.

  7. Marketplace SDK 스토어 등록정보 페이지에서 필수 필드를 작성하고 게시를 클릭합니다. 앱 등록정보가 게시되면 도메인의 사용자 는 Google Workspace Marketplace에서 또는 스토어 등록정보 페이지에 표시된 앱 URL을 방문하여 앱을 찾고 설치할 수 있습니다.

OAuth 2.0

클래스룸 API에 액세스하려면 사용자 데이터 액세스 동의가 필요합니다. 이는 로그인한 사용자의 OAuth 범위에 대한 Google 액세스를 요청하고 이후에 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 스토어 등록정보는 최종 사용자에게 표시되는 애플리케이션 이름과 설명을 지정합니다. 앱 세부정보 에서 여러 언어로 이러한 세부정보를 제공할 수 있습니다.

등록정보에서 다음 가이드라인을 따르세요.

  • 앱 세부정보에서 다음을 확인합니다.
    • 애플리케이션 이름에 구두점을 사용하지 마세요. 예를 들어 'My Company: My Add-on' 또는 'My Add-on, by My Company' 대신 "My Add-on by My Company"을 사용합니다.
    • 간략한 설명자세한 설명 에 정확히 동일한 텍스트가 포함되어서는 안 됩니다.
    • 가격 필드의 값을 선택했는지 확인합니다. 이 필드에는 무료, 무료 체험판이 포함된 유료, 무료 기능이 포함된 유료, 유료 가격 옵션이 포함되어 있습니다. Marketplace 등록정보에서 비용 금액을 지정할 필요는 없습니다.
    • 카테고리 필드의 값을 선택했는지 확인합니다. 클래스룸 부가기능에는 학술 리소스 또는 교사 및 관리자 도구 가 적합할 수 있습니다.
    • 자세한 내용은 Marketplace의 앱 세부정보 설명에 나열된 항목을 참고하세요.

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은 교사가 과제에 첨부할 콘텐츠 또는 활동을 찾는 데 사용합니다. Google Cloud 프로젝트 콘솔에서 설정할 수 있습니다.

iFrame URI 구성

허용된 첨부파일 URI 프리픽스AddOnAttachment에 설정된 URI의 유효성을 검사하는 데 사용됩니다.*.addOnAttachments.create*.addOnAttachments.patch 유효성 검사는 리터럴 문자열 프리픽스 일치이며 와일드 카드 사용을 허용하지 않습니다.

또한 부가기능에서 첨부파일이 허용되는 모든 URI 프리픽스 를 지정해야 합니다. 이 기능은 승인되지 않은 소스의 첨부파일을 방지하여 보안을 강화합니다.

Google Cloud 프로젝트의 Marketplace SDK 앱 구성 페이지에서 두 값을 모두 설정합니다.

테스트 계정

데모 도메인에서 테스트 계정을 만들어 비공개 부가기능의 올바른 동작을 확인합니다. 학생 작업 검토 iframe에서 학생 간 전환을 테스트하려면 학생 계정 두 개가 필요합니다.

추천 테스트 계정:

  • 교사 태미, tammy.teacher@<데모 도메인>
  • 학생 샘, sam.student@<데모 도메인>
  • 학생 샐리, sally.student@<데모 도메인>

다음 절차에 따라 새 테스트 계정을 만듭니다.

  1. 관리 콘솔에 로그인합니다.
  2. 사용자 로 이동합니다.
  3. 새 사용자 추가 를 클릭합니다 (그림 1 참고).
  4. 사용자 정보를 입력하고 적절한 역할을 할당합니다.

신규 사용자 추가를 클릭합니다. 그림 1. 관리 콘솔 내 새 사용자 추가 링크의 위치

다음 절차에 따라 새 테스트 그룹을 만듭니다.

  1. 관리 콘솔에 로그인합니다.
  2. 그룹 으로 이동합니다.
  3. 그룹 만들기 를 클릭합니다 (그림 2 참고).
  4. 그룹의 구성원과 소유자를 입력합니다.

그룹 만들기를 클릭합니다. 그림 2. 관리 콘솔 내 그룹 만들기 링크의 위치