はじめに
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を簡単に実行することが出来ます。こちらからダウンロードできます。
OAuthクライアントをcybozu.comに登録する
OAuthクライアントの使用の「OAuthクライアントをcybozu.comに登録する」部分を参考に設定していきます。
手順4の「リダイレクトエンドポイント」に、「https://www.getpostman.com/oauth2/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://www.getpostman.com/oauth2/callback
Auth URL:認可エンドポイント
Access Token URL:トークンエンドポイント
Client ID:クライアントID
Client Secret:クライアントシークレット
Scope(Aptional):k:app_record:read その他のスコープはこちら
State:クロスサイトリクエストフォージェリを防ぐためのランダムな文字列を指定します。
入力したら「Request Token」をクリックします。 - 「Request Token」をクリックすると、cybozu.comの認証画面が表示されるので、ログインします。
ログインすると、以下のような画面が表示されるので「許可」をクリックして認可要求を承認します。 - 認可要求を承認すると、Tokenが作成されます。
Postman上の「Token」が「アクセストークン」に該当します。
先ほど作成したTokenを選択し、「Use 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で確認したものになります。
記事に関するフィードバック
記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。