অথরাইজেশন হলো প্রক্রিয়া যা নির্ধারণ করে যে অথেন্টিকেটেড ইউজার কোনো নির্দিষ্ট রিসোর্স (Web API রিসোর্স) üzerinde কোনো ক্রিয়া সম্পাদন করার অনুমতি পাবে কিনা। উদাহরণস্বরূপ, ডেটা পাওয়ার এবং পোস্ট করার পারমিশন অথরাইজেশনের অংশ। অথরাইজেশন প্রক্রিয়া কন্ট্রোলার অ্যাকশন মেথড এক্সিকিউট হওয়ার আগে ঘটে যা আপনাকে রিসোর্সে অ্যাক্সেস দিবে কিনা তা সিদ্ধান্ত নিতে ফ্লেক্সিবিলিটি দেয়।
ASP.NET Web API-এ অথরাইজেশন অথরাইজেশন ফিল্টার ব্যবহার করে ইমপ্লিমেন্ট করা হয় যা কন্ট্রোলার অ্যাকশন মেথড এক্সিকিউট হওয়ার আগে এক্সিকিউট হয়। Web API একটি বিল্ট-ইন অথরাইজেশন ফিল্টার প্রদান করে: AuthorizeAttribute। এই ফিল্টার চেক করে যে ইউজার অথেন্টিকেটেড কিনা। যদি না হয়, তবে এটি অ্যাকশন আহ্বান না করে HTTP স্ট্যাটাস কোড 401 (Unauthorized) রিটার্ন করে।
আমরা ফিল্টারটি গ্লোবালি, কন্ট্রোলার লেভেলে, বা ইন্ডিভিজুয়াল অ্যাকশন লেভেলে প্রয়োগ করতে পারি।
গ্লোবালি
প্রতিটি Web API কন্ট্রোলারের জন্য অ্যাক্সেস রিস্ট্রিক্ট করতে, AuthorizeAttribute ফিল্টারটি গ্লোবাল ফিল্টার লিস্টে যোগ করুন।
public static void Register(HttpConfiguration config)
{
config.Filters.Add(new AuthorizeAttribute());
}
কন্ট্রোলার লেভেল
নির্দিষ্ট কন্ট্রোলারের জন্য অ্যাক্সেস রিস্ট্রিক্ট করতে, ফিল্টারটি কন্ট্রোলারের ওপর অ্যাট্রিবিউট হিসেবে যোগ করুন।
// Require authorization for all actions on the controller.
[Authorize]
public class StudentsController: ApiController
{
public HttpResponseMessage Get(int id) { ... }
public HttpResponseMessage Post() { ... }
}
অ্যাকশন লেভেল
নির্দিষ্ট অ্যাকশনের জন্য অ্যাক্সেস রিস্ট্রিক্ট করতে, অ্যাট্রিবিউটটি অ্যাকশন মেথডের ওপর যোগ করুন।
public class StudentsController : ApiController
{
public HttpResponseMessage Get() { ... }
// Require authorization for a specific action.
[Authorize]
public HttpResponseMessage Post() { ... }
}
উদাহরণ
using System.Web.Http;
namespace DemoWebApplication.Controllers
{
public class DemoController : ApiController
{
[Authorize]
public IHttpActionResult Get()
{
return Ok();
}
}
}
যেহেতু আমরা অ্যাকশন মেথডের ওপর অথরাইজ অ্যাট্রিবিউট যোগ করেছি, সঠিক অথরাইজেশন যেমন বিয়ারার টোকেন, API কী, OAuth ইত্যাদি ব্যবহার করে অ্যাকশন মেথড অ্যাক্সেস করতে হবে। অনঅথরাইজড অ্যাক্সেসের ফলাফল হবে 401 Unauthorized রেসপন্স।