কম্পিউটার টিউটোরিয়াল

IIS ওয়েবসাইটে কেরবেরোস অথেন্টিকেশন কনফিগারেশন

এখানে উইন্ডোজ সার্ভার ২০১২ R2-এ চালিত IIS ওয়েবসাইটে ট্রান্সপারেন্ট SSO (Single Sign-On) কেরবেরোস ডোমেন ব্যবহারকারী অথেন্টিকেশন কনফিগার করার ধাপে ধাপে গাইড দেওয়া হলো।

আপনার ওয়েব সার্ভারে IIS Manager চালু করুন, প্রয়োজনীয় ওয়েবসাইট সিলেক্ট করুন এবং Authentication সেকশনে যান। ডিফল্টভাবে শুধু Anonymous Authentication সক্রিয় থাকে। এটি ডিজেবল করুন এবং Windows Authentication সক্ষম করুন (প্রথমে IIS সবসময় অ্যানোনিমাস অথেন্টিকেশন চেষ্টা করে)।

Windows অথেন্টিকেশনের জন্য উপলব্ধ প্রোভাইডারদের তালিকা খুলুন (Providers)। ডিফল্টভাবে দুটি প্রোভাইডার থাকে: Negotiate এবং NTLM। Negotiate একটি কন্টেইনার যা কেরবেরোসকে প্রথম অথেন্টিকেশন মেথড হিসেবে ব্যবহার করে, এবং অথেন্টিকেশন ফেল করলে NTLM ব্যবহার হয়। প্রোভাইডার তালিকাতে Negotiate প্রথমে থাকা আবশ্যক।

পরবর্তী ধাপ হল ওয়েবসাইটের নামে Service Principal Name (SPN) এন্ট্রি রেজিস্টার করা। যদি IIS ওয়েবসাইট শুধু সার্ভারের নাম দিয়ে এক্সেসযোগ্য হয় (https://server-name বা https://server-name.adatum.loc), তবে আপনাকে অতিরিক্ত SPN এন্ট্রি তৈরি করতে হবে না (SPN এন্ট্রি AD-এ সার্ভার অ্যাকাউন্টে ইতিমধ্যে আছে)। যদি ওয়েবসাইটের অ্যাড্রেস হোস্টনেম থেকে ভিন্ন হয় বা লোড ব্যালেন্সিং সহ ওয়েবফার্ম বানান, তবে অতিরিক্ত SPN এন্ট্রি সার্ভার বা ব্যবহারকারী অ্যাকাউন্টের সাথে जोড়তে হবে।

ধরি, আমাদের IIS সার্ভার ফার্ম আছে। এই কেসে আলাদা একটি AD অ্যাকাউন্ট তৈরি করে SPN এন্ট্রি সেটার সাথে বাঁধা ভালো। আমাদের ওয়েবসাইটের টার্গেট অ্যাপ্লিকেশন পুল এই অ্যাকাউন্ট থেকে চালু হবে।

iis_service নামে একটি ডোমেন অ্যাকাউন্ট তৈরি করুন। নিশ্চিত করুন এই অবজেক্টের জন্য SPN এন্ট্রি অ্যাসাইন করা নেই (servicePrincipalName এট্রিবিউট খালি)।

ধরি, ওয়েবসাইট https://webportal এবং https://webportal.adatum.loc-এ রেসপন্ড করতে হবে। এই ঠিকানাগুলো সার্ভিস অ্যাকাউন্টের SPN এট্রিবিউটে নির্দিষ্ট করতে হবে।

Setspn /s HTTP/webportal adatum\iis_service
Setspn /s HTTP/webportal.adatum.loc adatum\iis_service

এভাবে ব্যবহারকারীরা এই ঠিকানাগুলো এক্সেস করলে এই অ্যাকাউন্ট কেরবেরোস টিকিট ডিক্রিপ্ট করে সেশন অথেন্টিকেট করতে পারবে।

অ্যাকাউন্টের SPN সেটিংস যাচাই করতে:

setspn /l iis_service

টিপ। একই SPN যদি বিভিন্ন ডোমেন এন্ট্রি ব্যবহার করে তবে কেরবেরোস সঠিকভাবে কাজ করবে না। নিচের কমান্ড দিয়ে নিশ্চিত করুন যে ডোমেনে ডুপ্লিকেট SPN নেই: setspn –x

পরবর্তী ধাপ হল IIS Application Pool কনফিগার করা যাতে আগে তৈরি অ্যাকাউন্ট থেকে চালু হয়।

আপনার ওয়েবসাইটের Application Pool সিলেক্ট করুন (আমাদের উদাহরণে DefaultAppPool)।

Advanced Settings খুলুন এবং Identity-এ যান।

এটি ApplicationPoolIdentity- থেকে adatum\iis_service-এ পরিবর্তন করুন।

তারপর IIS Manager-এ আপনার ওয়েবসাইটে যিয়ে Configuration Editor সিলেক্ট করুন।

ড্রপডাউন মেনু থেকে system.webServer > security > authentication > windowsAuthentication সিলেক্ট করুন।

useAppPoolCredentials-কে True করে দিন।

এভাবে আমরা IIS-কে ক্লায়েন্ট থেকে কেরবেরোস টিকিট ডিক্রিপ্ট করার জন্য ডোমেন অ্যাকাউন্ট ব্যবহার করার অনুমতি দিয়েছি।

IIS রিসেট করুন:

iisreset

এই কনফিগারেশন সকল ওয়েব ফার্ম সার্ভারে করতে হবে।

কেরবেরোস অথেন্টিকেশন টেস্ট করতে ক্লায়েন্ট ব্রাউজারে https://webportal.adatum.loc খুলুন।

নোট। আমার কেসে IE11-এ একবারে অথেন্টিকেট হয়নি। ট্রাস্টেড ওয়েবসাইটের লিস্টে ঠিকানাটি যোগ করতে হয়েছিল এবং User Authentication → Logon-এ Trusted Zones Sites সেটিংসে Automatic logon with current user name and password নির্দিষ্ট করতে হয়েছিল।

Fiddler ব্যবহার করে HTTP ট্রাফিক মনিটর করে আপনার ওয়েবসাইটে কেরবেরোস অথেন্টিকেশন ব্যবহার হচ্ছে কিনা যাচাই করতে পারেন।

Fiddler চালু করুন এবং ব্রাউজারে টার্গেট ওয়েবসাইট খুলুন। বাম প্যানেলে ওয়েবসাইট এক্সেসের লাইন খুঁজুন। ডান প্যানেলের Inspectors ট্যাবে যান। "Authorization Header (Negotiate) appears to contain a Kerberos ticket" লাইনটি দেখাতে কেরবেরোস ব্যবহার হয়েছে।

  1. IIS ওয়েবসাইটে কেরবেরোস অথেন্টিকেশন কনফিগারেশন

  2. Windows 8 / 2012 সমাধান: “Failure configuring Windows updates. Reverting changes”

  3. হাই পারফরম্যান্স NGINX এবং PHP-FPM ওয়েব সার্ভার কনফিগারেশন

  4. MDADM ব্যবহার করে লিনাক্সে সফটওয়্যার RAID কনফিগারেশন