光のエンジニア雑食記

光も闇も、あるんだよ

JetBrains Space でGoogleアカウント認証を行う

本内容は2019/12/25時点のものなので、新しい情報は公式サイトをご覧ください。

JetBrains Space とは?

IDEだったりKotlinで有名な会社の、統合チーム環境 らしい。以下Spaceと表記。

今はまだEAPで、2020年末頃に一般リリースを行う予定とのこと。

www.jetbrains.com

ざっくりできること

  • チケット管理によるissue tracker ( 類似製品としてはJIRA)
  • package registry (docker, maven が使える。 NuGetとNPMも対応予定らしいが、coming soonとなっている)
  • git repository ( space単体で作成できる。他リポジトリからmigrateやmirrorも可能)
  • スケジュール管理
    • 休暇設定とかもできるみたい
  • ブログ作成
  • チャット
    • slackみたいなUI カスタム絵文字はまだ非対応

Spaceの外部認証について

Space はAuth Modulesで外部アカウント認証(Oauth認証)が行える。認証プラットフォーム単位でAuth Moduleと表現している。

外部認証には、以下が対応している。

  • GitHub
  • Google
  • Active Directory
  • OpenLDAP
  • JetBrains Hub

一番最初にSpaceを作成するアカウントは Built in というModuleらしい。 f:id:suzutan0s2:20191225215126p:plain

Google認証を行う

画面右上の New auth modules から、Google認証を追加していく。 f:id:suzutan0s2:20191225215411p:plain

GoogleのClient IDを発行する際に引っかかったポイントが有ったので合わせて記載していく。

(あらかじめGoogle Cloud Platformでプロジェクトを作成しています。作り方とかOAuthまわりは調べてね)

プロジェクトのデフォルトの状態でClientID, Client Secretを追加し、 Space topページからGoogle認証を行うと、以下のようなエラーが出てログインが行えない。

f:id:suzutan0s2:20191225215938p:plain

これは、 Space が Googleの People API を参照しているため、 デフォルトのスコープだと権限がないと怒られるから。

ここの部分 f:id:suzutan0s2:20191225220202p:plain

APIライブラリから People API を有効にしたあと、 スコープから profile , ../auth/user.emails.read を追加する。

f:id:suzutan0s2:20191225220702p:plain

保存したら、再度 Space topページからGoogle認証を行う。

問題なくログインが完了する。

Auth Moduleの設定次第では、Google認証後にアカウントが新規登録されるように設定できたり、ログインを許可するGoogleアカウントのドメインの制限なども行える。

yodan

GitHub Authも試したが、

Authentication with GitHub failed. Failed to exchange an authorization code for an access token: OAuth 2.0 token response contains no expires_in field

エラーにより認証に失敗するのであった。