এই Workstation টেকনিক্যাল ব্রিফে আছে এজেন্টিক এআই সিকিউরিটি ও অথেন্টিকেশন: MCP (Model Context Protocol)-এর মাধ্যমে টুল কল করা এন্টারপ্রাইজ এজেন্টকে OAuth 2.1 দিয়ে সুরক্ষিত করা, উচ্চ-ঝুঁকির MCP এন্ডপয়েন্ট VPN / প্রাইভেট নেটওয়ার্কিং-এর পেছনে রাখা, এবং টুল ক্রেডেনশিয়াল HashiCorp Vault দিয়ে পরিচালনা — ডায়নামিক সিক্রেট, লিজ, অটো-রোটেশন এবং তাৎক্ষণিক রিভোক। এটি Claude, OpenAI এবং Cursor-এর জন্য ইন্ডাস্ট্রি-অ্যালাইন্ড সেটআপ সুপারিশ করে।
- সমস্যা: স্থির দীর্ঘমেয়াদি টুল কী + পাবলিক MCP = ক্রেডেনশিয়াল স্প্রল এবং ল্যাটারাল মুভমেন্ট।
- অথ: রিমোট MCP = OAuth 2.1 রিসোর্স সার্ভার + RFC 9728 PRM + RFC 8707 অডিয়েন্স; PKCE বাধ্যতামূলক।
- এন্টারপ্রাইজ: কর্পোরেট IdP-এর মাধ্যমে MCP Enterprise-Managed Authorization (EMA / ID-JAG) পছন্দ করুন।
- নেটওয়ার্ক: অভ্যন্তরীণ MCP ও Vault VPN/প্রাইভেট লিংকে; টুল অনুযায়ী egress অ্যালাউলিস্ট।
- সিক্রেট: Vault ডায়নামিক সিক্রেট + লিজ TTL; স্ট্যাটিক রোল অটো-রোটেশন; সেশন শেষে রিভোক।
- বিভাজন: LLM প্রোভাইডার API কী != MCP অ্যাক্সেস টোকেন != ব্যাকএন্ড টুল সিক্রেট।
উৎস: MCP Authorization, Vault লিজ, Vault AI agent validated pattern, Claude connector auth। প্রোডাকশন রোলআউটের আগে বর্তমান ভেন্ডর ডক যাচাই করুন।
১. এন্টারপ্রাইজ এজেন্টের জন্য থ্রেট মডেল
একটি এজেন্ট হলো একটি সুবিধাপ্রাপ্ত অটোমেশন প্রিন্সিপাল। সাধারণ ব্যর্থতার ধরন:
- সিক্রেট স্প্রল — MCP JSON-এ API কী, গিটে কমিট করা
.env, বা প্রম্পটে পেস্ট করা। - টোকেন সাবস্টিটিউশন — সার্ভার A-এর জন্য তৈরি অ্যাক্সেস টোকেন সার্ভার B গ্রহণ করে (অডিয়েন্স বাইন্ডিং নেই)।
- অতিরিক্ত-স্কোপড টুল — একই সেশনে এক MCP প্রোড DB লিখতে ও ফায়ারওয়াল খুলতে পারে।
- অনঅডিটেড OBO — মানব পরিচয়ের সাথে অ্যাকশন লিংক না করে এজেন্ট কাজ করে।
- পাবলিক MCP — VPN বা প্রাইভেট লিংক ছাড়াই ইন্টারনেট থেকে অভ্যন্তরীণ টুল অ্যাক্সেসযোগ্য।
কন্ট্রোল অবশ্যই কভার করবে পরিচয় (কে), অথরাইজেশন (কোন টুল), সিক্রেট (কোন ক্রেডেনশিয়াল দিয়ে), এবং নেটওয়ার্ক (কোথা থেকে)।
২. MCP অথেন্টিকেশন: ইন্ডাস্ট্রি স্ট্যান্ডার্ড
HTTP-ভিত্তিক রিমোট MCP-এর জন্য স্পেসিফিকেশন OAuth 2.1-এর সাথে সামঞ্জস্যপূর্ণ:
- MCP সার্ভার = OAuth রিসোর্স সার্ভার; ক্লায়েন্ট
Authorization: Bearerপাঠায়। - PKCE বাধ্যতামূলক; ইমপ্লিসিট গ্রান্ট নিষিদ্ধ।
- সার্ভার MUST Protected Resource Metadata (RFC 9728) প্রকাশ করবে যাতে ক্লায়েন্ট অথরাইজেশন সার্ভার আবিষ্কার করতে পারে।
- Resource Indicators (RFC 8707) ব্যবহার করুন যাতে টোকেন সেই MCP সার্ভারের অডিয়েন্স-বাউন্ড হয়।
- Authorization Server Metadata (RFC 8414) এবং/অথবা AS ক্ষমতার জন্য OIDC ডিসকভারি।
- Dynamic Client Registration (RFC 7591) সুপারিশকৃত যেখানে ম্যানুয়াল ক্লায়েন্ট ID ছাড়াই ক্লায়েন্ট অনবোর্ড করতে হয়।
# Protected Resource Metadata (conceptual)
{
"resource": "https://mcp.internal.example/mcp",
"authorization_servers": ["https://auth.example.com"],
"scopes_supported": ["mcp:tools", "mcp:resources"]
}
STDIO / লোকাল MCP আলাদা: Vault Agent দ্বারা ইনজেক্ট করা এনভায়রনমেন্ট ক্রেডেনশিয়াল পছন্দ করুন — প্রতিটি ডেস্কটপ টুলে ব্রাউজার OAuth জোর করবেন না। রিমোট/পাবলিক MCP-এ OAuth 2.1 বাস্তবায়ন করা উচিত।
২.১ Enterprise-Managed Authorization (জিরো-টাচ)
MCP Enterprise-Managed Authorization এক্সটেনশন কর্পোরেট IdP (Okta, Entra ID ইত্যাদি)-কে SSO-তে অনুমোদিত MCP সার্ভারে অ্যাক্সেস দিতে দেয়, ID-JAG (Identity Assertion JWT Authorization Grant) ব্যবহার করে, প্রতি-সার্ভার কনসেন্ট ক্লান্তি এড়িয়ে। অর্গ-ওয়াইড Claude / IDE / এজেন্ট ফ্লিটের জন্য EMA গ্রহণ করুন।
৩. VPN ও প্রাইভেট MCP ইন্টিগ্রেশন
OAuth ক্লায়েন্টকে অথেন্টিকেট করে; এটি নেটওয়ার্ক আইসোলেশনের বিকল্প নয়।
- অভ্যন্তরীণ MCP সার্ভার ও Vault প্রাইভেট CIDR-এ হোস্ট করুন (VPN, PrivateLink, Tailscale/WireGuard মেশ, বা সার্ভিস মেশ mTLS)।
- MCP লিসেনার প্রাইভেট ইন্টারফেসে বাইন্ড করুন; পণ্য ইচ্ছাকৃতভাবে ইন্টারনেট-ফেসিং না হলে পাবলিক 443 ব্লক করুন।
- এজেন্ট রানটাইম থেকে egress অ্যালাউলিস্ট প্রয়োগ করুন: শুধু অনুমোদিত API/MCP হোস্ট।
- প্লেন ভাগ করুন: Cursor-এর জন্য কর্প VPN-এ ডেভেলপার ল্যাপটপ; অনুমোদিত SaaS ছাড়া ইন্টারনেট MCP ছাড়াই VPC-এ সার্ভার-সাইড এজেন্ট।
প্যাটার্ন: রিচ্যাবিলিটির জন্য VPN + অথরাইজেশনের জন্য OAuth + সিক্রেটের জন্য Vault।
৪. এজেন্ট সিক্রেটের জন্য HashiCorp Vault
স্থির দীর্ঘমেয়াদি টুল কী এজেন্ট ব্লাস্ট রেডিয়াসের সাথে অসঙ্গত। Vault প্রদান করে:
৪.১ ডায়নামিক সিক্রেট + লিজ
প্রতিটি ডায়নামিক সিক্রেট একটি lease_id ও TTL ফেরত দেয়। কনজিউমারকে নবায়ন করতে হবে (যদি অনুমোদিত) অথবা মেয়াদ শেষের আগে প্রতিস্থাপন অনুরোধ করতে হবে। লিজ শেষ হলে Vault প্রোভাইডারে ক্রেডেনশিয়াল রিভোক করতে পারে। এটি চেক-ইন বাধ্য করে, অডিট লগ উন্নত করে এবং এক্সপোজার উইন্ডো কমায়।
৪.২ অটো-রোটেশন
স্ট্যাটিক রোলের জন্য (যেমন rotation_periodসহ ডাটাবেস পাসওয়ার্ড), Vault নির্ধারিত সময়ে রোটেট করে। Vault Agent টেমপ্লেট লাইফের শেষের কাছাকাছি পুনরায় ফেচ করে (ডিফল্ট lease_renewal_threshold ~TTL-এর ০.৯) এবং ক্রেডেনশিয়াল পরিবর্তনে চাইল্ড প্রসেস রিস্টার্ট করতে পারে।
৪.৩ এজেন্টের জন্য প্রস্তাবিত TTL
| ঝুঁকি শ্রেণি | উদাহরণ | TTL নির্দেশিকা |
|---|---|---|
| ক্রিটিকাল রাইট | প্রোড DB মিউটেট, IAM অ্যাডমিন | ৫-১৫ মিনিট; টুল শেষে রিভোক |
| রিড / স্টেজিং | রিড রেপ্লিকা, টিকেট API | ৩০-৬০ মিনিট |
| LLM প্রোভাইডার কী | OpenAI / Anthropic অর্গ কী | Vault-ম্যানেজড; নির্ধারিত সময়ে রোটেট; কখনো MCP JSON-এ নয় |
৪.৪ Vault + ইউজার অ্যাট্রিবিউশন (ভ্যালিডেটেড প্যাটার্ন)
HashiCorp-এর ভ্যালিডেটেড প্যাটার্ন: ইউজার অথেন্টিকেট করে; এজেন্ট on-behalf-of (OBO) টোকেন পায়; টুল JWT দিয়ে Vault-এ অথেন্টিকেট করে; Vault ক্লেইমকে পলিসিতে ম্যাপ করে এবং স্কোপড ডায়নামিক সিক্রেট ইস্যু করে। অডিট ট্রেইল সিক্রেট ইস্যুকে শেয়ার্ড রোবট অ্যাকাউন্ট নয়, মানুষের সাথে লিংক করে।
Vault Enterprise যোগ করে Agent Registry এবং OAuth রিসোর্স সার্ভার প্রোফাইল যাতে এনরোল্ড এজেন্ট আলাদা Vault লগইন ছাড়াই OAuth JWT উপস্থাপন করতে পারে — ডেলিগেশন / OBO-এর জন্য এজেন্ট-নির্দিষ্ট সীমাবদ্ধতাসহ।
# Conceptual agent tool hook (do not ship secrets to the model)
vault_token = login_jwt(obo_token) # Vault auth
secret = vault.read("database/creds/agent-ro")
lease_id, ttl = secret["lease_id"], secret["lease_duration"]
try:
run_tool(db_url=secret["data"]) # use within TTL
finally:
vault.lease.revoke(lease_id) # or let TTL expire
৫. ভেন্ডর অনুযায়ী প্রস্তাবিত সেটআপ
৫.১ Claude (Anthropic)
- রিমোট MCP কানেক্টরের জন্য OAuth পছন্দ করুন; PRM-এ নির্দেশ করে
WWW-Authenticateসহ 401 ফেরত দিন যাতে ক্লায়েন্ট অথ আবিষ্কার করতে পারে। - কানেক্টর URL কোয়েরি স্ট্রিংয়ে কখনোই টোকেন/API কী রাখবেন না (লগ হয়, ক্যাশ হয়, MCP টোকেন নিয়মে নিষিদ্ধ)।
- Claude Code: সিকিউর টোকেন স্টোর ও রিফ্রেশসহ লোকাল OAuth; প্লাগইন টোকেন পড়তে পারবে না।
- হোস্টেড Claude: সম্মতিদানকারী ইউজারের জন্য Anthropic-ম্যানেজড ক্লায়েন্ট ক্রেডেনশিয়াল; তবু আপনার MCP-এর পেছনে টুল সিক্রেট Vault-এ রাখুন।
- এন্টারপ্রাইজ: জিরো-টাচ সার্ভার অ্যাক্সেসের জন্য IdP-কে MCP EMA-এর সাথে অ্যালাইন করুন।
৫.২ OpenAI (Agents / tools)
- মডেল API কী থেকে টুল ক্রেডেনশিয়াল আলাদা করুন; ভিন্ন রোটেশন ও ব্লাস্ট রেডিয়াস।
- VPC-এ এজেন্ট রানটাইম চালান; প্রাইভেট নেটওয়ার্কিং দিয়ে প্রাইভেট MCP কল করুন।
- টুলে ইউজার-অ্যাট্রিবিউটেড টোকেন পাস করুন; JWT দিয়ে Vault-এ অথেন্টিকেট করুন; প্রতি ইনভোকেশনে ডায়নামিক সিক্রেট মিন্ট করুন।
- কমপ্লায়েন্সের জন্য প্রতিটি টুল কল ইউজার + এজেন্ট + lease_id দিয়ে লগ করুন।
৫.৩ Cursor
- MCP সার্ভার কনফিগ: শুধু এনভায়রনমেন্ট ভ্যারিয়েবল রেফারেন্স করুন —
mcp.json-এ কখনো সিক্রেট হার্ডকোড করবেন না। - STDIO সার্ভার: Vault Agent (টেমপ্লেট বা env)-এর অধীনে চালান যাতে ডেভেলপার পাসওয়ার্ড কপি না করেই লিজ রোটেট হয়।
- রিমোট MCP: সার্ভার সাপোর্ট করলে OAuth; নাহলে কর্প VPN + Vault থেকে শর্ট-লিভড bearer।
- টিম পলিসি: অনুমোদিত MCP সার্ভার অ্যালাউলিস্ট করুন; প্রোড কোডবেসে অবিশ্বস্ত কমিউনিটি MCP ব্লক করুন।
- ইগনোর রুল দিয়ে কনটেক্সট থেকে
.env/ সিক্রেট ফাইল দূরে রাখুন; প্রজেক্ট রুল: চ্যাটে সিক্রেট পেস্ট নিষিদ্ধ।
৬. রেফারেন্স কন্ট্রোল ম্যাট্রিক্স
| স্তর | কন্ট্রোল | অ্যান্টি-প্যাটার্ন |
|---|---|---|
| পরিচয় | SSO IdP + EMA / OAuth PKCE | শেয়ার্ড রোবট পাসওয়ার্ড |
| MCP | PRM + অডিয়েন্স-বাউন্ড টোকেন | URL-এ টোকেন; মেয়াদ নেই |
| নেটওয়ার্ক | VPN / PrivateLink + egress ACL | প্রোড টুলের জন্য পাবলিক MCP |
| সিক্রেট | Vault লিজ + রোটেট + রিভোক | mcp.json-এ বছরব্যাপী কী |
| অপস | IdP+MCP+Vault অডিট; মানব গেট | অগেটেড প্রোড ডিপ্লয় / পেমেন্ট |
৭. ইমপ্লিমেন্টেশন চেকলিস্ট
- প্রতিটি MCP সার্ভার ইনভেন্টরি করুন এবং পাবলিক বনাম প্রাইভেট শ্রেণিবদ্ধ করুন।
- সব রিমোট MCP-এ OAuth 2.1 + PRM বাস্তবায়ন করুন; কর্পোরেট IdP দিয়ে EMA সক্রিয় করুন।
- MCP + Vault VPN/প্রাইভেট নেটওয়ার্কিং-এর পেছনে সরান; Cursor/Claude কীভাবে নেটওয়ার্কে যোগ দেয় তা ডকুমেন্ট করুন।
- স্ট্যাটিক টুল কী Vault ডায়নামিক সিক্রেট দিয়ে প্রতিস্থাপন করুন; ঝুঁকি শ্রেণি অনুযায়ী TTL সেট করুন।
- এজেন্ট রানটাইমে Vault Agent (বা SDK renew/revoke) ওয়ার করুন; সেশন শেষে লিজ রিভোক করুন।
- LLM প্রোভাইডার কী আলাদা করুন; Vault-এ স্টোর ও রোটেট করুন — কখনো প্রম্পট বা MCP কনফিগে নয়।
- অর্থ, পরিচয় পরিবর্তন এবং প্রোডাকশন ডিপ্লয়ের জন্য মানব অনুমোদন গেট যোগ করুন।
- টেস্ট: মেয়াদোত্তীর্ণ লিজ ফেল-ক্লোজড; ভুল-অডিয়েন্স টোকেন প্রত্যাখ্যাত; পাবলিক পাথ ব্লকড।
Workstation প্রকাশিত — Kubernetes-এ এন্টারপ্রাইজ অটোমেশন, মাল্টি-এজেন্ট প্ল্যাটফর্ম এবং সুরক্ষিত ডেলিভারি।