Screaming Loud

日々是精進

goaのjwtにおけるscopeに関して

goaのjwtやOAuthにおけるScopeってなんなんだろうと思ったので調べてみた

結論

claimに含まれているscope or scopesで判別

前提

Jwtは.で連結されたbase64encodeの文字列となっています。 3つのパートに分かれており、順番に ヘッダーペイロード署名 となっています。

JSON Web Token(JWT)の紹介とYahoo! JAPANにおけるJWTの活用 - Yahoo! JAPAN Tech Blog

実際にjwtでやってくるリクエストをjwt.ioでデコードすると、分かれて出力されます。 payloadと言われている2番目のパートのことをgoaではclaimと表現しています。

Scope

goaのSecurityではスコープという機能がありますが、そのScopeって何を持って判別しているか分かりませんでした。

セキュリティ · goa :: Design-first API Generation

そこでgoaのソースを読んでみたところ、payloadに含まれる scope もしくは scopes というキーを読んで、対応していれば認可されるという感じでした。

実際のソースでいうとここ

github.com

design部分のコードが以下の場合、

var jwt = JWTSecurity("jwt", func() {
    Scope("api:read", "Provides read access")
})

var _ = Resource("secured", func(){
    Security(jwt, func() { // Use JWT to auth requests to this endpoint
       Scope("api:read") // Enforce presence of "api" scope in JWT claims.
    })
})

Jwt tokenのpayloadに以下のような scope の値が入ってれば認可される

{
  "sub":"23343442",
  "name":"taro",
  "scope":"api:read"
}

「ガヴィアル」欧風ビーフカレー

今回食べたのは「ガヴィアル欧風ビーフカレー」です。

f:id:yuutookun:20180813215142j:plain

このカレーは口にした瞬間、あれコーン?と思うほどの甘さがやってきました。 そしてその後スパイシーな辛味が押し寄せてきます。

多分この甘さはパッケージに書いてある玉ねぎで作っているのでしょう。

なかなか美味しい一品でした。

MCC ガヴィアル 欧風ビーフカレー 200g

MCC ガヴィアル 欧風ビーフカレー 200g

DAX(Amazon DynamoDB Accelerator)を3分で理解する

概要

DynamoDBの前段キャシュ

write through

ライトスルーとは - IT用語辞典 Weblio辞書

詳細

  • DAXに書くと、Dynamoにそのまま書いてくれる
  • DAXを経由しないと、DAXから読んでも読めない
  • DAX経由で書くときにキャッシュが効くのは単一Keyのみ(GetItem)
  • Queryなどの範囲で問い合わせたら、クエリキャッシュとして乗るだけ。
  • DAX経由で書いてもクエリキャッシュは更新されない

docs.aws.amazon.com

課金体系

インスタンスごとの料金

料金 - Amazon DynamoDB(NoSQLデータベース)|AWS

セキュリティ

以下両方が反映される

  • IAMRoleでインスタンスアクセスの制限
  • セキュリティグループによるポート制限

(IAMだけでいいと思っていて少しハマった)

銀座ろくさん亭 料亭のまかないカレー

今日は「銀座ろくさん亭 料亭のまかないカレー」です。

袋のままレンジでチンをしても大丈夫なタイプでした。 f:id:yuutookun:20180801231649j:plain

今回のカレーは中辛という設定ですが、割と甘口で懐かしい感じのカレーでした。 個人的には普通のカレーって感じです。

名店タイトル系なのですが、袋のままチンできるカレーは標準的な味になってしまうのでしょうか。