OAuth エンドポイント

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

概要

Use these endpoints to negotiate an OAuth session on behalf of a user. These endpoints are the client side calls necessary to interact with the Bitbucket server. You need an existing consumer key to make these calls. To obtain a consumer key, use the oauth resource on the users endpoint or use the Integrated Applications menu option on your account.

このセクションでは、次に示す完全な OAuth 認証フローを実現するために必要な方法を説明します。

自身でプロトコルを実装するのではなく、アプリケーション用の既存の OAuth ライブラリを使用することをおすすめします。OAuth 用に、再利用できる多数のライブラリがさまざまな言語で提供されています。これらのライブラリは公式の oauth.net の "code" セクションで見つけることができます。

新しいリクエスト トークンの POST

Bitbucket サービスから OAuth リクエスト トークンを取得します。アプリケーションはレスポンスの値を使用してユーザー認証を要求します。この方法は、OAuth 1.0a 認証フローのメソッド プロセス A を処理します。ヘッダーの次のパラメーターをこのリクエストに渡します。

パラメータ 必須 説明
oauth_consumer_key はい コンシューマー キー。この値は Bitbucket によって生成されます。
oauth_nonce はい

各リクエストで一意に生成されるランダム文字列。nonce により、サービス プロバイダはリクエストが新しいものであることを確認し、安全性の低いチャネル (HTTP など) を介してリクエストが行われる際のリプレイ攻撃を防ぐことができます。

oauth_signature はい コンシューマーによって定義される署名。それぞれの実装には独自の要件があるため、OAuth では特定の署名方法を義務付けてはいません。現在、Bitbucket は HMAC-SHA1 または PLAINTEXT 署名のみをサポートしています。
oauth_signature_method はい コンシューマーがリクエストへの署名に使用する署名方式。アプリケーションによって決定されます。
oauth_timestamp はい 1970 年 1 月 1 日 00:00:00 GMT からの秒数。タイムスタンプの値は正の整数で、以前のリクエストで使用したタイムスタンプ以上である必要があります。タイムスタンプが実際の時刻の前後数分以内でない場合、リクエストは拒否されることがあります。
oauth_callback はい

ユーザーのリダイレクト先となる URL は、アプリケーションでアカウントへのアクセスを許可されている必要があります。例:

http%3A%2F%coolapp.local%2Fauth.php,bitbucketclient%3A%2F%2Fcallback

POST https://bitbucket.org/!api/1.0/oauth/request_token

サービスへの呼び出しを行います。

https://bitbucket.org/!api/1.0/oauth/request_token?oauth_signature=FLH4XvS50eewsdV2ce98Nz0FFic=&oauth_consumer_key=ygzpJGqUpGn95nVw8s&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1346265284&oauth_nonce=QQo7CT&oauth_callback=https://www.myapplication.com

次のように返されます。

oauth_token=Z6eEdO8lOmk394WozF9oJyuAv899l4llqo7hhlSLik&oauth_token_secret=Jd79W4OQfb2oJTV0vzGzeXftVAwglnEJ9lumzYcl&oauth_callback_confirmed=true

ユーザー認証の GET

OAuth の request_token を使用してユーザー認証を要求します。ユーザーがログイン中の場合、呼び出しはユーザーのアカウントを使用してアクセス認証を行います。このリクエストには次のパラメーターを渡します。

パラメータ 必須 説明
oauth_token はい Bitbucket によって返されるリクエスト トークン。
GET https://bitbucket.org/!api/1.0/oauth/authenticate

Send the user to the oauth/authenticate step in a web browser, including an oauth_token parameter received from the request_token call:

https://bitbucket.org/!api/1.0/oauth/authenticate?oauth_token=Z6eEdO8MOmk394WozF5oKyuAv855l4Mlqo7hhlSLik

アクセス トークンの POST

コンシューマー アプリケーションに対し、1 つの OAuth アクセス トークンについて、OAuth リクエスト トークンの交換を許可します。このリクエストには次のパラメーターを渡します。

パラメータ 必須 説明
oauth_consumer_key はい コンシューマー キー。この値は Bitbucket によって生成されます。
oauth_token はい The oauth_token returned by the request_token call.
oauth_nonce はい

各リクエストで一意に生成されるランダム文字列。nonce により、サービス プロバイダはリクエストが新しいものであることを確認し、安全性の低いチャネル (HTTP など) を介してリクエストが行われる際のリプレイ攻撃を防ぐことができます。

oauth_signature はい コンシューマーによって定義される署名。それぞれの実装には独自の要件があるため、OAuth は特定の署名方法を義務付けてはいません。現在、Bitbucket は HMAC-SHA1 署名のみをサポートしています。
oauth_signature_method はい コンシューマーがリクエストへの署名に使用する署名方式。HMAC-SHA1 は Bitbucket でサポートされている方式です。
oauth_timestamp はい 1970 年 1 月 1 日 00:00:00 GMT からの秒数。タイムスタンプの値は正の整数で、以前のリクエストで使用したタイムスタンプ以上である必要があります。タイムスタンプが実際の時刻の前後 5 分以内でない場合、リクエストは拒否されることがあります。
oauth_verifier はい

この値は、ユーザーが Bitbucket で "権限を付与" をクリックした後でトークン認証ページがリダイレクトする URL 内のクエリ パラメーターとして返されます。例:

http://localhost?oauth_verifier=0352671347&oauth_token=QAx6g4npas3tdARQUY

POST https://bitbucket.org/!api/1.0/oauth/access_token

成功したリクエストへのレスポンスは次のようになります。

oauth_token_secret=aH9bzCKjKT5uXWueeENr9LKNh2jyyUVj&oauth_token=NqFQPmgsa4QQ9StW2R

 

 


最終更新日 2013 年 4 月 18 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.