用いて1アプリケーション内で認証認可を完結させます。設定を追加しています。使用した時のユーザーの認証方法です。今回は簡単にするため、パスワード無しでメールアドレスのみを用いて認証を行います。生成して実行しておきます。できるところまで進めます。全てのコントローラーに共通の基本的なフィルタとメソッドを提供します。使用した認証と認可も行われます。このメソッドはリクエストされたアクセストークンに紐付いているリソースオーナー情報を使用してアプリケーションのユーザーオブジェクトへ変換することが期待されています。入っていることがあります。ここで変換したユーザーオブジェクトに対して後述するアクセスコントロールロジックが実行されます。アプリケーションと同じです。メソッドを定義します。メソッドを定義しています。ラップした形で定義してくれます。ページネーション機能などを提供しています。有効にすることで、リソースコレクションの総数や次のページへのリンクなどをレスポンスすることができます。サンプルアプリケーションでは実装しているので、ぜひご覧になってください。標準のやり方で作成します。アドレスを持つことにします。db:migrateモデルにリソースとしての定義を追加します。この定義を利用してリソースのシリアライゼーションやアクセスコントロールを実行します。リソースのエンコーディング・シリアライゼーションを提供するモジュールです。リソースが持つ属性を宣言します。用いて他のリソースへのリンクを宣言することもできます。詳しくはサンプルアプリケーションを参照してください。アクセスコントロール機能を提供するモジュールです。アクセスコントロールについては後述するので、ここではパブリックなリソースとして定義をしておきます。スコープによるアクセスコントロールについても後述するのでここではパブリックな定義にしておきます。実装したのでローカル環境で実行してみます。機能を利用してアクセストークンを取得します。作成して、アクセストークンを発行します。'grant_type=password&username=alice@example.com'{"access_token":"XXXX","token_type":"bearer","expires_in":7200,"scope":"public"}取得したアクセストークンを使って先ほど実装したユーザーリソースを取得します。実行するまでのセットアップを紹介します。よる認証認可をスタブするためのヘルパーを追加します。スコープの違いを作りだせます。定義を書き換えておきます。最小限のテストのみ実行するようにします。end+endテスト用データベースを作成してテスト実行してみます。failures無事自動テストのセットアップができました。導入することもおすすめです。リソースに対するアクセスコントロールや権限設定が重要になります。具体的には、ユーザーが認可したクライアントにのみプライベートなメッセージの読み書きを許可したり、あるいはブログ記事の編集は投稿者自身にのみ許可する、といった例があります。利用したアクセス権の設定をリソース毎に定義することと、リクエストコンテキストを使用してリソース操作に対する権限をリソース毎に定義することで、リソースの保護を実現できます。アクセスコントロールについては概念自体わかりにくいと思うので、実際に動くアプリケーションで試してみます。チェックアウトします。1b3e35463b87631d1e6acdd08e11ae09cab1b7ccここではユーザーリソースに対してリソース操作の権限設定をしてみます。他人のユーザー情報は閲覧できる、他人のユーザー情報は変更できない、という挙動に変更します。テストとしては次のように書けます。endテストが失敗することを確かめます。1)ユーザーリソースのパーミッション組み立てロジックを変更します。リクエストにおけるリソースオーナーが束縛されます。クラスのインスタンスです。endテストを実行してみます。resource他人のユーザー情報は更新できないようにできました。他にもブログの下書き投稿は投稿者しか閲覧できない、ユーザーの名前の変更は特定のスコープがないと変更できない、など様々な権限設定ができます。ここでは紹介しませんでしたが、アクセス権の設定やいくつかの拡張機能についてはサンプルアプリケーションとドキュメントを参照してください。テストによっては構造を検査するだけでなく、実際のレスポンスされた値を検査します。ほうが都合が良いです。レスポンスされるので、開発がしやすくなります。フォーマッタを利用してエラー情報をダンプしてくれます。ドキュメントを提供しドキュメントを最新の状態にアップデートしておくことで開発中のコミュニケーションを効率化できます。組み合わせることでリクエストパラメータについてもドキュメント化できます。上でレンダーされたドキュメントを参照してもらうこともできます。開発についてご紹介しました。コントローラーを作る、リソースを定義する、アクセスコントロールを定義する、このステップを繰り返すことでアプリケーションを開発することができます。使用したアプリケーション実装の参考になれば幸いです。サービス開発を加速する会員事業部サービス開発グループ長の村田です。使ったセキュリティログ検索基盤の構築サービス特性にあった検索システムの設計戦略クックパッド採用説明会「クックパッドはサービスの作り手を採用したいんです。/*}*/スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。