JetBrains Space ヘルプ

暗黙的なフロー

基本

  • Space ユーザーに代わって承認を行います。

  • Web ブラウザーで実行される JavaScript アプリケーションに適しています。

  • 暗黙的なフローでは、アプリケーションはリンクを介してユーザーを Space に送信します。ユーザーが Space にログインすると、Space は指定されたリダイレクト URI を使用してユーザーをアプリケーションにリダイレクトします。リダイレクトには、アプリケーションのアクセストークンが含まれています。

  • フローの詳細については、暗黙的なフロー仕様(英語)を参照してください。

実装方法

暗黙的フローを実装するには、SpaceHttpClient().withCallContext() メソッドを使用します。

最初のリクエスト

認証プロセスを開始するには、アプリケーションは次の形式でユーザーのブラウザーを認証エンドポイント <Space service URL>/oauth/auth にリダイレクトする必要があります。

${Space Service URL}/oauth/auth?response_type=token&state=${State}&redirect_uri=${Client redirect URI}&request_credentials=${Request credentials mode}&client_id=${Client service ID}&scope=${Scope}

例:

https://mycompany.jetbrains.space/oauth/auth?response_type=token&state=9b8fdea0-fc3a-410c-9577-5dee1ae028da&redirect_uri=https%3A%2F%2Fmyservice.company.com%2Fauthorized&request_credentials=skip&client_id=98071167-004c-4ddf-ba37-5d4599fdf319&scope=0-0-0-0-0%2098071167-004c-4ddf-ba37-5d4599fdf319

Space からアクセストークンを取得するには、アプリケーションは承認リクエストで次のパラメーターの値を指定する必要があります。

response_type

OAuth 2.0 リクエストの許可タイプを指定します。値を token に設定します。

状態

現在のアプリケーション状態の識別子。例: アプリケーション内の現在のユーザーの位置に関する情報を含むローカルストレージオブジェクトのキーにすることができます。

redirect_uri

Space からの応答を処理できるアプリケーション内の URI。これは、アプリケーションの登録時に指定された URI の 1 つである必要があります。

request_credentials

ユーザーにログインを要求するかどうかを決定するパラメーター。以下の値が有効です。

  • skip — アプリケーションが匿名アクセスを許可する場合に使用します。

    • ユーザーがすでに Space にログインしている場合、ユーザーにはアプリケーションへのアクセスが許可されます。

    • ユーザーが Space にログインしておらず、ゲストアカウントが禁止されていない場合、ユーザーにはゲストとしてアプリケーションへのアクセスが許可されます。

    • ユーザーが Space にログインしておらず、ゲストアカウントが禁止されている場合、ユーザーはログインページにリダイレクトされます。

  • silentskip と同じですが、どの場合でもユーザーをアプリケーションにリダイレクトします。ゲストアカウントが禁止されている場合、ユーザーは認証エラーが発生してアプリケーションにリダイレクトされます。

  • required — ユーザーを Space からログアウトし、ログインページにリダイレクトします。アプリケーションのログアウト要求に対する応答として使用します。

  • default — アプリケーションが匿名アクセスを許可しない場合に使用します。

    • ユーザーがすでに Space にログインしている場合、ユーザーにはアプリケーションへのアクセスが許可されます。

    • ユーザーが Space にログインしていない場合、ユーザーはログインページにリダイレクトされます。

client_id

Space に登録されているアプリケーションの ID。クライアント ID を取得するには、administration.png 管理→ アプリケーションに移動し、リストからアプリケーションを選択します。

範囲

Space 内の特定のリソースにアクセスするために必要な権限の Space 区切りのリスト。

権限スコープの形式の詳細については、こちらを参照します

ハンドル応答

クライアントサービスは、redirect_uri として指定された URL で Space からの応答を処理できる必要があります。応答パラメーターは、URL のハッシュ記号の後に渡されます。その結果、これらのパラメーターはサーバーに送信されず、悪意のある者によって傍受されることはありません。リソース所有者がアクセス要求を許可すると、Space はアクセストークンを発行し、application/x-www-form-urlencoded 形式を使用してリダイレクト URI のフラグメントコンポーネントに次のパラメーターを追加することによって、それをアプリケーションに配信します。

パラメーター

説明

access_token

Space が発行するアクセストークン。

token_type

Space が発行するトークンの種類。値は大文字と小文字が区別されません。

expires_in

アクセストークンの有効期間(秒単位)。例: 値「3600」は、応答が生成されてから 1 時間でアクセストークンが期限切れになることを示します。

範囲

アプリケーションによって要求されたスコープと同じ場合はオプション。それ以外の場合は必須。Space 内の特定のリソースにアクセスするために必要な権限の Space 区切りのリスト。

状態

アプリケーション承認リクエストに「state」パラメーターが含まれている場合に必須です。正確な値はアプリケーションから受信されます。

ハンドルエラー応答

リダイレクト URI が欠落している、無効である、不一致であるためにリクエストが失敗した場合、またはアプリケーション識別子が欠落しているか無効である場合、Space サーバーはリソース所有者にエラーを通知し、ブラウザーを無効なリダイレクト URI に自動的にリダイレクトしません。

リソース所有者がアクセス要求を拒否した場合、またはリダイレクト URI の欠落または無効以外の理由で要求が失敗した場合、認可サーバーは application/x-www-form-urlencoded 形式を使用してリダイレクト URI のフラグメントコンポーネントに次のパラメーターを追加することでアプリケーションに通知します。

エラー

以下からの単一の ASCII [USASCII] エラーコード:

  • invalid_request — Space への承認リクエストに必須のパラメーターがないか、無効なパラメーター値が含まれているか、パラメーターが複数回含まれているか、形式が不正です。

  • unauthorized_client — サービスの redirect_URI が間違っているか、見つかりません。

  • access_denied — リソース所有者または Space がリクエストを拒否しました。

  • unsupported_response_type — パラメーター response_type が欠落しているか、値が無効です。

  • invalid_scope — パラメーターのスコープが欠落しているか、承認が要求されるスコープが、アプリケーションに登録および承認されているアクセス許可と一致しません。

error_description

追加情報を提供する人間が読める ASCII [USASCII] テキスト。アプリケーション開発者が何が課題になったのかを理解できます。

関連ページ:

単一組織アプリケーションの登録

アプリケーションの登録は、単一組織アプリケーションを Space インスタンスにインストールする主な方法です。アプリケーションを登録するときは、認可フロー、必要な権限、アプリケーションのエンドポイントなどの設定を手動で指定します。アプリケーションを Space インスタンスに追加する:メインメニューで、「拡張」をクリックし、「インストール済み」を選択します。新しいアプリをクリックします。指定: ユニークなアプリケーション名前。アプリケーションメール。アプリケーションが Space リポジトリにコ...

権限のリクエスト

特定の Space エンドポイントにアクセスするには、アプリケーションはまず対応するアクセス許可を取得する必要があります。例: アプリケーションがプロジェクトの課題を作成する場合、アプリケーションには課題の作成権限が必要です。課題の詳細を表示するには、課題を表示する権限が必要です。アプリケーションに必要な権限のセット全体は、権限スコープと呼ばれます。アプリケーションがアクセス許可を要求する方法は、アプリケーション自体の代わりに動作するアプリケーションと、Space ユーザーの代わりに動作するアプ...