単一組織アプリケーションの登録
アプリケーションの登録は、単一組織アプリケーションを Space インスタンスにインストールする主な方法です。アプリケーションを登録するときは、認可フロー、必要な権限、アプリケーションのエンドポイントなどの設定を手動で指定します。
アプリケーションを Space インスタンスに追加する
メインメニューで、「 拡張」をクリックし、「インストール済み」を選択します。
新しいアプリをクリックします。
指定:
ユニークなアプリケーション名前。
アプリケーションメール。アプリケーションが Space リポジトリにコミットをプッシュする場合、
committer
フィールドでこのメールを使用できます。これは、リポジトリに対してコミッターの検証オプションが有効になっている場合に必要です。
作成をクリックします。
次に、他のアプリケーション設定を指定する必要があります。
認証フローの選択
Space でアプリケーションがどのように認証および認可されるかを決定します。アプリケーションに認可を実装する方法を学びます。
拡張 | 組織にインストールページで、アプリケーションの設定を開きます。
「認証」タブを開きます。アプリケーションを登録すると、Space はそのアプリケーション用に別のサービスアカウントを自動的に作成します。アプリケーションは、このアカウントを使用して Space からアクセストークンを取得する必要があります。アプリケーションの資格情報の場合:
クライアント ID は、「ユーザー名」の OAuth 対応です。
クライアントシークレットは、「パスワード」の OAuth 対応です。
対応するチェックボックスを使用してフローの 1 つを有効にします。
Space で明示的に有効にする必要のないフローがさらに 2 つあります。
リソース所有者のパスワード認証情報フロー – このフローは常に有効になります。
リフレッシュトークンフロー –認証コードフローまたはリソース所有者のパスワード認証情報フローを選択すると、このフローは自動的に有効になります。
アプリケーションの権限をリクエストする
アプリケーション自体に代わって Space 内の特定のリソースにアクセスするには、アプリケーションに対応するアクセス許可が必要です。アプリケーションの許可タブまたはアプリケーション自体から、必要なアクセス許可を要求できます。詳細については、「権限のリクエスト」を参照してください。
アプリケーションのエンドポイントを指定する
アプリケーションが Space との双方向通信を提供する場合 (チャットボットやカスタムメニューなど)、アプリケーションのエンドポイントを登録する必要があります。Space はこのエンドポイントを使用してアプリケーションにリクエストを送信します。
Space からリクエストを受信するとき、アプリケーションは、公開鍵、署名キー、SSL クライアント証明書、または HTTP 認証のいずれかの方法を使用して Space インスタンスを検証する必要があります。
拡張 | 組織にインストールページで、アプリケーションの設定を開きます。
エンドポイントタブを開きます。
エンドポイント URL では、アプリケーションが受信リクエストを処理するために使用するエンドポイントの URL を指定します。アプリが HTTPS を使用する場合は、さらに SSL 証明書を検証するを選択できることに注意してください。この場合、Space はエンドポイントの SSL 証明書の有効性をチェックします。
認証で、アプリケーションが Space を認証する方法を選択します。
公開鍵 : (推奨) この方法では、アプリケーションがリクエストハッシュを計算し、それをリクエストヘッダー内のハッシュと比較する必要があります。ハッシュを計算するには、アプリケーションはまず Space から公開鍵を取得する必要があります。これは HTTP リクエストで行われます。
アプリケーションに公開鍵を使用したハッシュ計算を実装する方法を学びます。
署名キー : このメソッドでは、アプリケーションがリクエストハッシュを計算し、それをリクエストヘッダー内のハッシュと比較する必要があります。ハッシュ計算に使用されるキーを生成するには、「生成」をクリックします。
アプリケーションにハッシュ計算を実装する方法を学びます。
SSL クライアント証明書 : このメソッドは、Space が SSL キーを使用してアプリケーションへのすべてのリクエストを暗号化することを意味します。リクエストの復号化は、アプリケーションではなく、アプリケーションをホストする Web サーバーによって行われます。この方法を使用するには、必要なクライアントキーを含む SSL キーストアを選択する必要があります。
SSL クライアント証明書を使用して Space を検証する方法を学びます。
検証トークン : (廃止) このメソッドでは、アプリケーションがリクエストヘッダーで送信された検証トークンと保存された検証トークンを比較する必要があります。トークンを生成するには、「生成」をクリックします。
アプリケーションでトークンを確認する方法を学習します。
HTTP 認証 : このメソッドは、
Authentication
要求ヘッダーを使用した標準 HTTP 認証の実装です。次の 2 つの認証方法のいずれかを選択する必要があります。ベアラー : Space は、指定されたトークンを
Authorization
ヘッダーで送信します。たとえば:Authorization: Bearer abc1234
アプリケーションは、リクエスト内のトークンと保存されたトークンを比較する必要があります。基本 : Space は、指定されたユーザー名およびパスワードを
Authorization
ヘッダーで送信します。たとえば:Authorization: Basic am9obmRvZTpwd2QxMjM0
Base64 エンコーディング(英語)を使用してユーザー名とパスワードを Space でエンコードします。これは暗号化ではないことに注意してください: それは単にデータ表現が異なるだけです。セキュリティの観点からは、ユーザー名とパスワードをプレーンテキストで送信することと同じです。
HTTP 認証を使用して Space を検証する方法を学びます。
重要なメモ:
1 つ以上の検証方法を選択できます。
選択した検証メソッドをアプリケーションに実装する必要があります。
最も安全な検証方法として公開鍵をお勧めします。
SSH キーを追加する
アプリケーションが SSH 経由で Space Git リポジトリにアクセスする場合 (たとえば、アプリケーションが外部 CI/CD サーバーである場合)、アプリケーションの SSH 公開鍵(英語)を指定する必要があります。
拡張 | 組織にインストールページで、アプリケーションの設定を開きます。
SSH キータブを開きます。
SSH キーを追加するをクリックし、キーをキーフィールドに貼り付けるか、下のフィールドを使用してキーを含むファイルをアップロードします。
追加をクリックします。
Space イベントを購読する
アプリケーションで Space のイベントに関する通知を受信したい場合は、Webhook を使用してこれを行うことができます。詳細。
関連ページ:
プッシュ制限を設定する
特定のルールを強制し、準拠していないプッシュを禁止することで、リポジトリを保護できます。認証されていないコミッターからのコミットを禁止したり、GPG コミット署名を強制および検証したり、正規表現を使用してコミットメッセージ規約を設定したり、サイズが大きすぎるファイルや不要なファイルのプッシュを禁止したりできます。プロジェクトに移動すると入力してリポジトリを開きます。リポジトリページで、「設定」をクリックします。プッシュ制限タブに移動します。編集を押します。制限を適用し (以下の説明を参照)、完了...
Space での認証
Space のセキュリティは、アクセストークン、つまり API リクエストの認証に使用されるシークレットに基づいています。Space と通信するには、アプリケーションはまずアクセストークンを取得する必要があります。その後、このトークンを使用してリクエストを Space に送信できます。例:GET https://mycompany.jetbrains.space/api/http/absences Authorization: Bearer <here-goes-access-token&...
認証コードフロー
基本:Space ユーザーに代わって承認を行います。サーバー側でクライアントが実行される Web アプリケーション、または完全にクライアントブラウザー (静的 Web ページ) で実行される Web アプリケーションに適しています。リソース所有者は、リソース所有者が使用するデバイス上のユーザーエージェントでレンダリングされる HTML ユーザーインターフェースを介してアプリケーションにアクセスします。アプリケーション資格情報とアプリケーションに発行されたアクセストークンは Web サーバー (...
権限のリクエスト
特定の Space エンドポイントにアクセスするには、アプリケーションはまず対応するアクセス許可を取得する必要があります。例: アプリケーションがプロジェクトの課題を作成する場合、アプリケーションには課題の作成権限が必要です。課題の詳細を表示するには、課題を表示する権限が必要です。アプリケーションに必要な権限のセット全体は、権限スコープと呼ばれます。アプリケーションがアクセス許可を要求する方法は、アプリケーション自体の代わりに動作するアプリケーションと、Space ユーザーの代わりに動作するアプ...
Space からのリクエストを検証する
アプリケーションが Space からリクエストを受信することになっている場合 (たとえば、エンドポイントでリクエストをリッスンするチャットボット)、受信したリクエストが本物かどうかを検証できる必要があります。Space では、さまざまな検証方法が提供されます。(推奨) 公開鍵、署名キー、(廃止された) 検証トークン、SSL クライアント証明書、HTTP 認証、(推奨) 公開鍵:この検証方法は非対称暗号化に基づいています。最も安全なものとして使用することをお勧めします。Space SDK は、こ...
Web フック
サンプル Space Webhook を使用するサンプルアプリケーション、Webhook を使用すると、アプリケーションは Space のイベントに関する通知を受信できるようになります。イベントがトリガーされると、Space は指定されたアプリケーションエンドポイントに POST リクエストを送信します。リクエストには、イベントの詳細を含む JSON ペイロードが含まれています。Space では、Webhook はアプリケーションの不可欠な部分です。各アプリケーションは、独自の構成済み Webho...