AI એજન્ટ્સને સીમાઓની જરૂર છે, માસ્ટર કીની નહીં
MCP દ્વારા તમારા એપને AI એજન્ટનો એક્સેસ આપવો જોખમી છે. તમે તેમને ચાવીઓનો ઝૂડો સોંપી રહ્યા છો અને આશા રાખી રહ્યા છો કે તેઓ ફક્ત અમુક ચોક્કસ દરવાજા જ ખોલે. તે વિશ્વાસ એક સુરક્ષા જોખમ (security risk) છે.
મલ્ટી-ટેનન્ટ (multi-tenant) Laravel એપ માટે MCP ટૂલ્સ બનાવતી વખતે, તમારે એક સમસ્યાનો ઉકેલ લાવવો પડશે: એજન્ટ બીજા કોઈનો ડેટા એક્સેસ કર્યા વગર એપ ચલાવી શકે તે કેવી રીતે કરવું.
દરેક MCP ટૂલ એક એન્ડપોઈન્ટ (endpoint) તરીકે કામ કરે છે. એજન્ટ એક ટૂલને કોલ કરે છે, અને તમારું સર્વર કોડ રન કરે છે. મલ્ટી-ટેનન્ટ સેટઅપમાં, દરેક ટૂલે બે પ્રશ્નોના જવાબ આપવા જ જોઈએ:
- શું તમને આ કરવાની પરવાનગી છે?
- શું તમને અહીં આ કરવાની પરવાનગી છે?
જો તમે આને અવગણશો, તો તમે સુરક્ષામાં ખામી (security hole) ઊભી કરશો.
વેબ રિક્વેસ્ટ્સ મલ્ટી-ટેનન્સી હેન્ડલ કરવા માટે સેશન્સ (sessions) નો ઉપયોગ કરે છે. MCP ટૂલ્સ ટોકન્સ (tokens) નો ઉપયોગ કરે છે. વર્તમાન ટેનન્ટ કોન્ટેક્સ્ટ (tenant context) સેટ કરવા માટે કોઈ સેશન અથવા મિડલવેર હોતું નથી. જો તમે એવા ગ્લોબલ સ્કોપ્સ (global scopes) પર આધાર રાખશો જે સેશનમાં "current org" શોધે છે, તો તેમને કંઈ જ નહીં મળે. જે ક્વેરી (query) પ્રતિબંધિત હોવી જોઈએ તે તમારા ડેટાબેઝની દરેક રો (row) રિટર્ન કરી શકે છે.
સુરક્ષિત રહેવા માટે હું આ ચાર નિયમોનો ઉપયોગ કરું છું:
- સ્પષ્ટ ફિલ્ટરિંગ (Explicit filtering): ટોકન ઓથેન્ટિકેશન હેઠળ એમ્બિયન્ટ સ્કોપ (ambient scope) પર ક્યારેય આધાર રાખશો નહીં. દર વખતે ઓર્ગેનાઈઝેશન દ્વારા ફિલ્ટર કરવા માટે એક સિંગલ ટ્રેઇટ (trait) નો ઉપયોગ કરો.
- UUIDs નો ઉપયોગ કરો: ક્યારેય ઓટો-ઇન્ક્રીમેન્ટ (auto-increment) IDs નો ઉપયોગ કરશો નહીં. અંદાજ ન લગાવી શકાય તેવા આઈડેન્ટિફાયર્સનો ઉપયોગ કરો જેથી એજન્ટ્સ અન્ય રેકોર્ડ્સનો અંદાજ ન લગાવી શકે.
- પરમિશનનો પુનઃઉપયોગ કરો: એજન્ટ્સ માટે નવા પરમિશન સેટ્સ બનાવશો નહીં. તમારી વેબ એપ જે એબિલિટી સ્ટ્રિંગ્સ (ability strings) નો ઉપયોગ કરે છે તેનો જ ઉપયોગ કરો.
- સાઇડ ઇફેક્ટ્સને માર્ક કરો: ટૂલ્સને 'read-only' અથવા 'write-enabled' તરીકે લેબલ કરવા માટે એનોટેશનનો ઉપયોગ કરો.
ઓર્ગેનાઈઝેશન લુકઅપ માટે સિંગલ ટ્રેઇટનો ઉપયોગ કરીને, તમે ઓડિટ કરવા માટે એક જ જગ્યા બનાવો છો. જો લુકઅપ 'null' રિટર્ન કરે છે, તો ટૂલ એજન્ટને જણાવશે કે રેકોર્ડ મળ્યો નથી. એજન્ટને અન્ય ટેનન્ટ્સ વિશે કોઈ માહિતી મળતી નથી.
આ AI ની સમસ્યા નથી. આ મલ્ટી-ટેનન્સી અને ઓથોરાઈઝેશન (authorization) ની સમસ્યા છે. MCP તમારી એપને એક્સપોઝ કરવી સરળ બનાવે છે, તેથી તમારે તમારી સીમાઓ બાબતે શિસ્તબદ્ધ રહેવું જોઈએ.
એજન્ટે ફક્ત એટલું જ કરવું જોઈએ જે માણસ કરી શકે છે, તેમના પોતાના ટેનન્ટની અંદર, અને તેનાથી વધુ કંઈ નહીં.
Optional learning community: https://t.me/GyaanSetuAi
