YouTrack および Hub ヘルプの開発者ポータル

暗黙的

規格への参照

暗黙の付与 Flow 仕様 (英語)

前提条件

クライアントは公開されています。通常、ブラウザーの JavaScript コード。

  1. Client service ID — Hub のクライアントに関連付けられているサービスの ID。

  2. Scope — リソースサーバーに関連付けられた Hub サービスに登録されている ID のスペース区切りのリスト。例: クライアントが YouTrack の課題にアクセスしたい場合は、Hub の YouTrack サービスの ID を見つける必要があります。クライアントは、単一のアクセストークンで複数のリソースサーバーにアクセスできます。

  3. Client redirect URI — Hub からの応答を処理できるクライアントアプリケーションの URI。

  4. Hub URL — Hub サーバーの URL。

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

  6. Request credentials mode

    — ログインフォームをユーザーに表示するかどうかを制御するパラメーター。次の値が有効です。

    • skip

      — クライアントサービスが一般的に匿名アクセスを許可している場合は、このオプションを使用します。次のように機能します。

      • ユーザーがすでに Hub にログインしている場合は、そのユーザーにクライアントサービスを許可します。

      • ユーザーが Hub にログインしておらず、ゲストアカウントが禁止されていない場合は、ゲストにクライアントサービスを許可します。

      • ユーザーが Hub にログインしておらず、ゲストアカウントが禁止されている場合は、ユーザーをログインフォームに移動します。

    • silentskip と同じですが、戻ってきます。ゲストアカウントが禁止されている場合、このオプションは認証エラーでクライアントサービスに戻ります。

    • required — ユーザーをログアウトし、ログインフォームを表示します。このオプションは、クライアントサービスからログアウトするための応答として使用します。

    • default

      — クライアントサービスが匿名アクセスを許可しない場合は、このオプションを使用します。次のように機能します。

      • ユーザーがすでに Hub にログインしている場合は、ユーザーにクライアントサービスを許可します。

      • ユーザーが Hub にログインしていない場合は、ユーザーをログインフォームに移動します。

承認サーバーへのユーザの送信 (Hub)

認証コードを開始するには、ブラウザーを次の場所にリダイレクトする必要があります。

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

例:

https://hub.company.com/api/rest/oauth2/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

許可サーバーの処理(Hub)応答

クライアントサービスは、redirect_uri として渡された URL で Hub からの応答を処理できる必要があります。応答パラメーターは、URL のハッシュ記号の後に渡されます。これらのパラメーターはサーバーに送信されず、悪意のあるユーザーによって傍受されることはありません。

リソース所有者がアクセス要求を許可すると、Hub はアクセストークンを発行し、"application/x-www-form-urlencoded" 形式を使用してリダイレクト URI のフラグメントコンポーネントに次のパラメーターを追加することにより、アクセストークンをクライアントに配信します。

access_token

許可サーバーによって発行されたアクセストークン。

token_type

Hub によって発行されたトークンのタイプ。値は大文字と小文字を区別しません。

expires_in

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

範囲

クライアントが要求したスコープと同一の場合はオプション。それ以外の場合は、必須です。Hub のアクセストークンのスコープは service_id です。

状態

「state」パラメーターがクライアント許可要求に存在する場合に必要です。クライアントから受け取った正確な値。

許可サーバー(Hub)はリフレッシュトークンを発行しません。

例: Hub サーバーは、次の HTTP レスポンスを送信してユーザーエージェントをリダイレクトします。

HTTP/1.1 302 Found Location: http://myservice.company.com/authorized#access_token=1443459450185.0-0-0-0-0.98071167-004c-4ddf-ba37-5d4599fdf319.0-0-0-0-0%3B1.MCwCFC%2FYWvLjHdzOdpLleDLITJn4Mz9rAhRklCoZ2dlMkh2aCd1K5QQ89ibsxg%3D%3D&token_type=Bearer&expires_in=3600&scope=0-0-0-0-0%2098071167-004c-4ddf-ba37-5d4599fdf319&state=9b8fdea0-fc3a-410c-9577-5dee1ae028da

Hub からのエラー処理

リダイレクション URI が欠落しているか、無効であるか、不一致であるために要求が失敗した場合、クライアント ID が欠落しているか無効である場合、Hub サーバーはリソース所有者にエラーを通知し、ユーザーエージェントを無効なリダイレクトに自動的にリダイレクトしません。URI。

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

エラー

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

  • invalid_request - リクエストに必要なパラメーターがない、無効なパラメーター値が含まれている、パラメーターが複数回含まれている、その他の形式が正しくない。

  • unauthorized_client - クライアントは、この方法を使用して認証コードを要求することを許可されていません。

  • access_denied - リソース所有者または Hub が要求を拒否しました。

  • unsupported_response_type Hub は、この方法を使用した認証コードの取得をサポートしていません。

  • invalid_scope 要求されたスコープが無効、不明、不正な形式です。

  • server_error Hub サーバーで予期しない状態が発生したため、要求を実行できませんでした。(500 Internal Server Error HTTP ステータスコードは HTTP リダイレクトを介してクライアントに返すことができないため、このエラーコードが必要です。)

  • temporarily_unavailable サーバーの一時的なオーバーロードまたは保守のため、許可サーバーは現在要求を処理できません。(このエラーコードが必要なのは、503 Service UnavailableHTTP ステータスコードを HTTP リダイレクト経由でクライアントに返すことができないためです。)

error_description

発生したエラーをクライアント開発者が理解するのを支援するために使用される、追加情報を提供する人間が読める ASCII [USASCII] テキスト。

error_uri

エラーに関する追加情報をクライアント開発者に提供するために使用される、エラーに関する情報を含む人間が読める Web ページを識別する URI。

状態

クライアント許可要求に「状態」パラメーターが存在する場合は必須です。クライアントから受け取った正確な値。

例: Hub は、次の HTTP レスポンスを送信してユーザーエージェントをリダイレクトします。

HTTP/1.1 302 Found Location: https://myservice.company.com/cb#error=access_denied&state=xyz
2026 年 5 月 07 日