JetBrains Space ヘルプ

Space での認証

Space のセキュリティは、アクセストークン、つまり API リクエストの認証に使用されるシークレットに基づいています。Space と通信するには、アプリケーションはまずアクセストークンを取得する必要があります。その後、このトークンを使用してリクエストを Space に送信できます。例:

GET https://mycompany.jetbrains.space/api/http/absences Authorization: Bearer <here-goes-access-token> Accept: application/json

アクセストークンは、Space でアプリケーションを認証する (アプリケーションがシステムに登録されていることを確認する) だけでなく、それを承認します (システム内でアプリケーションが何を実行できるかを定義します)。

認可主体

Space API を呼び出すとき、アプリケーションは、それ自体に代わって動作することも、Space ユーザーに代わって動作することもできます。独自に動作する場合、Space 管理者によってアプリケーションに付与されたアクセス許可によって制限されます。ユーザーに代わって動作する場合、ユーザーがアプリケーションに付与した権限によって制限されます。ユーザーは、自分自身が持つアクセス許可のみを付与できます。

例: チャットボットは通常、自分自身に代わってメッセージを投稿します。チャットチャネルでは、このアプリケーションがメッセージ作成者として表示されます。サードパーティシステムでのユーザーアクションの結果として Space で課題を作成するアプリケーションは、そのユーザーに代わって動作する場合があります。ただし、アプリケーションが課題を作成しますが、課題の作成者は特定の Space ユーザーです。

アクセストークンの取得方法は対象によって異なります。以下の表の代理列を参照してください。

アクセストークンを取得する

アクセストークンを取得するには、アプリケーションは Space でサポートされている認証方法の 1 つ (OAuth 2.0 認証フローの 1 つ、または永久トークンを使用した認証) を使用する必要があります。詳細は以下を参照してください。

メソッド

こんな方に最適

代理

詳細

永久トークン

推奨されません

まだ開発中のアプリケーションのテストに使用できます

ユーザーまたはアプリケーション

アプリケーションが通信セッションごとに一時トークンを取得する OAuth 2.0 フローとは異なり、永久トークンは期限切れになりません。これにより、この認証方法の安全性は低くなりますが、実装は容易になります。

OAuth 2.0. 認証コードフロー

サーバー上の認証ロジックを備えた Web アプリケーション

ユーザー

アプリケーションは、必要なリソースの範囲も含まれるリンクを介してユーザーを Space に送信します。ユーザーが Space にログインすると、Space は指定されたリダイレクト URI を使用してユーザーをアプリケーションにリダイレクトします。リダイレクトには認証コードも含まれています。アプリケーションは認証コードを使用して、Space からアクセストークンを取得します。

Space では、認可コードフローはリフレッシュコードフローと組み合わせて使用されます。アプリケーションはアクセストークンだけでなく refresh_token も取得します。このトークンにより、現在のアクセストークンの有効期限が切れると、アプリケーションは新しいアクセストークンを自動的に取得できます。

OAuth 2.0. クライアントクレデンシャルフロー

チャットボットなど、自分自身に代わってリソースにアクセスする必要があるアプリケーション。

アプリケーション

アプリケーションは、client_id および client_secret を送信することにより、Space からアクセストークンを受け取ります。

ユーザー認証が必要なリソースには、クライアント認証情報フローを使用してアクセスすることはできません。スクリプトがユーザーに代わって動作できるようにする他のフローを使用します。

OAuth 2.0. 暗黙のフロー

ブラウザー内の認証ロジックを備えたリッチクライアント Web アプリケーション

ユーザー

使用すべきではありません。

アプリケーションは、ユーザーアカウントの権限の範囲も含まれるリンクを介してユーザーを Space に送信します。ユーザーが Space にログインすると、Space は指定されたリダイレクト URI を使用してユーザーをアプリケーションにリダイレクトします。リダイレクトには、アプリケーションのアクセストークンが含まれています。

OAuth 2.0. リソース所有者のパスワードクレデンシャルフロー

推奨されません

ユーザーに代わってリソースにアクセスする必要があるスクリプトに使用できる可能性があります

ユーザー

ユーザーはアプリケーションに Space ユーザー資格情報を提供し、アプリケーションはその資格情報を使用して、ユーザーに代わって Space へのフルアクセスを取得します。このフローは安全ではないため、使用はお勧めしません。

このフローは、登録されているすべてのアプリケーションに対してデフォルトで有効になっているため、明示的に有効にする必要はありません。

OAuth 2.0 エンドポイント

Space の OAuth 2.0 エンドポイント:

エンドポイント

URL

認証

<Space service URL>/oauth/auth

トークン

<Space service URL>/oauth/token

アプリケーションに認可を実装する方法

Space SDK 上にアプリケーションを作成する場合、SpaceHttpClient クラスとその拡張メソッドを使用して、特定の認証メソッドを実装できます。

Space SDK を使用しない場合は、このドキュメントに記載されている一般的な手順に従うことができます。

認可 Playground

Space 認可 Playground では、さまざまな認証方法を試すことができます。

Authorization Playground

認証 Playground を開くには

  1. メインメニューで、menu-horizontal.png をクリックしてメニューを展開し、 extensions.png 拡張を選択します。

  2. 拡張サイドバーで、認可 Playground を選択します。

関連ページ:

永久トークン

永久トークンを使用すると、OAuth 2.0 認証フローを実装しなくても、Space でアプリケーションを認証および認可できます。特定の権限スコープを持つ新しいトークンを作成し、それをどこからでも認証に使用するだけです。永久トークンを要求ヘッダーのパラメーターとして使用します。永久トークンは、OAuth 2.0 認証で使用される一時アクセストークンよりも本質的に安全性が低いことに注意してください。アプリケーションの認可には 2 種類の永久トークンを使用できます。アプリケーション永久トークン: ア...

(Kotlin) チャットボットの作成方法

チャットボットとは何ですか ? これは、独自のチャットチャネルで Space ユーザーと通信する Space アプリケーションです。最低限実行可能なボットは次のことを行う必要があります。ユーザーがチャネルに (スラッシュ) を入力すると、使用可能なコマンドのリストが表示されます。少なくとも 1 つのコマンドを指定します。ユーザーがこのコマンドをチャネルに送信した後、ボットは何かを実行してからメッセージで応答する必要があります。何をしたらいいでしょう:もちろん、初めてのチャットボットでも ! 早速...

Space SDK

Space SDK は、JetBrains Space HTTP API を操作できるようにし、Space アプリケーションの開発を簡素化するライブラリです。クイックスタート:1. プロジェクト内の Space SDK を参照する次の依存関係をプロジェクトの / ファイルに追加します。// the example is given for build.gradle.kts repositories { // here go other project repos ... maven("https:...