SDKを使用したOAuth 2.0
SDKを使用したOAuth 2.0
Box SDKには、クライアント側OAuth 2.0のサポートが組み込まれています。
このプロセスでは、ユーザーはブラウザでBoxウェブアプリにリダイレクトされます。そこで、ユーザーはログインし、アプリケーションによる自分のデータへのアクセスを承認すると、アプリケーションのredirect_url
に再度リダイレクトされます。この最後の手順では、ユーザーがアクセス可能な場所にあるウェブサーバー上でアプリケーションが実行されている必要があります。
概要
OAuth 2.0フローを完了するには、以下の手順を完了する必要があります。
- Box SDKを構成する
- ユーザーをBoxウェブサイトにリダイレクトする
- ユーザーがアプリケーションにアクセス権限を付与する
- 承認コードをアクセストークンと交換する
このフローが終了すると、アプリケーションには、このユーザーの代わりにAPIコールを実行するために使用できるアクセストークンが用意されます。
パラメータ
パラメータ | 説明 |
---|---|
CLIENT_ID | アプリケーションのクライアントIDまたはAPIキー |
CLIENT_SECRET | アプリケーションのクライアントシークレットまたはAPIシークレット |
REDIRECT_URI | ユーザーがアプリケーションを承認した後に送信されるアプリケーションのリダイレクトURL。これは開発者コンソールで構成できます。 |
1. SDKを構成する
最初の手順として、選択したSDKを使用して環境が準備されていることを確認します。
var redirectUrl = "[REDIRECT_URI]";
var config = new BoxConfig("[CLIENT_ID]", "[CLIENT_SECRET]", new Uri(redirectUrl));
var sdk = new BoxClient(config);
import com.box.sdk.BoxAPIConnection;
String authorizationUrl = "https://account.box.com/api/oauth2/authorize?client_id=[CLIENT_ID]&response_type=code";
from boxsdk import OAuth2, Client
auth = OAuth2(
client_id='[CLIENT_ID]',
client_secret='[CLIENT_SECRET]'
)
var BoxSDK = require("box-node-sdk");
var sdk = new BoxSDK({
clientID: "[CLIENT_ID]",
clientSecret: "[CLIENT_SECRET]",
});
ご利用の環境に合わせたSDKのインストールの詳細を確認する
2. ユーザーをリダイレクトする
次に、承認URLにユーザーをリダイレクトします。ほとんどのSDKでは、SDKクライアントの承認URLを 取得する方法をサポートしています。
var authorizationUrl = "https://account.box.com/api/oauth2/authorize?client_id=[CLIENT_ID]&response_type=code";
// redirectTo(authorizationUrl);
String authorizationUrl = "https://account.box.com/api/oauth2/authorize?client_id=[CLIENT_ID]&response_type=code";
// response.redirect(authorizationUrl);
auth_url, csrf_token = auth.get_authorization_url('[REDIRECT_URL]')
// redirect(auth_url, code=302)
var authorize_url = sdk.getAuthorizeURL({
response_type: "code",
});
// res.redirect(authorize_url)
承認URLは、以下のように手動でも作成できます。
https://account.box.com/api/oauth2/authorize?client_id=[CLIENT_ID]&redirect_uri=[REDIRECT_URI]&response_type=code
3. ユーザーがアプリケーションにアクセス権限を付与する
ユーザーはBoxウェブアプリにリダイレクトされると、ログインする必要があります。ログイン後、ユーザーにはアプリケーションを承認するための画面が表示されます。
ユーザーがこのリクエストを承認し、ボタンをクリックすると、ブラウザは、開発者コンソールで構成されたとおりにアプリケーションのリダイレクトURLにリダイレクトされます。
4. コードを交換する
ユーザーは、有効期間の短い承認コードを含むクエリパラメータが指定されたアプリケーションのリダイレクトURLにリダイレクトされます。
https://your.domain.com/path?code=1234567
このコードはアクセストークンではなく、有効期間はほんの数秒です。SDKを使用すると、このコードを実際のアクセストークンと交換できます。
var session = await sdk.Auth.AuthenticateAsync("[CODE]");
var client = new BoxClient(config, session);
BoxAPIConnection client = new BoxAPIConnection(
"[CLIENT_ID]",
"[CLIENT_SECRET]",
"[CODE]"
);
auth.authenticate('[CODE]')
client = Client(auth)
var code = "...";
sdk.getTokensAuthorizationCodeGrant("[CODE]", null, function (err, tokenInfo) {
var client = sdk.getPersistentClient(tokenInfo);
});
このフローが終了すると、アプリケーションには、このユーザーの代わりにAPIコールを実行するために使用できるアクセストークンが用意されます。
SDKとOAuth 2.0の使用
各SDKのOAuth 2.0認証の詳細については、以下を参照してください。