Hub での OAuth2.0 認証
OAuth 2.0(英語) の Hub 実装は、いくつかの認証 / 承認フローをサポートします。Hub 自体のリソースおよび Hub に接続されているサービスにアクセスするには、クライアントはアクセストークンを取得する必要があります。クライアントが使用できるフローは、以下によって異なります。
クライアントが持っている情報(サービス資格情報 / ユーザー資格情報)。
アプリケーションの種類 (ブラウザー / サーバー側アプリケーション / スタンドアロンアプリケーション)。
どの Flow を使用しますか?
開発する ... | 使用する Flow | 必須パラメーター | 追加要件 |
|---|---|---|---|
ブラウザーにすべての認証ロジックを備えたリッチクライアント Web アプリケーション |
| Hub からの権限付与でブラウザーリクエストを処理します | |
サーバー側で認証ログインを使用する Web アプリケーション |
| サーバー側の Hub サーバーからの許可でリクエストを処理します | |
非対話的に認証トークンを要求できるデスクトップまたはモバイルアプリケーション |
| サーバー側の Hub サーバーからの許可でリクエストを処理します | |
自分に代わってリソースにアクセスする必要があるスクリプト |
| なし | |
一部のユーザーに代わってリソースにアクセスする必要があるスクリプト |
| なし |
持つべき情報
パラメーター | 必要ですか? | 説明 |
|---|---|---|
| 常時 | Hub のクライアントに関連付けられているサービスの ID(ID)。 |
| フローに依存 | Hub のクライアントに関連付けられたサービスのシークレット。 |
| 常時 | リソースサーバーに関連付けられた Hub サービスに登録されている ID。例: クライアントが YouTrack の課題にアクセスしたい場合は、Hub の YouTrack サービスの ID を見つける必要があります。 クライアントは、単一のアクセストークンで複数のリソースサーバーにアクセスできます。この場合、スコープは、Hub に登録されているサービスの ID のスペース区切りのリストです。 |
| フローに依存 | 許可サーバー(Hub)からの応答を処理できるクライアントアプリケーションの URI。 |
| フローに依存 | エンドユーザーのユーザー名、ID、メール。 |
| フローに依存 | エンドユーザーのパスワード。 |
Hub の OAuth2.0 エンドポイント
Hub サービスの場合、認証とトークンの OAuth2.0 エンドポイントは次のとおりです。
認証エンドポイント URL:
<Hub Service URL>/api/rest/oauth2/authトークンエンドポイント URL:
<Hub Service URL>/api/rest/oauth2/token
<Hub Service URL> は、ネットワーク環境で Hub サービス用に構成された URL です。例: 会社のサーバー www.mycompany.com と Hub サービスがあります。Hub は、www.mycompany.com/hub または hub.mycompany.com からアクセスできるように構成できます。その後、OAuth2.0 エンドポイントはそれぞれ次のようになります。
www.mycompany.com/hubの場合:https://www.mycompany.com/hub/api/rest/oauth2/authおよびhttps://www.mycompany.com/hub/api/rest/oauth2/tokenhub.mycompany.comの場合:https://hub.mycompany.com/api/rest/oauth2/authおよびhttps://hub.mycompany.com/api/rest/oauth2/token
ユーザー情報と詳細データを取得する必要がある場合は、OpenIDConnect エンドポイント(英語)の説明を確認してください。
クライアントをサービスとして登録する
承認を有効にするには、クライアントを Hub サービスとして登録する必要があります。管理 UI(英語) またはプログラムで実行できます。基本的には、/services URL で POST リクエストを送信し、それに応じて新しく作成されたサービスの資格情報を取得するだけです。
クライアントをサービスとして登録するためのサンプルスクリプト
次のサンプルスクリプトは、Hub サービスが https://hub.company.com にインストールされ、クライアント OAuth2.0 サービスが https://myservice.company.com にインストールされていることを考慮しています。
リクエスト
レスポンス
後で、サービスの id および secret を認証に使用できます。
Hub のサービスは、信頼できる場合と信頼できない場合があります。サービスが信頼されている場合、サービスはそれ自体に代わって Hub リソースサーバーにアクセスできます。また、ユーザーが信頼できるサービスから自分自身を承認するために送信された場合、ユーザーには追加の警告は表示されません。