LoginSignup
2
5

More than 5 years have passed since last update.

PostgRESTをお題にJSON Web Token(JWT)を学ぶ。 ①概要

Last updated at Posted at 2017-09-16

[1] PostgRESTとは?

何者?

githubのreadmeにある、以下のバナーを見れば、意味あいは一発だろう。
ゴロがいいね。実装はhaskell、githubスター数は9500以上。

出典: https://github.com/begriffs/postgrest

PostgRESTの使い所

ドキュメントを読んでいくと使い所が見えてきそう。
以下の出典: https://postgrest.com/en/v4.3/intro.html

開発動機

Using PostgREST is an alternative to manual CRUD programming. Custom API servers suffer problems. Writing business logic often duplicates, ignores or hobbles database structure. Object-relational mapping is a leaky abstraction leading to slow imperative code. The PostgREST philosophy establishes a single declarative source of truth: the data itself.

文中のhobbleとは ぶかっこうに歩くとかよちよち歩くといった意味合いらしい。(ごく少数の強者を除けば)、webへのデータベース公開をスクラッチからやると、なんだかさえないやっつけ仕事になっちゃうよね、そういうやっつけ感をPostgRESTは排除したいといったところかな。 
はい、たしかに、ワタクシも残念なやっつけ仕事をしちゃってます。

One Thing Well(一事をしっかりと行う)

PostgREST has a focused scope. It works well with other tools like Nginx. This forces you to cleanly separate the data-centric CRUD operations from other concerns. Use a collection of sharp tools rather than building a big ball of mud.

なかなかいいね。Nginxなどと組み合わせて使うシャープなツールにPostgRESTはなりますよ、と(以下のような図式)。

Nginxなどのwebサーバーを介してアクセスするクライアント側は自前でRESTで書くか、ライブラリを使うことになる。詳しくはエコシステムのところに書いてある。JS向けのライブラリが多い。あとhaskell製なこともあってかelmのライブラリもある。これらは実装例もいくつかある模様。

In production

In productionのところが興味深く、有償のツールでも結構採用されていて、使い方をイメージする参考になりそう。PostgRESTなのにredisのweb管理ツールにも使われているとのこと。ポスグレをユーザー認証などに使っているのかな。

[2] JSON Web Token(JWT)によるセキュリティ担保

PostgRESTは 、JWTを用いたロールベースのセキュリティモデルを採用している。


出典 本家サイト 「Overview of Role System」

このあたりは、webにデータベースを公開するにあたって、もっとも気になるところの1つだ。
はたして、以下の図式がいつでも成り立ってくれるのか?

出典 同上

JSON Web Token(JWT)とは?

名前の通り、署名付きJSONをベースとしたセキュリティトークン。概要は、
JSON Web Token の効用あたりを参考にして欲しい。ここでは、PostgREST経由でJSON Web Tokenを用いて、webにデータベースを公開してみた上で、JWTの考察をしたい。

次回

デプロイ先

素に近いUbuntu server上で速攻PostgreSQLが扱えるということで、Cluod9無償版上にPostgRESTを導入したい。主要プラットホーム向けのバイナリリリースがあるので、haskellの有無に関わらず、容易に導入可能なはず。

その後は

 こちらのブログに教えていただいたのだけれど、Rails製のオープンソースクラウドファンディングツールcatarseがPostgRESTを使っているので、こちらを試してみたい。ただし、Cluod9の無償版では容量的に厳しいかもなので、そのときに考えることとする。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5