はじめに この記事では、OAuth 2.0 のアクセストークンの実装に関する考察を行います。本記事の執筆者本人による動画解説も『OAuth & OIDC 勉強会 【アクセストークン編】』で公開しておりますので、併せてご参照ください。 English version of this article is here → "OAuth Access Token Implementation". 1. アクセストークン実装方法の分類 OAuth のアクセストークン※1の実装方法は認可サーバーの実装依存です。 実装依存ではありますが、RFC 6749 の『1.4. Access Token』にある次の記述が示唆するように、 The token may denote an identifier used to retrieve the authorization information or may
TL;DR JWTはCookieを使った認証の代わりに使うのはきつい。 コードを静的にホスティングしているSPAの話。 JWTの有効期間を長くすれば危険で、短くすればUXが犠牲になるというトレードオフがある。 AWS AmplifyはlocalStorageにJWTを保存 悪意のあるThird partyライブラリが混ざっていたらJWTを抜かれる。 yarn.lockが依存している全ライブラリを監査することはつらい。 Auth0ではiFrameを活用してメモリ上にJWTを格納できる Auth0いいね😍 まくら Youtubeが大好きなHiCustomerの小田です。ちょっと遅いですが年明け最初のエントリーです。今年もテックブログをよろしくお願いします😎ちなみに、気分がいいので年明けに観ていたYoutubeのエントリーの中で一番おもしろかった動画を紹介します。世界中で有名な「Auld L
トークンを利用した認証・認可 API を実装するとき Authorization: Bearer ヘッダを使っていいのか調べたAPIOAuthWeb TL;DR HTTP でトークンを利用した認証・認可をする手法として RFC 6750 がある OAuth に限らず、トークンを利用して認証・認可する機構の一部として Authorization: Bearer ヘッダを使うことができる 使い方について詳しくはこの記事の下のほうに書いた 要求 トークンを利用した認証・認可機構を持つ API を作りたい クライアントがトークンを HTTP リクエストに含めて送信し、サーバはトークンを検証してリソースへのアクセスを許可したい Authorization: Bearer トークン ヘッダでトークンを送る API あるよね、ああいうやつ 疑問 Authorization: Bearer ヘッダは OA
「DevOpsってアプリの話ばっかりな気がするけど、DBもアプリ以上に変更入るよなぁ」 データベースの変更をいかにノーダウンタイムで本番リリースするか?ステート(データ)を持つという宿命上、そう簡単にいかないことは皆さん想像つくかと思いますが、その制約の中でも工夫次第では停止時間を極小化する方法が有るんだなぁと気付かされました。 AWS Dev Day Tokyo 2018 | AWS、「DevOps with Database on AWS」のセッションレポートです。 (祭) ∧ ∧ Y ( ゚Д゚) Φ[_ソ__y_l〉 無停止DBリリースダワッショイ |_|_| し'´J セッション内容 タイトルは「DevOps with Database on AWS」 DevOps のアプローチでシステム開発に取り組む上で、データベースに対する変更をどのように扱うかは難しい問題です。
こんにちは。 この度、おしごとで初めてAWSを触ることになりました。 AWSを触り始めて3日目の夜。 EC2サーバ1台にPHP+Nginxをいれて満足したくらいのレベルの私が、CodeDeployと戯れたときのお話をさせていただきます。 使ってみよう CodeDeployを使うにあたり公式にサンプルデプロイがあります。 こちらを使用すれば、手元にアプリケーションがなくてもCodeDeployの使用感が分かりそうです。 ということで早速、使ってみましょう。 サンプルデプロイを使用すると、デプロイタイプはBlue/Greenにするかインプレースにするかなどいくつか聞かれます。 多少用語が分からなくても前に進みましょう。(あとからここが仇になるので注意) ここでは、Blue/Greenデプロイを選択することにしました。 あら簡単。 たったの3ステップでサンプルデプロイが実行され、Blue/Gre
連日の雲の写真である。芸がない。 既存のCloudWatch Logsロググループに対して、メトリクスフィルターとCloudWatchアラームを作成する、という簡単なタスクがあった。 aws-cdkでCloudFormationテンプレートを出力し、スタックの作成を行った際に問題が起きたので、解決方法をメモしておく。 [aws-cdkでメトリクスフィルターを実装する] [Resource already exists] [aws-cdkでCloudFormationテンプレート生成時に独自処理を追加する] [まとめ] [aws-cdkでメトリクスフィルターを実装する] CloudWatch Logsの画面をみると、すでにMyLogGroupというロググループが存在している。 このロググループに対してメトリクスフィルターとアラームを設定したいので、aws-cdkを用いてCloudFormat
Over the last decade we've developed and refined a number of techniques that allow a database design to evolve as an application develops. This is a very important capability for agile methodologies. The techniques rely on applying continuous integration and automated refactoring to database development, together with a close collaboration between DBAs and application developers. The techniques wo
Gradle の dependencies で指定する compile, api, implementation についての勉強メモ。 compile は非推奨 Gradle 3.4 で Java Library Plugin が追加されたことで、 dependencies で compile を使用することは非推奨となってたらしい(runtime, testCompile, testRuntime も)。 4.7 の Java Plugin の説明では、ガッツリ Deprecated と書かれている。 (4.6 のドキュメントだと Deprecated って書いてないけど、明確に非推奨となったのは最近?) 代わりに implementation と api を使用することが推奨されている。 compile と implementation の違い compile の場合 実装 |-set
Spring Security は 5.4 以降、設定の書き方に大幅な変更が入っています。 詳しくは @suke_masa さんの Spring Security 5.7でセキュリティ設定の書き方が大幅に変わる件 - Qiita を参照してください。 基礎・仕組み的な話 認証・認可の話 Remember-Me の話 CSRF の話 レスポンスヘッダーの話 メソッドセキュリティの話 CORS の話 Run-As の話 ACL の話 テストの話 MVC, Boot との連携の話 番外編 Spring Security にできること・できないこと 同時セッション数の制御 デフォルトだと、同じユーザーで複数のセッションをつくることができる。 つまり、同じユーザーで異なる端末からいくつでもログインすることができることになっている。 設定を変更すると、同時セッション数を制限したり、もしくは複数ログイン
github.com zsh-syntax-highlightingを使うと図のようにコマンドラインにシンタックスハイライトが効くようになるので試してみる。 インストール : oh-my-zshの場合 インストール方法は下記ページに書いてある。 zsh-syntax-highlighting/INSTALL.md at master · zsh-users/zsh-syntax-highlighting · GitHub 各種プラグインマネージャー向けのインストール方法も書いてあり、oh-my-zshの場合は以下の手順でインストール。 1. oh-my-zshのpluginsディレクトリにgit cloneする。 $ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-
After a few years of working with GraphQL, as open-source developers and as infrastructure team in large enterprises, we’ve learned some lessons about GraphQL, and how to authenticate and authorize GraphQL API. Authentication and authorization should be simple, because for most cases, it’s just a piece of code that we wish to run before letting users access certain resources. In this article we’ll
Ruby で DB を扱うちょっとしたスクリプトを書くとき、ActiveRecord で生SQLを使うと色々捗ることが多い。 そのためのメソッドをまとめてみた。 事前準備: establish_connection 作成・更新系: execute 検索系: select_all, select_one, select_rows, select_values, select_value プレースホルダ: sanitize_sql_array 事前準備 establish_connection DBとのコネクションを確立する。'mysql2', 'postgresql', 'redshift' など様々なアダプタが使える。 以下は接続設定の一例。 [MySQL] (要 mysql2 gem) require 'active_record' config = { adapter: 'mysql2
httpからのアクセスをhttpsへリダイレクトしたいなーと思って調べていたら、「NginxHttpRewriteModuleを使ってrewriteしよう!」みたいな記事が大量ヒットしたんですが、なんとも設定が冗長で微妙な感じがしたので調べたところちゃんと公式に記述がありました。 Converting rewrite rules なお日本語のドキュメントはちょっと古いっぽいので英語版を読んだ方がよさげです。 上記には、rewriteによるリダイレクトは"This is a wrong, cumbersome, and ineffective way." と書かれています。 server { listen 80; server_name www.example.org example.org; if ($http_host = example.org) { rewrite (.*) http
はじめに アクセスするURLに応じて接続先のWebサーバを切り替えたい場合、 つまり http://hoge.com/XXXX/ というURLに対して 「XXXX」の値毎にアクセスするサーバを変更したい場合、 リバースプロキシを使うことで解決できる。 図にするとこのような感じ。各 Web app は全て別のサーバー上に存在する。 今回は Nginx を用いてリバースプロキシを構築する。 Nginx とは Nginx 公式 ・基本的な HTTP 機能(静的なWebサーバ) ・Webアプリケーションと連携することで動的なページもOK ・C10K問題への対応(Apacheで問題になった) ・ロードバランシングができる。 ・リバースプロキシになる。 仮想環境の準備 作るもの 以下の合計3台の仮想環境を用意する。 Proxy サーバー (proxy_server): 1台 Web サーバー (web
[レベル: 上級] Googleは、ローカルビジネス情報をschema.orgで提供する仕様を構造化データの開発者向けサイトで公開しました。 名称や住所などの各種情報をローカルナレッジパネルに表示したり、そこから注文や予約といったアクションを実行させるたりすることができます。 ローカルビジネス情報をschema.orgでマークアップ schema.orgの LocalBusiness でマークアップすることにより、あなたが営むローカルビジネスに関する情報を正確かつ詳細にGoogleに伝えることができます。 たとえば、正しい名前や住所、電話番号を定義できるし、メニューが書かれているURLや営業時間を伝えられます。 こうした情報は、検索結果のナレッジパネルに表示されます。 schema.org/LocalBusinessで利用できる次のプロパティが必須または推奨、任意です。 name(名称、必
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く