どうして認可コードフローのトークンエンドポイントは redirect_uri を要求するのか

OIDC で redirect_uri の登録と完全一致が必須だという前提で物事を考えていたため、どういう攻撃が成立するのかわからず混乱した。 微妙に確信が持てないので間違ってたらおしえてください。

認可コードフローおさらい

  1. 認可リクエストを送る
    • redirect_uri
    • client_id
    • その他
  2. コールバックで認可コードが redirect_uri に送られてくる
  3. コールバックを受け取ったクライアントはトークンエンドポイントに認可コードを送って、アクセストークンを得る
    • クライアントの認証がある
    • このときに認可リクエストで送信した redirect_uri も送る これなんで必要なのかの話
      • 完全一致してる必要がある

RFC での言及

10.6. 認可コードリダイレクトURIの操作より引用。

認可要求に認可コードグラントタイプを用いるとき, クライアントは redirect_uri パラメーターによりリダイレクトURIを指定できる. 攻撃者がリダイレクトURIの値を操作可能であるとき, 認可サーバーによってリソースオーナーのユーザーエージェントを攻撃者の管理下にあるURIに認可コードを含んだ状態でリダイレクトさせることができる.

攻撃者は, 正しいクライアントにおいてアカウントを作成し, 認可フローを開始することができる. 攻撃者のユーザーエージェントがアクセス許可のために認可サーバーに送られたとき, 攻撃者は正当なクライアントにより提供された認可URIを取得し, クライアントのリダイレクトURIを攻撃者の管理下にあるURIに交換する. 攻撃者はその後, 正当なクライアントに向けた操作された認可アクセスリンクをたどるよう被害者を騙す.

認可サーバーにおいて, 被害者は正当で信頼できるクライアントによる正常で有効なリクエストを促され, そのリクエストを認可する. 被害者はその後, 認可コードとともに攻撃者の管理下にあるエンドポイントにリダイレクトされる. 攻撃者は, クライアントにより提供されたオリジナルのリダイレクトURIを用いて, 認可コードを送ることにより認可フローを完了する. クライアントは認可コードとアクセストークンを交換し, それを攻撃者のクライアントのアカウントと紐づけることで, 被害者により (クライアント経由で) 認可された保護されたリソースへのアクセス権を獲得できる.

このような攻撃を防ぐため, 認可サーバーは認可コードの取得に用いたリダイレクトURIと, 認可コードとアクセストークンの交換時に提供されたリダイレクトURIが同一であることを確認しなければならない (MUST). 認可サーバーはパブリッククライアントに対してリダイレクトURIの登録を要求しなければならず (MUST), コンフィデンシャルクライアントに対してもリダイレクトURIの登録を要求すべきである (SHOULD). リダイレクトURIがリクエストにより提供されたとき, 認可サーバーは登録された値を用いてそれを検証しければならない (MUST).

なんとなく理解した内容

認可リクエストの redirect_uri に攻撃者が管理しているサイトの URI を指定されたときに、認可コードが攻撃者のサイトに飛ぶ。 その認可コードを正規のクライアントにコールバックとして送信すると他人のアクセストークンを保持したクライアントを操作できる。

詳細

認可リクエストに以下のようなパラメーターを指定して、被害者に踏ませる。

client_id=攻撃対象のクライアント&redirect_uri=https://攻撃者のドメイン.example.com

認可コードが https://攻撃者のドメイン.example.com に送られるので、攻撃者は被害者が認可を行った認可コードを手に入れる。

攻撃者はこの認可コードをクライアントの本来の redirect_uri に送信する。 このときトークンエンドポイントが redirect_uri の検証を行っていない場合、クライアントが認可コードとトークンの引き換えに成功する。 認可を行ったのは攻撃者ではなく被害者なので、トークンは被害者に紐付いている。

この状態で攻撃者がリソースサーバーに対して自らのプロフィールを取得する API を利用するような操作を行うと、プロフィールは被害者のものとなり、攻撃者は被害者の個人情報を取得することが出来る。

redirect_uri の検証を行った場合、認可レスポンスを受け取った攻撃対象のクライアントは、トークンエンドポイントに https://攻撃者のドメイン.example.com ではなく https://攻撃対象のドメイン.example.com を送信する。(そもそも攻撃対象のクライアントは攻撃者のredirect_uri を知らない)

こうなると認可リクエストで送信した redirect_uriトークンエンドポイントに送った redirect_uri が別の値になるので、攻撃が失敗する。 ようするに認可リクエストを行ったときに指定した redirect_uri にちゃんとコールバックで認可コードが渡って、その redirect_uri のクライアント自身がトークンリクエストをしているよね?というところが担保できる。

シーケンス

攻撃者が被害者の認可コードを取得

f:id:inabajunmr:20201009233637p:plain

認可リクエストの client_id は正規のクライアントとなる。

攻撃者が被害者に紐付いたアクセストークンを利用

f:id:inabajunmr:20201009233646p:plain

認可コードをアクセストークンに引き換えには

  • クライアント認証
  • 認可コードを発行したクライアントからのトークンリクエス

が必要だが、認可リクエストの client_id が正規のクライアントのものなのでどちらの条件も満たしている。

redirect_uri の検証を行う場合

f:id:inabajunmr:20201009234043p:plain

トークンエンドポイントで redirect_uri の検証をしている場合、認可コードを送信した redirect_uriトークンリクエストを送ってきたクライアントが想定している redirect_uri が異なるので、攻撃を防ぐことが出来る。

RFC6749 ではコンフィデンシャルクライアントの redirect_uri の事前登録を MUSTとしていない

3.1.2.2. 登録要件より引用。

認可サーバーは, 以下のようなクライアントに対してリダイレクトエンドポイントの事前登録を要求すること (MUST): パブリッククライアント. インプリシットグラントタイプを利用するコンフィデンシャルクライアント. 認可サーバーは, すべてのクライアントに対して, 認可エンドポイントアクセス前にリダイレクトURIの事前登録を要求すべきである (SHOULD).

この攻撃は認可コードグラントのみを使うコンフィデンシャルクライアントに対しても有効だが、その場合の redirect_uri の事前登録は MUST ではない。 また、マッチングの条件については以下の記述がある。

認可サーバーは, クライアントに (一部分ではなく) 完全なリダイレクトURIの登録を要求するべきである (SHOULD). (クライアントはリクエスト毎のカスタマイズするために state リクエストパラメーターを使用できる (MAY)) 完全なリダイレクトURIの登録を要求することができない場合, 認可サーバーはURIスキーム, オーソリティー, パス (認可要求の時, リダイレクトURIのクエリーコンポーネントのみ動的に変更を許可する) の登録を要求するべきである (SHOULD).

この SHOULD を守っていない場合、パスに指定した値によってオープンリダイレクタが可能になっていると、redirect_uri を事前登録していてもこの攻撃は成立する気がする。

参考

シーケンス書いてから見直したらまるっきり同じ話だった。

OAuth 2.0 の code は漏れても大丈夫ってホント!? - OAuth.jp

ウェブ・セキュリティ基礎試験(徳丸基礎試験)を受けてきた

開発マネジメントができない人です

f:id:inabajunmr:20201003164822p:plain

試験結果自体は割とどうでも良い感じ

試験予約でつまづく

この試験は受験そのものの難易度が若干高かった 受験の流れは以下

  1. オデッセイID登録
  2. 試験センターを探す
  3. 試験センターのサイトから試験を予約
  4. 試験センターに行って受験

なんだが、3でいくつかのサイトを見た結果、予約時にこの試験を選択できないという問題がおきた

仕方がないので試験センターに電話したところ、そんな試験あるの?みたいな感じであった

それで試験センターの人が試験を発見し、明日までに予約サイト改修しときまーすみたいな感じで通話が終了した

明日まではなかなかすごいなと思った

試験いきなり増えるんですよねー・・・みたいなことを言っていた

試験について

10/4に試験だと思ってたら10/3に試験だったことに試験30分前くらいに気づいて焦った

あとはなんというか、試験の問題はウェブ・セキュリティ基礎試験ではあるものの、ちょくちょくこれはセキュリティの試験じゃなくて徳丸本の試験だなって感じの問題がでた

個人的にはセキュリティに詳しくなりたい、セキュリティに一定以上の知識があるかどうかを試したい、というモチベーションで試験を受けたいわけで、徳丸本に詳しくなりたいわけじゃないので、うーんという感じ

まあでも公式に(徳丸基礎試験)って書いてあるくらいなので、そもそも徳丸本の知識を問う試験なのかもしれん

でも徳丸本自体はいい本だと思います

試験に受かりたければ徳丸本ざっと読めばだいたいなんとかなりそうというか、ウェブアプリの人でXSSやらCSRFやら当たり前に説明できる感じの人ならだいたい受かると思う

2020年7月、8月にやったこと

忙しかったのであまり何もしていない あと記録が遅れすぎて何してたか忘れた 筋トレとかをしていた

失敗から学ぶRDBの正しい歩き方

同僚に借りて読んだ 同僚に借りると汚したりするリスクを恐れてすぐ読むというメリットがあることがわかった あーそうだよね〜みたいなことを考えながら読んでいた気がする

マイクロサービスパターン

だらだらと1/3くらいよんだ saga完全に理解した

スッキリわかる 日商簿記3級

9割位よんでいきなりやる気がどっかいった 試算の仕方に興味が持てない PLとかBSはいまだに読めない 何が書いてあるのかはなんとなくわかるようになったけど何も読み取れない

その他

英文解釈教室をだらだら読んだり レアジョブは17回やった だれているのでlang-8復活した

あとはなんかECS(EC2)で相互に通信するウェブアプリをデプロイしてみたりなんだりしていた記録があるが全く記憶にない Fargateでやる、というメモが残されている

あと

openid.connpass.com

をみたりしていた

あと徳丸試験受けてみよっかなって思ったら試験申し込みの難易度がめちゃくちゃ高いのでびっくりした

あとブログかいた

dev.classmethod.jp

なんかシェアがのびた

あとleetcodeをなんとなくはじめて週1問くらいのペースでゆるゆるといている 絶対これ通らんだろって感じのコードが結構とおってしまう AOJよりだいぶゆるい気がする AOJはGoでやってたけどつらいのでKotlinにした だいぶ楽

あとなんかまとめてた 技術書展で本がでていたので読むかもしれない

2020: Self-Sovereign Identity with Self-Issued OpenID Providerを見ながら書いたメモ · GitHub

あと OAuth 2.0 の学習パスをまとめてみるかとおもってまとめはじめたがかなりざっくりしたところで満足してしまった

もし私が現時点で OAuth 2.0、OpenID Connect についての知識が無だったらおすすめしたい学習用資料一覧 · GitHub

社内でOAuth 2.0の勉強会やろうとおもって同人誌と商用版ながめてたら中身一緒だった どっちも読んでたのに当時気づかなかったのでびっくりした

これからやること

  • AWS入門する
    • ECS
  • Webエンジニアが知っておきたいインフラの基
  • 入門監視
  • クリーンアーキテクチャ
  • Javaパフォーマンス
  • 実践ハイパフォーマンスMySQL 第3版
  • プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
    • 停滞気味
  • Linuxの仕組み
  • Goならわかるシステムプログラミング
  • 英語
  • 中国語
    • Toeic900超えるまで止める予定
  • ここ最近ほとんど業務でプログラミングをしなくなって、調整とかレビューとかばっかしてるがかなり雰囲気でやってるので、マネジメント系の本を読もうとしている
    • なにがいいのかよくわからん
  • Effective Go - The Go Programming Language
  • パタヘネ
  • OAuth2.0のクライアント書く
  • OAuth 2.0/OIDC関連仕様全部読む
  • WebAuthnのドキュメント読む
  • マイクロサービスパターン

example.comのパスにルイズコピペを指定すると500が返ってくる

Qiitadon、文字数制限でルイズコピペが貼れない、みたいな話をみて、URLだとめっちゃ長いテキストが貼れるのでためした

結果、貼れた

で、なんとなくリンクを踏んだら500が返ってきた

http://example.com/%E3%83%AB%E3%82%A4%E3%82%BA%EF%BC%81%E3%83%AB%E3%82%A4%E3%82%BA%EF%BC%81%E3%83%AB%E3%82%A4%E3%82%BA%EF%BC%81%E3%83%AB%E3%82%A4%E3%82%BA%E3%81%85%E3%81%85%E3%81%86%E3%81%86%E3%81%86%E3%82%8F%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%82%93%EF%BC%81%EF%BC%81%EF%BC%81%E3%81%82%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E2%80%A6%E3%81%82%E3%81%82%E2%80%A6%E3%81%82%E3%81%A3%E3%81%82%E3%81%A3%E3%83%BC%EF%BC%81%E3%81%82%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%EF%BC%81%EF%BC%81%EF%BC%81%E3%83%AB%E3%82%A4%E3%82%BA%E3%83%AB%E3%82%A4%E3%82%BA%E3%83%AB%E3%82%A4%E3%82%BA%E3%81%85%E3%81%86%E3%81%86%E3%81%81%E3%82%8F%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%81%82%EF%BC%81%EF%BC%81%EF%BC%81%E3%81%82%E3%81%81%E3%82%AF%E3%83%B3%E3%82%AB%E3%82%AF%E3%83%B3%E3%82%AB%EF%BC%81%E3%82%AF%E3%83%B3%E3%82%AB%E3%82%AF%E3%83%B3%E3%82%AB%EF%BC%81%E3%82%B9%E3%83%BC%E3%83%8F%E3%83%BC%E3%82%B9%E3%83%BC%E3%83%8F%E3%83%BC%EF%BC%81%E3%82%B9%E3%83%BC%E3%83%8F%E3%83%BC%E3%82%B9%E3%83%BC%E3%83%8F%E3%83%BC%EF%BC%81%E3%81%84%E3%81%84%E5%8C%82%E3%81%84%E3%81%A0%E3%81%AA%E3%81%81%E2%80%A6%E3%81%8F%E3%82%93%E3%81%8F%E3%82%93%E3%82%93%E3%81%AF%E3%81%81%E3%81%A3%EF%BC%81%E3%83%AB%E3%82%A4%E3%82%BA%E3%83%BB%E3%83%95%E3%83%A9%E3%83%B3%E3%82%BD%E3%83%AF%E3%83%BC%E3%82%BA%E3%81%9F%E3%82%93%E3%81%AE%E6%A1%83%E8%89%B2%E3%83%96%E3%83%AD%E3%83%B3%E3%83%89%E3%81%AE%E9%AB%AA%E3%82%92%E3%82%AF%E3%83%B3%E3%82%AB%E3%82%AF%E3%83%B3%E3%82%AB%E3%81%97%E3%81%9F%E3%81%84%E3%81%8A%EF%BC%81%E3%82%AF%E3%83%B3%E3%82%AB%E3%82%AF%E3%83%B3%E3%82%AB%EF%BC%81%E3%81%82%E3%81%81%E3%81%82%EF%BC%81%EF%BC%81%E9%96%93%E9%81%95%E3%81%88%E3%81%9F%EF%BC%81%E3%83%A2%E3%83%95%E3%83%A2%E3%83%95%E3%81%97%E3%81%9F%E3%81%84%E3%81%8A%EF%BC%81%E3%83%A2%E3%83%95%E3%83%A2%E3%83%95%EF%BC%81%E3%83%A2%E3%83%95%E3%83%A2%E3%83%95%EF%BC%81%E9%AB%AA%E9%AB%AA%E3%83%A2%E3%83%95%E3%83%A2%E3%83%95%EF%BC%81%E3%82%AB%E3%83%AA%E3%82%AB%E3%83%AA%E3%83%A2%E3%83%95%E3%83%A2%E3%83%95%E2%80%A6%E3%81%8D%E3%82%85%E3%82%93%E3%81%8D%E3%82%85%E3%82%93%E3%81%8D%E3%82%85%E3%81%84%EF%BC%81%EF%BC%81%E5%B0%8F%E8%AA%AC12%E5%B7%BB%E3%81%AE%E3%83%AB%E3%82%A4%E3%82%BA%E3%81%9F%E3%82%93%E3%81%8B%E3%82%8F%E3%81%84%E3%81%8B%E3%81%A3%E3%81%9F%E3%82%88%E3%81%85%EF%BC%81%EF%BC%81%E3%81%82%E3%81%81%E3%81%81%E3%81%82%E3%81%82%E2%80%A6%E3%81%82%E3%81%82%E3%81%82%E2%80%A6%E3%81%82%E3%81%A3%E3%81%82%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%81%82%EF%BC%81%EF%BC%81%E3%81%B5%E3%81%81%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%82%93%E3%82%93%E3%81%A3%EF%BC%81%EF%BC%81%E3%82%A2%E3%83%8B%E3%83%A12%E6%9C%9F%E6%94%BE%E9%80%81%E3%81%95%E3%82%8C%E3%81%A6%E8%89%AF%E3%81%8B%E3%81%A3%E3%81%9F%E3%81%AD%E3%83%AB%E3%82%A4%E3%82%BA%E3%81%9F%E3%82%93%EF%BC%81%E3%81%82%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%EF%BC%81%E3%81%8B%E3%82%8F%E3%81%84%E3%81%84%EF%BC%81%E3%83%AB%E3%82%A4%E3%82%BA%E3%81%9F%E3%82%93%EF%BC%81%E3%81%8B%E3%82%8F%E3%81%84%E3%81%84%EF%BC%81%E3%81%82%E3%81%A3%E3%81%82%E3%81%82%E3%81%81%E3%81%82%E3%81%82%EF%BC%81%E3%82%B3%E3%83%9F%E3%83%83%E3%82%AF2%E5%B7%BB%E3%82%82%E7%99%BA%E5%A3%B2%E3%81%95%E3%82%8C%E3%81%A6%E5%AC%89%E3%81%97%E2%80%A6%E3%81%84%E3%82%84%E3%81%81%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%EF%BC%81%EF%BC%81%EF%BC%81%E3%81%AB%E3%82%83%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%82%93%EF%BC%81%EF%BC%81%E3%81%8E%E3%82%83%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%EF%BC%81%EF%BC%81%E3%81%90%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%E3%81%82%EF%BC%81%EF%BC%81%EF%BC%81%E3%82%B3%E3%83%9F%E3%83%83%E3%82%AF%E3%81%AA%E3%82%93%E3%81%A6%E7%8F%BE%E5%AE%9F%E3%81%98%E3%82%83%E3%81%AA%E3%81%84%EF%BC%81%EF%BC%81%EF%BC%81%EF%BC%81%E3%81%82%E2%80%A6%E5%B0%8F%E8%AA%AC%E3%82%82%E3%82%A2%E3%83%8B%E3%83%A1%E3%82%82%E3%82%88%E3%81%8F%E8%80%83%E3%81%88%E3%81%9F%E3%82%89%E2%80%A6%E3%83%AB

パスが256を超えると500になるっぽい http://example.com/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

はい

Slack のスレッドは問題が解決済みかどうかを隠してしまう

Slack 上で何かを質問して、それに対して誰かがスレッドで返答した場合、以下のようになります。

f:id:inabajunmr:20200711020607p:plain

この質問は解決しているのでしょうか?この時点では解決しているかどうかはわかりません。 この時点でわかるのは、誰かがレスポンスしている、ということだけです。

このスレッドを見かけた私は、スレッドを開いて中を見るべきでしょうか?解決していなければ助けを出したいし、そうでなければ得に何も得られない内容かもしれません。 今回はスレッドを開いてみます。

f:id:inabajunmr:20200711020643p:plain:w300

解決していませんでした。 今回私はスレッドを開きましたが、ある程度レスポンスがついているスレッドをスルーすることはないでしょうか。 私は誰かがリアクションしてるから一旦いいか、でスルーすることがあります。 私に関わらず、ある程度レスポンスのついているスレッドは通常のスレッドでない投稿と比べてスルーされる可能性が高いのでは、と思います。 もしくは、スレッドにコメントが100個ついている場合、ざっと見て誰かが何かしてるからとりあえずいいや、みたいな判断をすることはそれなりにある気がしています。

問題は、「解決していないのに参加者全員が諦めてしまったスレッド」です。 スレッドの参加者は問題を解決できません。誰も解決方法を知らないからです。 答えを知っている人は、誰かが既に対応している、もしくは既に解決済み扱いとして、スレッドをスルーしてしまいました。

f:id:inabajunmr:20200711020749p:plain:w400

スレッドは他の書き込みで流れてしまい、解決済みっぽい雰囲気が増して、最終的に誰の視界にも入らなくなります。

問題は解決しないまま話が終了してしまいました。 悲しいですね。私からは以上です。

2020年5月、6月にやったこと

握力が70超えた

Go言語でつくるインタプリタ

全部終わった おもしろかった おもしろかった以上の感想はあんまりない

JSONのパーサー書いた

github.com

Go言語でつくるインタプリタ読んでてJSONのパーサーくらいならノリでかけそうだなと思って書いた なんとなくkotlinで書いたけどいろいろ楽だった Kotlin書いてるとJavaのコードを読めなくなるという問題がある

lexerのこの辺がだいぶあれだけど動いたので満足してしまった

なんかよくわからないWebアプリ書いた

github.com

デプロイ何もわからんのでECSになんかデプロイして遊んだりしようと思ったけどとりあえずデプロイ対象を書くか、になってしまったので書いてた いくつかWebアプリ実行してHTTPリクエストにHTTPリクエストの連携の経路を指定するとそれにあわせてWebアプリを呼び分けてくれるみたいなやつ

これを複数デプロイしてマイクロサービス間の通信したりxrayで連携してる様を眺めて遊んだりしようとしてた いまいちやる気がでず単体でデプロイして止まっている これははやくやらないとまずい 監視とかもこれにいろいろ入れて遊ぼうとしているので

ブログ書いた

dev.classmethod.jp

Javadocの例外のやつ 割と極論感あるけど個人的にはこの方向で割とうまくいっている認識がある

ハローキティのかんたん簿記 超入門

会社で勧められたので読んだ 結構わかりやすかった気がする ただ簿記の初心者本あるあるだと思うんだけど仕訳の話ばっかり

トコトンやさしい小売・流通の本

あんまり記憶がない

マンガでわかる! はじめての簿記

kindle unlimitedで読めたのであんまり期待しないで読んだらわかりやすかった  言うほど漫画では学べないけど これ系の本、全体的に損益計算書とか貸借対照表のがあんまりないのはなぜなのか 簿記の資格の初歩的なやつが仕訳に偏ってるからだと思うんだけども

いちばんやさしいブロックチェーンの教本 人気講師が教えるビットコインを支える仕組み (「いちばんやさしい教本」シリーズ)

雑に読むには割と重たい本だった ローカルで改ざん出来ない署名ができるデータの集合がブロックチェーンなんだなーくらいには理解したけどそれ以上は仕組みについての解説を軸にもうちょっと真面目に学ぶ必要がありそう ビジネス的に何に使えるの?的な話と仕組みの話がまとめて書いてあるのでそういうのを求めてる人にはよさそう

その他

ELBとかECSのガイド読んだりしてた気がする あとDockerのガイドも読んだ気がする あとはマイクロサービスパターンとか簿記の本他のやつとか英文解釈教室とか あとエリックエヴァンスのDDDもちょくちょく読んでる いろいろちょっとずつ読みすぎ感がある レアジョブは28回やってた

あとはこの辺の勉強会ひたすら見てた このへんは大変におもしろい https://authlete.connpass.com/

これからやること

  • AWS入門する
    • ECS
  • Webエンジニアが知っておきたいインフラの基
  • 入門監視
  • クリーンアーキテクチャ
  • Javaパフォーマンス
  • 実践ハイパフォーマンスMySQL 第3版
  • プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
    • 停滞気味
  • Linuxの仕組み
  • Goならわかるシステムプログラミング
  • 英語
  • 中国語
    • Toeic900超えるまで止める予定
  • ここ最近ほとんど業務でプログラミングをしなくなって、調整とかレビューとかばっかしてるがかなり雰囲気でやってるので、マネジメント系の本を読もうとしている
    • なにがいいのかよくわからん
  • Effective Go - The Go Programming Language
  • パタヘネ
  • OAuth2.0のクライアント書く
  • OAuth 2.0/OIDC関連仕様全部読む
  • WebAuthnのドキュメント読む
  • マイクロサービスパターン

2020年3月、4月にやったこと

だらだらしていた

[改訂新版] 3分間ネットワーク基礎講座

インフラなんもわからんのをいい加減なんとかしようと思って読んでた わかりやすかった

DNSをはじめよう ~基礎からトラブルシューティングまで~ 改訂第2版 はじめようシリーズ

DNSなんもわからんのでよんだ このあとDNSがよくわかる教科書を読んだ 個人的にはDNSがよくわかる教科書だけでよかったなという感じ ドメイン一回もとったことなくてとるときにハマってダメとかそういう場合にはよさそう

DNSがよくわかる教科書

DNSなんもわからんのでよんだ わかりやすかった DNSはとりあえずこれでいいやという気持ちになった

Amazon Route 53のガイド

読みながら多少さわった まあ

ELBのblackbeltのオンラインセミナー

わかりやすい

Go言語でつくるインタプリタ

マクロの直前までやった マクロもやる予定 これはおもしろい

エリック・エヴァンスのドメイン駆動設計

再度読み始めた 1/5くらいよんだ 1/5くらいまではなかなか苦行感があった なぜならやり取りの結果でてくるモデルがなんでそういうモデルになるのかよくわからないゆえ 設計の話が出てきたのでちょっとおもしろくなってきたかもしれない

いちばんやさしいブロックチェーンの教本 人気講師が教えるビットコインを支える仕組み 「いちばんやさしい教本」シリーズ

なんとなく半分くらいよんだ ずっとわかるようなわからないような気持ちにさせられる

英語

英文解釈教室

やっている 32ページまで 進みが遅いのはそもそも文法知識がなさすぎて登場する文法をあらためて学び直しているため そもそも適当な文法書を1冊やったほうがよいのでは

レアジョブ

なんとなく再開 4月から16回受講した 文法がぐちゃぐちゃなのと使う単語のバリエーションがかなり無なのをなんとかしたいのでその辺をなんとかしようとしている recentlyってめっちゃいってしまう

その他

他もなんかした気がするけどわすれた

アクセストークンの勉強会

https://authlete.connpass.com/event/172393/ これはよかった アクセストークンに構造を持たせるかどうかの話とか PARとかDPoPとか おさらいしたい

これからやること

  • AWS入門する
    • ELB
    • ECS
  • コンテナ入門する
  • Webエンジニアが知っておきたいインフラの基本
  • 実践ハイパフォーマンスMySQL 第3版
  • プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
    • 停滞気味
  • Linuxの仕組み
  • Goならわかるシステムプログラミング
  • 英語
  • 中国語
    • Toeic900超えるまで止める予定
  • ここ最近ほとんど業務でプログラミングをしなくなって、調整とかレビューとかばっかしてるがかなり雰囲気でやってるので、マネジメント系の本を読もうとしている
    • なにがいいのかよくわからん
  • Effective Go - The Go Programming Language
  • パタヘネ
  • OAuth2.0のクライアント書く
  • OAuth 2.0/OIDC関連仕様全部読む
  • WebAuthnのドキュメント読む
  • マイクロサービスパターン