概要
REST APIのAuthorizationをOPAに任せ、ミドルウェアなどで統一した処理にすることで認可処理の運用や柔軟性を向上させることができます。
今回はその実装方法を紹介します。
環境
- opa v0.32.0
- go v1.17
アーキテクチャ
アーキテクチャのイメージとしては以下です。
アクセスしたクライアントがその権限を持っているかOPAでチェックし、権限を持っていればアプリケーションサーバ側の処理④を実行します。
続きを読む
Policy as a Code(ポリシーをコードベースで管理する)の汎用的なエンジンとしてOPA - Open Policy Agent(オーパ)があります。
用途としては
といった際に利用できます。
またエコシステムも充実しており、すでに多数のツールと組み合わせることが可能です。
ref: Open Policy Agent | Ecosystem
今回はそのOPAの基本的な使い方を説明します。
続きを読むエラーハンドリングでは
といったことが重要です。
Go 1.13から入ったラップする仕組みにより、エラーメッセージにアノテートしていくことができエラーの発生箇所を追いやすくなりました。
またerrors.Isによりエラー原因による条件分岐もしやすくなりました。
今回はそれらと独自エラーの扱いについて説明します。