Basic এবং Digest Authentication

Authentication এবং Authorization - চেরিপাই (CherryPy) - Web Development

238

CherryPy-তে ওয়েব অ্যাপ্লিকেশন তৈরি করার সময় Authentication ব্যবহার করা হয় যাতে ইউজারদের প্রবেশাধিকার নিয়ন্ত্রণ করা যায়। CherryPy দুই ধরনের অথেনটিকেশন সিস্টেম সমর্থন করে: Basic Authentication এবং Digest Authentication। এই দুটি সিস্টেমই ওয়েব অ্যাপ্লিকেশনে নিরাপত্তা ব্যবস্থার জন্য ব্যবহৃত হয়।


১. Basic Authentication

Basic Authentication একটি সরল অথেনটিকেশন পদ্ধতি যেখানে ইউজারনেম এবং পাসওয়ার্ড HTTP হেডারে পাঠানো হয়। এটি সহজ, তবে নিরাপত্তা জন্য SSL/TLS ব্যবহার করা প্রয়োজন, কারণ ডেটা সরাসরি পাঠানো হয়।

Basic Authentication উদাহরণ

CherryPy তে Basic Authentication ব্যবহার করতে হলে cherrypy.tools.auth_basic টুল ব্যবহার করতে হবে।

উদাহরণ কোড:

import cherrypy
from cherrypy.lib import auth_basic

# ইউজারনেম এবং পাসওয়ার্ড সংরক্ষণের জন্য
def check_password(realm, username, password):
    users = {
        "admin": "password123",
        "guest": "guestpassword"
    }
    return users.get(username) == password

class MyApp:
    @cherrypy.expose
    @cherrypy.tools.auth_basic(check_password)  # Basic authentication প্রয়োগ
    def index(self):
        return "স্বাগতম CherryPy অ্যাপে! আপনি সফলভাবে লগইন করেছেন।"

if __name__ == '__main__':
    cherrypy.quickstart(MyApp())

কোড ব্যাখ্যা:

  • check_password ফাংশনটি ইউজারনেম এবং পাসওয়ার্ড যাচাই করে। যদি তারা সঠিক হয়, তবে লগইন অনুমোদন করা হয়।
  • @cherrypy.tools.auth_basic(check_password): এই ডেকোরেটর Basic Authentication প্রয়োগ করে।
  • এই উদাহরণে, ইউজারদের জন্য ইউজারনেম এবং পাসওয়ার্ড তৈরি করা হয়েছে, যা শুধুমাত্র ইউজারনেম এবং পাসওয়ার্ড মিলিয়ে যাচাই করবে।

২. Digest Authentication

Digest Authentication একটি বেশি নিরাপদ অথেনটিকেশন পদ্ধতি, যেখানে ইউজারনেম এবং পাসওয়ার্ডের পরিবর্তে একটি হ্যাশ পাঠানো হয়। এটি Basic Authentication থেকে নিরাপদ, কারণ পাসওয়ার্ড কখনো সরাসরি পাঠানো হয় না। তবে এটি SSL/TLS সমর্থন করতে পারে।

Digest Authentication উদাহরণ

CherryPy তে Digest Authentication ব্যবহার করতে হলে cherrypy.lib.auth_digest টুল ব্যবহার করতে হয়।

উদাহরণ কোড:

import cherrypy
from cherrypy.lib import auth_digest

# ইউজারনেম এবং পাসওয়ার্ড সংরক্ষণের জন্য
def check_password(realm, username, password):
    users = {
        "admin": "password123",
        "guest": "guestpassword"
    }
    return users.get(username) == password

class MyApp:
    @cherrypy.expose
    @cherrypy.tools.auth_digest(check_password)  # Digest authentication প্রয়োগ
    def index(self):
        return "স্বাগতম CherryPy অ্যাপে! আপনি সফলভাবে লগইন করেছেন।"

if __name__ == '__main__':
    cherrypy.quickstart(MyApp())

কোড ব্যাখ্যা:

  • check_password: ইউজারনেম এবং পাসওয়ার্ড যাচাই করার জন্য ব্যবহার করা হয়।
  • @cherrypy.tools.auth_digest(check_password): Digest Authentication প্রয়োগ করার জন্য ব্যবহার করা হয়।
  • Digest Authentication এ, ইউজারনেম এবং পাসওয়ার্ডের হ্যাশ পাঠানো হয়, যা সার্ভার যাচাই করে।

Basic এবং Digest Authentication এর মধ্যে পার্থক্য

বৈশিষ্ট্যBasic AuthenticationDigest Authentication
নিরাপত্তাকম (পাসওয়ার্ড সরাসরি পাঠানো হয়)বেশি (পাসওয়ার্ড হ্যাশ পাঠানো হয়)
পদ্ধতিHTTP হেডারে ইউজারনেম এবং পাসওয়ার্ড পাঠানোপাসওয়ার্ডের হ্যাশ পাঠানো
SSL/TLS প্রয়োজনহ্যাঁ, নিরাপত্তার জন্য SSL/TLS প্রয়োজননা, তবে SSL/TLS আরও নিরাপদ

CherryPy এর সাথে Basic ও Digest Authentication ব্যবহারের সুবিধা

  1. সহজ বাস্তবায়ন: CherryPy-তে এই অথেনটিকেশনগুলো সহজে প্রয়োগ করা যায়।
  2. নিরাপত্তা বৃদ্ধি: Digest Authentication এর মাধ্যমে আপনি পাসওয়ার্ডের হ্যাশ পাঠিয়ে আরও নিরাপত্তা প্রদান করতে পারেন।
  3. ব্যবহারকারী পরিচালনা: Basic এবং Digest Authentication উভয়ই দ্রুত ইউজার অ্যাক্সেস ম্যানেজমেন্ট সক্ষম করে।

CherryPy তে Basic এবং Digest Authentication নিরাপদে এবং সহজভাবে ব্যবহারকারীদের প্রমাণীকরণের জন্য ব্যবহার করা যেতে পারে। আপনি যে কোনো একটি ব্যবহার করে আপনার ওয়েব অ্যাপ্লিকেশন নিরাপদ করতে পারেন। তবে Digest Authentication তুলনামূলকভাবে আরও নিরাপদ, কারণ এতে পাসওয়ার্ড সরাসরি পাঠানো হয় না, হ্যাশ পাঠানো হয়।

Content added By
Promotion

Are you sure to start over?

Loading...