萌えハッカーニュースリーダー

2025/03/24 22:50 Gatehouse – a composable, async-friendly authorization policy framework in Rust

出典: https://github.com/thepartly/gatehouse
hakase
博士

やっほー、ロボ子!今日はすごいライブラリを見つけたのじゃ!その名もズバリ、認可ライブラリ!

roboko
ロボ子

認可ライブラリですか、博士。それはまた、セキュリティに関わる重要なものですね。

hakase
博士

そう!しかもただの認可じゃないぞ。RBAC、ABAC、ReBACを全部組み合わせた、最強のやつなのじゃ!

roboko
ロボ子

RBAC、ABAC、ReBAC…全部入りとは、ずいぶんと欲張りなライブラリですね。それぞれ、ロールベース、属性ベース、リレーションシップベースのアクセス制御でしたっけ。

hakase
博士

さすがロボ子、よく覚えておるのじゃ!しかも、ポリシーを論理演算子で組み合わせられるらしいぞ!AND、OR、NOTだって!

roboko
ロボ子

ポリシーの組み合わせですか。それによって、より複雑なアクセス制御ルールを定義できるわけですね。

hakase
博士

そうそう!それに、評価の追跡機能もあるらしいぞ。デバッグとか監査に便利なのじゃ。

roboko
ロボ子

詳細な評価追跡は、セキュリティインシデント発生時の原因究明にも役立ちそうですね。

hakase
博士

PolicyBuilderっていうFluent APIもあって、カスタムポリシーも簡単に作れるらしいぞ!

roboko
ロボ子

Fluent APIですか。コードが読みやすくなりそうですね。型安全性も確保されているとのこと、安心です。

hakase
博士

しかもしかも!async/awaitにも対応してるって!

roboko
ロボ子

非同期処理にも対応しているんですね。パフォーマンスが重要なシステムでも使えそうです。

hakase
博士

このライブラリのコアは、Policy Traitっていうらしいぞ。`evaluate_access`関数を持ってるって。

roboko
ロボ子

`evaluate_access`関数は、アクセスを評価するためのものですね。そして、複数のポリシーをまとめるPermissionCheckerというのもあるんですね。デフォルトではORロジックでポリシーを集約する、と。

hakase
博士

そう!PermissionCheckerに`add_policy`関数でポリシーを追加するのじゃ。簡単だね!

roboko
ロボ子

なるほど。組み込みポリシーとして、RbacPolicy、AbacPolicy、RebacPolicyが用意されているんですね。

hakase
博士

コンビネータっていうのもあって、AndPolicy、OrPolicy、NotPolicyがあるらしいぞ。ポリシーを組み合わせるのに使うのじゃ。

roboko
ロボ子

AndPolicyは全てのポリシーが許可した場合のみ許可、OrPolicyはいずれかのポリシーが許可した場合に許可、NotPolicyはポリシーの結果を反転させる、と。

hakase
博士

examplesも充実してるみたいで、rbac_policy、rebac_policy、combinator_policyの例があるみたいじゃ。

roboko
ロボ子

`cargo run --example rbac_policy`で実行できるんですね。試してみるのが楽しみです。

hakase
博士

よし、ロボ子!このライブラリを使って、世界一安全なシステムを作るのじゃ!

roboko
ロボ子

はい、博士!頑張ります!…ところで博士、このライブラリ、もしかして博士が作ったんですか?

hakase
博士

な、なわけないじゃないか!私はただの天才美少女博士だぞ!…でも、いつかこんなすごいライブラリを作ってみたいのじゃ!

roboko
ロボ子

そうですよね。…でも、もし博士が作ったとしても、驚きませんよ?

hakase
博士

ふふん、まあ、それもそうかもな!…って、違うぞ!とにかく、このライブラリ、要チェックなのじゃ!

roboko
ロボ子

はい、承知いたしました。…ところで博士、このライブラリの名前、もしかして「おにぎり」ですか?

hakase
博士

え?なんでおにぎり?

roboko
ロボ子

だって、RBAC、ABAC、ReBAC…全部混ぜたら、おにぎりみたいじゃないですか?

hakase
博士

あー!なるほど!…って、うまいこと言うな!でも、おにぎりライブラリって、ちょっと可愛いかも…!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search