マイクロサービス間の認可伝搬をどう解くか?独自実装と IETF Transaction Tokens を見比べてみた
BRANK

こんにちは。アカウント基盤開発部でエンジニアをしている tkmt (たくまつ) です。今回は、IETF で標準化が進んでいる Transaction Tokens について調査してまとめてみました。というのも、この Transaction Tokens が解こうとしている課題が、バクラクが抱えていた課題とほとんど同じだったためです。実はバクラクでは、同じ課題を解くための仕組みを自作しています。バクラクで実装された仕組みは、ドラフトで検討されている内容とどこが同じで、どこが違うのか読み比べてみたく調査しました。解きたかった課題バクラクには、プロダクトを跨いで認可を行いたいケースがあります。承認フローを持つバクラク申請と、申請に紐づく機微な情報を保管している別プロダクトのサービス(以下、サービス X)があるとします。 承認者が承認画面を開くと、裏側では次の順で処理が動きます。バクラク申請が申請を取得し、承認ルート・承認状態・代理設定から「この承認者は閲覧してよい」と判定するサービス X のデータ取得 RPC を呼び、機微情報の実体を取得する「この承認者は見てよい」と認可を行えるのは、1. のバクラク申請側の判定だけです。バクラク申請の中では承認者であるた…

zenn.dev
Related Topics: Authentication / Authorization Security Software Design