(2023/03/30追記)Envoyの設定項目の変更により本記事のそのままの通りでは動作しなくなっていますので注意してください。 以前からEnvoyに興味があって検証したりしています(サーキットブレーカーの効用を検証, その2)。 今回、Envoyでセキュリティ周りの関心事を分離できないか試してみました(サンプル実装)。 背景 フレームワークを使わずにWeb APIを実装すると下記のようになるかと思います。 app.get('/api/item/:id', (req, res) => { // ユーザー認証: AuthorizationヘッダーのJWTトークンを検証&Subjectを特定 const subject = authenticateSubject(req.headers) // 権限チェック if (checkPermission(subject)) { ... // API