はじめに
2018年11月版のアップデートで、OAuthクライアント機能が追加されました。
詳細は
OAuthクライアントの使用
を参照ください。
しかし、「OAuth対応されて何がうれしいの?」と何だかよくわかっていない方も多いのではないでしょうか?
この記事では、OAuth対応されたことによるメリットとOAuthを利用して認証する機能を使って実際にAPIを実行する例を紹介します。
メリット
パスワード認証を使用すると、cybozu.com製品のAPIを実行する際、cybozu.com製品のIDやパスワードの情報を連携先のサービスに渡さなければなりません。
この認証方法では、連携先のサービスにユーザーのもつすべての権限を付与することと同じ状態で、特定の権限の付与はできません。
また、ユーザがパスワードを変更するたび、認証に影響が出てしまいます。
今回OAuth対応されたことにより、OAuth 2.0というプロトコルを利用して、cybozu.com製品のIDやパスワードの情報を連携先のサービスに渡すことなく、特定の権限を連携先のサービスに付与できます。
また、ユーザーがパスワードを変更した際も、APIの認証に影響がないため、メンテナンスのコストがかかりません。
手順
今回は、PostmanからOAuthを利用して認証する機能を使って、 レコードの一括取得 APIを実行する例を紹介します。
Postman
とは、Web APIを開発するためのツールです。
Postmanを使用することで、Web APIの実行に必要な設定の作成・管理ができ、cybozu.com製品のREST APIを簡単に実行できます。
Postmanは、
こちら
からダウンロードできます。
OAuthクライアントをcybozu.comに登録する
OAuthクライアントを追加する
を参考に設定していきます。
STEP1の「リダイレクトエンドポイント」に、https://oauth.pstmn.io/v1/browser-callback
を入力します。
上記以外の設定は記事のとおりです。
OAuth認証フローをアプリケーションに実装する
PostmanからOAuth認証フローを実行します アプリ版のPostman を使用してください。
-
「Authorization」タブの「TYPE」に「OAuth 2.0」、「Add authorization data to」に「Request Headers」を選択し、「Get New Access Token」をクリックします。
-
ポップアップが表示されるので、必要な項目を入力します。
以下の情報を入力します。
公式ドキュメントは こちら- Token Name:任意の名前
- Grant Type:Authorization Code
- Callback URL:https://oauth.pstmn.io/v1/browser-callback
- Auth URL:認可エンドポイント
- Access Token URL:トークンエンドポイント
- Client ID:クライアントID
- Client Secret:クライアントシークレット
- Scope(Aptional):k:app_record:read その他のスコープは こちら
- State:クロスサイトリクエストフォージェリを防ぐためのランダムな文字列を指定します。
-
入力したら「Request Token」をクリックし、cybozu.comの認証画面が表示されるので、ログインします。
ログインすると、以下のような画面が表示されるので「許可」をクリックして認可要求を承認します。
-
認可要求を承認すると、Tokenが作成されます。
Postman上の「Token」が「アクセストークン」に該当します。
先ほど作成したTokenを選択し、「Use Token」をクリックします。
AuthorizationタブのAccess Tokenにアクセストークンが設定されます。
-
URLに「https://(サブドメイン名).cybozu.com/k/v1/records.json?app=(アプリID)」と入力し、「Send」をクリックします。
レコードの情報の取得ができました。
おわりに
OAuth対応されたことによるメリットと実際にAPIを実行する手順はご理解いただけたでしょうか?
OAuthを利用して認証する機能を使うことで、安全にcybozu.com製品のAPIを実行できます。
注意事項
Postmanで取得したアクセストークンの有効期間は10分です。
このTipsは、2018年11月版kintoneで動作を確認しています。