暗黙的なフロー
基本
Space ユーザーに代わって承認を行います。
Web ブラウザーで実行される JavaScript アプリケーションに適しています。
暗黙的なフローでは、アプリケーションはリンクを介してユーザーを Space に送信します。ユーザーが Space にログインすると、Space は指定されたリダイレクト URI を使用してユーザーをアプリケーションにリダイレクトします。リダイレクトには、アプリケーションのアクセストークンが含まれています。
フローの詳細については、暗黙的なフロー仕様(英語)を参照してください。
実装方法
暗黙的フローを実装するには、SpaceHttpClient().withCallContext()
メソッドを使用します。
最初のリクエスト
認証プロセスを開始するには、アプリケーションは次の形式でユーザーのブラウザーを認証エンドポイント <Space service URL>/oauth/auth
にリダイレクトする必要があります。
例:
Space からアクセストークンを取得するには、アプリケーションは承認リクエストで次のパラメーターの値を指定する必要があります。
- response_type
OAuth 2.0 リクエストの許可タイプを指定します。値を
token
に設定します。- 状態
現在のアプリケーション状態の識別子。例: アプリケーション内の現在のユーザーの位置に関する情報を含むローカルストレージオブジェクトのキーにすることができます。
- redirect_uri
Space からの応答を処理できるアプリケーション内の URI。これは、アプリケーションの登録時に指定された URI の 1 つである必要があります。
- request_credentials
ユーザーにログインを要求するかどうかを決定するパラメーター。以下の値が有効です。
skip
— アプリケーションが匿名アクセスを許可する場合に使用します。ユーザーがすでに Space にログインしている場合、ユーザーにはアプリケーションへのアクセスが許可されます。
ユーザーが Space にログインしておらず、ゲストアカウントが禁止されていない場合、ユーザーにはゲストとしてアプリケーションへのアクセスが許可されます。
ユーザーが Space にログインしておらず、ゲストアカウントが禁止されている場合、ユーザーはログインページにリダイレクトされます。
silent
—skip
と同じですが、どの場合でもユーザーをアプリケーションにリダイレクトします。ゲストアカウントが禁止されている場合、ユーザーは認証エラーが発生してアプリケーションにリダイレクトされます。required
— ユーザーを Space からログアウトし、ログインページにリダイレクトします。アプリケーションのログアウト要求に対する応答として使用します。default
— アプリケーションが匿名アクセスを許可しない場合に使用します。ユーザーがすでに Space にログインしている場合、ユーザーにはアプリケーションへのアクセスが許可されます。
ユーザーが Space にログインしていない場合、ユーザーはログインページにリダイレクトされます。
- client_id
Space に登録されているアプリケーションの ID。クライアント ID を取得するには、
に移動し、リストからアプリケーションを選択します。- 範囲
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 ユーザーの代わりに動作するアプ...