OAuth コンシューマーの例
コンシューマーによる OAuth ライブラリの使用方法の例をご覧ください。
Bitbucket Cloud REST API integrations, and Atlassian Connect for Bitbucket add-ons, can use OAuth 2.0 to access resources in Bitbucket.
For obtaining access/bearer tokens, we support three of RFC-6749's grant flows, plus a custom Bitbucket flow for exchanging JWT tokens for access tokens. Note that Resource Owner Password Credentials Grant (4.3) is no longer supported. Check out our OAuth 2.0 developer documentation for more details.
このセクションでは、コンシューマーを登録して OAuth 2.0 をセットアップし、API 呼び出しを行うために必要な OAuth 2.0 の基本知識を説明します。
OAuth にはキーとシークレットが必要です。これらは合わせて OAuth コンシューマーと呼ばれます。コンシューマーは既存の任意のワークスペースで作成できます。コンシューマーを作成するには、以下を実行します。
画面上部のナビゲーション バーからアバター (自身のプロファイル) を選択します。
[Recent workspaces (最近使用したワークスペース)] で、コンシューマーを使用してアクセスするワークスペースを選択するか、[すべてのワークスペース] でワークスペースを見つけて開きます。
上部のナビゲーション バーにある [設定] (歯車アイコン ) を選択します。
[設定] ドロップダウン メニューから [ワークスペース設定] を選択します。
サイドバーの [アプリと機能] で [OAuth コンシューマー] を選択します。
[コンシューマーを追加] ボタンをクリックします。
システムは次の情報をリクエストします。
名前: コンシューマーの表示名。これはアカウント内で固有である必要があります。入力は必須です。
説明: 任意で、コンシューマーの実行内容の説明を追加します。
コールバック URL: OAuth 2.0 コンシューマーでは必須です。
リクエストの作成時に、コール バック URL をリクエストに含めることができます。
リクエストに URL を含める場合、コンシューマーで構成された URL と同じものを追加する必要があります。したがって、コンシューマーのコールバック URL が example.com/add-on の場合、リクエスト内の URL は example.com/add-on/function などのようにする必要があります。
リクエストに URL を含めない場合、リダイレクト先はコンシューマーのコールバック URL になります。
URL: ご愛用のアプリケーションに関する詳細情報を確認できる、任意の URL です。
[保存] をクリックします。キーとシークレットが生成されます。
コンシューマー名を選択して、コンシューマー用に生成されたキーとシークレット値を表示します。
For obtaining access/bearer tokens, we support three of RFC-6749's grant flows, plus a custom Bitbucket flow for exchanging JWT tokens for access tokens through the following URL's:
https://bitbucket.org/site/oauth2/authorizehttps://bitbucket.org/site/oauth2/access_tokenResource Owner Password Credentials Grant (4.3) is no longer supported. Check out our OAuth 2.0 developer documentation for more details.
本格的な 3-LO フロー。ブラウザで次の URL に遷移し、エンド ユーザーによる許可を求めます。
https://bitbucket.org/site/oauth2/authorize?client_id={client_id}&response_type=codeコールバックにはアクセス トークンと交換できる ?code={} クエリ パラメーターが含まれます。
$ curl -X POST -u "client_id:secret" \
https://bitbucket.org/site/oauth2/access_token \
-d grant_type=authorization_code -d code={code}データセンター側のバックエンド サポートがないブラウザベースの操作に役立ちます。この許可タイプではブラウザで次の URL に遷移してユーザーの許可を求めます。
https://bitbucket.org/site/oauth2/authorize?client_id={key}&response_type=tokenこれは、アクセス トークン (#access_token={token}&token_type=bearer) を含むフラグメントを持つコールバック URL にリダイレクトされます。ここで、ページの JavaScript により、URL からアクセス トークンを取得できます。
アクセス トークンを取得したら、RFC-6750 に従って次のいずれかの方法でリクエストでアクセス トークンを使用できます (以降は推奨順で記載)。
リクエスト ヘッダーで送信: Authorization: Bearer {access_token}
(application/x-www-form-urlencoded) の POST の本文に access_token={access_token} として含める
POST 以外のクエリ文字列に含める: ?access_token={access_token}
アクセス トークンの有効期限は 2 時間です。失効すると、401 レスポンスが返されます。
したがって、応答を許可するほとんどのアクセス トークンは、エンド ユーザーの操作なしで新しいアクセス トークンを生成するために使用できるリフレッシュ トークンを含みます。
$ curl -X POST -u "client_id:secret"
https://bitbucket.org/site/oauth2/access_token \
-d grant_type=refresh_token -d refresh_token={refresh_token}スコープはクライアント/コンシューマーのインスタンスで定義されます。現在のところ、Bitbucket Cloud では、個々の許可リクエストでオプションのスコープ パラメーターを使用することはできません。
スコープ パラメーターが指定されると、Bitbucket はクライアント / コンシューマーに存在しているスコープ以外のスコープがパラメーターに含まれていないことを確認します。追加のスコープがリクエストされている場合は失敗しますが、既存のスコープの一部への要求は生成されるアクセス トークンには影響しません。
For a list of available scopes and details of the access they grant, visit Atlassian Developer: Bitbucket Cloud Reference — Scopes.
アドオンは自身の SSH キーをアップロードしてクローンすることはできないため、HTTPS を介して安全にクローンするために、アクセス トークンを Basic HTTP 認証の資格情報として使用できます。
$ git clone https://x-token-auth:{access_token}@bitbucket.org/user/repo.gitユーザー名の代替としてリテラル文字列 x-token-auth が必要です。
このプロセスは GitHub と似ていますが、GitHub はユーザー名フィールドに実際のトークンを挿入する点がわずかに異なります。
上部のナビゲーション バーにある [設定] ( のアイコン) を選択します。
[設定] ドロップダウン メニューの [Bitbucket 管理] で [ワークスペース設定] を選択します。
左側のサイドバーにある [アプリと機能] から [OAuth コンシューマー] を選択します。
削除したいコンシューマー エントリーの右側にある を選択します。
[削除] を選択します。 これにより、そのコンシューマーにリンクされている既存のトークンもすべて削除されます。
If you need to delete a consumer because its credential has been compromised, follow the procedure outlined in App security incident management guidelines for Marketplace Partners.
この内容はお役に立ちましたか?