कौन सा डेटा `दावा` के रूप में संग्रहीत किया जाना चाहिए?


9

ASP.Net Core में, मुझे लगता है कि Claimsप्राधिकरण बहुत ठोस विधि नहीं है। हम के रूप में कुछ भी जोड़ सकते हैं ClaimTypeऔर ClaimValueजोड़ी; समूहों, Firstname, lastname, brithdate, canAccessThisURI, isEditor, आदि .. हालांकि, यह दृष्टिकोण (कुछ भी जो दावे के रूप में संग्रहीत किया जा सकता है), एक विशाल दावा तालिका बना देगा जिसमें मेरे आवेदन डेटा का 50% शामिल है।

मैं सोच रहा हूं, एक अच्छे अभ्यास के रूप में, सामान्य डेटा क्या हैं जिन्हें दावों के रूप में संग्रहीत किया जाना चाहिए?


4
उपयोगकर्ता को मान्य / अधिकृत करने के लिए आपको जो भी डेटा की आवश्यकता होगी, आप उसे वहीं स्टोर करेंगे। यह लगभग निश्चित रूप से आपके आवेदन डेटा का 50% शामिल नहीं करता है
रॉबर्ट हार्वे

जवाबों:


3

एक दावा केवल एक उपयोगकर्ता के बारे में एक तथ्य है जो संभवतः आपके सिस्टम में किसी को पहचानने या अधिकृत करने के लिए उपयोग किया जा सकता है। उन दो बाधाओं को सीमित करने के लिए पर्याप्त होना चाहिए जो आप एक दावे के रूप में डालते हैं।

दावों के लिए कुछ विचारों में शामिल हैं:

  • यूज़र आईडी
  • उपयोगकर्ता नाम
  • उपयोगकर्ता ईमेल
  • भूमिकाओं
  • समूह सदस्यता

उपयोगकर्ता का मेटाडेटा सीमित होना चाहिए जो उपयोगकर्ता के लिए ऐप को निजीकृत करने और उपयोगकर्ता को अपने डेटा के साथ जोड़ने के लिए आवश्यक है। उपयोगकर्ता की आईडी उपयोगकर्ता को डेटा के साथ जोड़ने या ऑडिट ट्रेल प्रदान करने के लिए पर्याप्त है। लालची मत बनो।

भूमिका और समूह सदस्यता प्राधिकरण के दावे हैं। उदाहरण के लिए यदि आपके आवेदन में समूह हैं तो उन समूहों की सूची, जिन्हें उपयोगकर्ता आपको तुरंत जाँचने देता है कि वे किसी निजी समूह तक पहुँच सकते हैं या नहीं। भूमिकाएँ थोड़ी अधिक बारीक होती हैं और उपयोगकर्ता के विशेषाधिकारों के बारे में बात करते हैं। ये आमतौर पर अनुप्रयोग विशिष्ट होते हैं, इसलिए केवल वही जोड़ें जो आपको लागू करने की आवश्यकता है।


0

कई सिस्टम हैं, विशेष रूप से एसटीएस / फेडरेशन सिस्टम, जो इस तरह से करते हैं:

  • एक दावा जो विशिष्ट रूप से उपयोगकर्ता का वर्णन करता है
  • वे (और अन्य) सामान्य वैचारिक चीजों का वर्णन करने वाले दावों की पहुंच

ऐप के भीतर उपयोगकर्ता का "प्रोफ़ाइल" डेटा आपके द्वारा उपयोग किए जा रहे प्रमाणीकरण स्रोत से / उसके लिए अनुवाद नहीं हो सकता है और आप हर समय या सभी उपयोगकर्ताओं पर एक ही समापन बिंदु का उपयोग नहीं कर सकते हैं।

यदि आप पुराने प्रपत्र प्रमाणीकरण से परिचित थे, तो यह उपयोगकर्ता नाम और भूमिका मॉडल के अनुरूप है और बहुत सारे अंतर्निहित सामान अभी भी इस तरह दिखता है कि यदि आप System.Security.Claims.Claim का उपयोग करते हैं तो नाम और भूमिका का उचित रूप से उपयोग करें।

न तो पुराने या नए मॉडल ने आपको दावे या भूमिका विरासत के लिए बहुत कुछ दिया है, लेकिन इसे लागू करने और लागू करने के लिए विशेष रूप से मुश्किल नहीं है, आपको दावों या भूमिकाओं की मात्रा में कटौती करने की अनुमति देता है जिन्हें आपको अनुरोध से खेलने की आवश्यकता है अनुरोध करना।

यदि आपके आवेदन को जन्मदिन का ट्रैक रखने की आवश्यकता है, लेकिन इसे सुरक्षा तंत्र में उपयोग करने की आवश्यकता नहीं है, तो दावा संग्रह में रखने में वास्तव में कोई लाभ नहीं है। इसे अलग प्रोफ़ाइल डेटासेट या किसी अन्य चीज़ में डालें।

यदि आपके आवेदन को किसी अन्य सिस्टम से दावे के रूप में जन्मदिन प्राप्त करने की आवश्यकता है, तो आप कुछ और देख रहे हैं जैसे कि फ़ेडरेशन को अनुकूलित करना या अतिरिक्त दावे को बनाए रखने की अनुमति देना।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.