Zopio

Multi-tenant financial system için yalnız RBAC neden yeterli değildir?

Permission set basit ve context kararı materially değiştirmiyorsa RBAC yeterli olabilir. Multi-tenant financial system'lerde ise Admin veya Finance Manager gibi role çoğu zaman belirli bir financial action'ın belirli bir resource üzerinde yapılıp yapılamayacağını tek başına belirlemeye yetmez. Authorization role ile tenant, resource, attribute ve relationship context'ini birlikte değerlendirmelidir.

01

Role policy'yi sıkıştırır ama context kaybeder

RBAC çok sayıda user stable permission set paylaştığında etkilidir. Policy accessed object veya request environment'a bağlı olduğunda problem başlar. Finance role bir legal entity için refund yapabilir ama diğeri için yapamayabilir; belirli approval threshold altında yetkili olabilir ama üstünde olmayabilir.

02

Tenant isolation authorization'ın parçası olmalı

Multi-tenant system'de 'bu role refund yapabilir mi?' check'i eksiktir. Payment'ın actor'ün operate edebileceği tenant ve account'a ait olduğu da doğrulanmalıdır. Tenant context client-provided identifier'dan kör biçimde türetilmemeli, server-side enforce edilmelidir.

03

Attribute ve relationship precision ekler

NIST ABAC modelinde subject, object, operation ve environmental attribute policy'ye karşı evaluate edilir. Financial system bu modeli role ile birlikte kullanabilir: role baseline sağlar, entity, amount, channel, ownership veya risk state gibi attribute decision'ı refine eder.

04

Authorization decision açıklanabilir olmalı

Complex policy ancak ekip neden allow veya deny olduğunu anlayabiliyorsa değerlidir. Policy version ve relevant decision context audit evidence'a kaydedilmeli; sensitive internal rule client'a sızdırılmamalıdır.

05

Role assignment ile authorization evaluation'ı ayırın

Role finance operator, support agent veya administrator gibi broad capability atamak için kullanışlıdır. Authorization engine daha sonra specific request'i bu role'larla birlikte resource ve environment context kullanarak değerlendirmelidir. Böylece tenant, amount threshold, region ve ownership kombinasyonlarının her biri için yeni role yaratma ihtiyacı azalır.

Role explosion RBAC'in ifade etmek için tasarlanmadığı policy'yi taşımaya başladığının işaretidir. Yüzlerce near-duplicate role review etmesi zor ve yanlış assign edilmesi kolaydır. Role'ları anlaşılır tutun, gerektiğinde contextual policy ekleyin.

06

Tenant boundary'yi accidental bypass edilemez hale getirin

Tenant context yalnız request içinde gelen tenant ID'den değil authenticated server-side relationship'ten gelmelidir. Query scope, policy check ve service boundary cross-tenant access'i default olarak fail ettirmelidir. Doğru role check ile yanlış tenant scope yine authorization failure'dır.

Bu background job ve service account için de geçerlidir. Machine identity de human user kadar scoped authority gerektirir; service-to-service access explicit modellenmezse broad internal credential dikkatle tasarlanmış user permission'ı bypass edebilir.

07

Financial constraint için attribute kullanın

Financial action sıkça attribute'a bağlıdır: payment amount, legal entity, currency, country, risk state, ownership, account status veya second approval varlığı. ABAC-style policy bu fact'leri role ile birleştirerek aynı finance operator'ın routine work yapmasına, high-value veya cross-entity action'ın additional authority istemesine izin verir.

Security decision'da authoritative ve yeterince stable attribute kullanın. Client-supplied label veya stale cached value sessizce policy input olmamalıdır. Authorization kullanılan data kadar güvenilirdir.

08

Ownership önemliyse relationship modelleyin

Bazı policy'ler relationship ile daha kolay ifade edilir: user organization'a bağlı, organization merchant account'a sahip, merchant account payment'a sahip. Relationship-based check role ve attribute'u tamamlayarak actor'ın resource'a allowed path üzerinden bağlı olup olmadığını cevaplar.

Pratik design model'leri birleştirebilir. RBAC anlaşılır job-level permission sağlar; relationship ownership enforce eder; attribute financial context enforce eder. Amaç tek authorization modelinde ideolojik saflık değil, business'a uyan ve review edilebilir policy'dir.

09

Yalnız action'ı değil decision'ı audit edin

Sensitive action allow veya deny edildiğinde authorization decision'ı sonra açıklamak için yeterli context koruyun: actor, resource, tenant, ilgili policy version ve key attribute. Policy zamanla değiştiğinde bu özellikle değerlidir; investigator bugünkü rule'u dünün event'ine uygulamak yerine o sırada aktif rule'u bilmelidir.

User-facing denial message policy detail sızdırmamak için sınırlı tutulabilir. Internal audit evidence caller'a dönen response'dan daha zengin olabilir.

Pratik çıkarımlar

Stable coarse permission set için RBAC kullan.

Tenant ve resource relationship'i server-side enforce et.

Financial policy gerektiğinde contextual attribute ekle.

Authorization decision'ı auditable ve explainable tut.

Birincil kaynaklar