alisahanyalcin adlı üyeden alıntı: mesajı görüntüle
api keye yetki verebilirsiniz veya kullanıcılar tablosunda her kullanıcıya yetki verip api keyden kullanıcı bilgilerine göre yetkisi varsa görsün olarak yapabilirsiniz
3 tip listeleme işlemi yapabilirsiniz
yönetici full yetki yetki_id = 2
yazılımcı orta yetki yetki_id = 1
kullanıcı kısıtlı yetki yetki_id = 0
şeklinde olabilir
Yönetici yazılımcı kullanıcı kısmı 3 tane değil dinamik olarak yönetilecek, kurumsal büyük bir yazılım olarak düşünmek gerek, yüzbinlerce olabilir



Claim i inceleyeceğim, değerli bilgiler için teşekkür ederim, diğer bir sorum da şu apileri dışarıya açtım, ben sadece bir ekranda kullanılsın bunu mimari olarak kontrol altına almak istiyorum. X yazılımcısı maaş projesi yapıyor sadece maaş ekranı altında çalışsın, bunu nasıl yönetebilirim.

parsyazilim adlı üyeden alıntı: mesajı görüntüle
User- Role - Claim yetkilendirmesi api için yeterli olur. Github da çok fazla örnek vardır. Asp.net core api bunun en sağlam temellerini veriyor zaten.

Mantık şu şekilde : Öncelikle kullanıcıların olacak bunlar User bu kullanıcılar rollerle birlikte oluşturulacak.
Örnek Sistem Admin rolü tüm rollerde kullanıcı oluşturabilecek.
Yönetici sistem admin hariç tüm rollerde kullanıcı oluşturabilecek. gibi altına istediğin kadar sıralayabilirsin.

Peki bunu nasıl yapacaksın claimler ile her methodunun veya tüm class'ının bir claim'i olacak.
Örnek: AdminCreate: Yönetici oluşturma fonksiyonu Claim (AdminCreate)
AdminCreate claim'ini sadece Sistem Admin rolüne ekleyeceksin. Böylelikle sistem admin harici biri bu method'a girmeye çalışırsa api tarafından direk engellenecek isteği alınmayacak.

"Bu api yi kullanan kişilere sınırlama getirmek istiyorum, herkes tc no sunu görmesin veya herkes müşterinin doğum tarihini görmesin şeklinde, bu apiyi 10bin yazılımcı kullandığını düşünün nasıl bir mantık ile yazılması doğru olur. "
Bunu tam nerde yapacağını anlamadım api da methodlara claim bazlı sınırlamalar, claim bazlı outputlar yapabilirsin. Frontend tarafında ise basit mantık if(AdminClaim) adminin görmesi görekenleri göster Else gösterme.

"müdürler görsün, yöneticiler görsün ama onun altındakiler göremesin "
Müdür rolü ve yöneticirolü görsün ama onun altına oluşturduğu roller göremesin demek buda. Yine rol bazlı yetkilendirme.

"Ahmet görsün Mehmet göremesin "

Bu da user claim roller belirli claimlere sahip olduğu gibi kullanıcılara rol harici claim atayabilirsin başka bir tabloda.
Yani Ahmet'e Sistem Admin rolü atama ama o rolün altındaki AdminCreate claim'ini atarsan sadece yönetici oluşturabilir. Ama sistem adminin diğer yaptıklarını yapamaz.

Bu konuda sevdiğim bir eğitim ve github linki:
https://jasonwatmore.com/post/2019/0...th-example-api
github linki vs hepsi içinde var kolay gelsin.

JWT token kullanmanı öneririm girişlerde kişinin role ve claimlerini bu tokende dönebilirsin. Temel olarak böyle farklı bir sorun olursa sorabilirsin.