Skill

Access Token (অ্যাক্সেস টোকেন)

ওঅথ (OAuth 2.0) - Computer Programming

530

Access Token হলো একটি নিরাপদ এবং অনুমোদিত টোকেন যা ব্যবহারকারী বা ক্লায়েন্ট অ্যাপ্লিকেশনকে নির্দিষ্ট রিসোর্স বা ডেটাতে অ্যাক্সেস প্রদান করে। OAuth 2.0 প্রোটোকলে, অ্যাক্সেস টোকেনটি অ্যাপ্লিকেশনকে API বা রিসোর্স সার্ভারে প্রয়োজনীয় ডেটা বা পরিষেবা অ্যাক্সেস করার অনুমতি দেয়। অ্যাক্সেস টোকেন সাধারণত নির্দিষ্ট সময়ের জন্য বৈধ থাকে এবং এতে সীমিত অ্যাক্সেসের জন্য অনুমতি থাকে, যেমন পঠন, লেখন, অথবা অন্য কোনো নির্দিষ্ট ধরনের অ্যাক্সেস।


অ্যাক্সেস টোকেনের ভূমিকা

অ্যাক্সেস টোকেন OAuth 2.0 প্রোটোকলের মূল অংশ, যা ব্যবহারকারীর তথ্য বা রিসোর্স অ্যাক্সেস করার জন্য তৃতীয় পক্ষের অ্যাপ্লিকেশনকে অনুমতি দেয়। অ্যাক্সেস টোকেন সাধারণত HTTP রিকোয়েস্ট হেডারে পাঠানো হয় এবং API গুলি এই টোকেন ব্যবহার করে ব্যবহারকারীর অ্যাক্সেসের অনুমতি যাচাই করে।


অ্যাক্সেস টোকেন কিভাবে কাজ করে

  1. অথোরাইজেশন ফ্লো শুরু:
    যখন একটি ক্লায়েন্ট অ্যাপ্লিকেশন OAuth 2.0-এর মাধ্যমে একটি API বা রিসোর্স সার্ভারে অ্যাক্সেস পেতে চায়, প্রথমে অ্যাপ্লিকেশনটি ব্যবহারকারীকে অথোরাইজেশন সার্ভারে রিডিরেক্ট করে। ব্যবহারকারী তাদের অ্যাক্সেস অনুমোদন করলে, অথোরাইজেশন সার্ভার একটি Authorization Code প্রদান করে।
  2. অ্যাক্সেস টোকেন গ্রহণ:
    ক্লায়েন্ট অ্যাপ্লিকেশন এই কোডটি ব্যবহার করে Authorization Server থেকে একটি Access Token প্রাপ্ত করে। এই টোকেনটি API সার্ভার থেকে রিসোর্স অ্যাক্সেস করতে ব্যবহৃত হয়।
  3. অ্যাক্সেস টোকেন ব্যবহার:
    ক্লায়েন্ট অ্যাপ্লিকেশন প্রাপ্ত অ্যাক্সেস টোকেনটি API বা রিসোর্স সার্ভারে রিকোয়েস্ট পাঠানোর জন্য ব্যবহার করে। টোকেন যাচাইয়ের মাধ্যমে সার্ভার ক্লায়েন্টের অ্যাক্সেস অনুমতি প্রদান করে এবং প্রয়োজনীয় ডেটা সরবরাহ করে।
  4. অ্যাক্সেস টোকেনের মেয়াদ শেষ:
    সাধারণত, অ্যাক্সেস টোকেন সীমিত সময়ের জন্য বৈধ থাকে। একবার টোকেনের মেয়াদ শেষ হলে, ক্লায়েন্টকে নতুন অ্যাক্সেস টোকেন প্রাপ্তির জন্য একটি Refresh Token ব্যবহার করতে হতে পারে।

অ্যাক্সেস টোকেনের বৈশিষ্ট্য

  1. টোকেনের মেয়াদ:
    অ্যাক্সেস টোকেনের একটি expiry time থাকে, অর্থাৎ এটি একটি নির্দিষ্ট সময় পরে অকার্যকর হয়ে যায়। মেয়াদ শেষ হওয়ার পর, ক্লায়েন্টকে নতুন টোকেন প্রাপ্তির জন্য রিফ্রেশ টোকেন ব্যবহার করতে হবে।
  2. স্কোপ (Scope):
    অ্যাক্সেস টোকেনের একটি scope থাকে, যা নির্ধারণ করে যে, কোন ডেটা বা রিসোর্স অ্যাক্সেস করতে পারবে। উদাহরণস্বরূপ, শুধুমাত্র read অথবা write অনুমতি দেয়া হতে পারে।
  3. ব্যবহারকারীর অনুমতি:
    অ্যাক্সেস টোকেনটি শুধুমাত্র সেই অ্যাপ্লিকেশনগুলির জন্য বৈধ, যেগুলি ব্যবহারকারী অনুমোদন করেছে। এটি ব্যবহারকারীর সম্মতি ভিত্তিতে সীমিত থাকে এবং কেবলমাত্র নির্দিষ্ট রিসোর্সগুলিতে অ্যাক্সেস প্রদান করে।
  4. Bearer Token:
    অ্যাক্সেস টোকেন সাধারণত Bearer Token হিসেবে ব্যবহৃত হয়, যার মানে হলো যে কেউ টোকেনটি ধারণ করে, সে সেই রিসোর্স অ্যাক্সেস করতে সক্ষম হবে যতক্ষণ না টোকেনটির মেয়াদ শেষ হয়।

অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন (Refresh Token)

  • Access Token: এটি একটি শর্ট-লাইভ টোকেন যা শুধুমাত্র একটি নির্দিষ্ট সময় পর্যন্ত বৈধ থাকে। একবার টোকেনটি মেয়াদ শেষ হয়ে গেলে, ক্লায়েন্টকে আবার Authorization Server-এ রিকোয়েস্ট পাঠাতে হয়।
  • Refresh Token: এটি সাধারণত দীর্ঘ সময়ের জন্য বৈধ থাকে এবং ব্যবহারকারীকে পুনরায় লগ ইন করার প্রয়োজন ছাড়াই একটি নতুন অ্যাক্সেস টোকেন পাওয়ার জন্য ব্যবহৃত হয়। এটি ব্যবহারকারীর অনুমতি দিয়ে নতুন অ্যাক্সেস টোকেন জেনারেট করার জন্য Authorization Server-এ পাঠানো হয়।

অ্যাক্সেস টোকেনের নিরাপত্তা

  1. টোকেন সুরক্ষা:
    অ্যাক্সেস টোকেনটি HTTPS (SSL/TLS) ব্যবহারের মাধ্যমে ট্রান্সমিট করা উচিত, যাতে টোকেনটি ট্রান্সমিশন চলাকালীন চুরি না হয়। এই টোকেনগুলি প্রায়শই HTTP হেডারের মধ্যে পাঠানো হয়, এবং ম্যান ইন দ্য মিডল (MITM) অ্যাটাকের বিরুদ্ধে সুরক্ষিত থাকে।
  2. Token Revocation:
    অ্যাক্সেস টোকেন যদি কখনো চুরি হয়ে যায় বা ব্যবহারকারী টোকেন বাতিল করতে চায়, তবে Token Revocation প্রক্রিয়া ব্যবহার করা যেতে পারে। এটি ব্যবহারকারীর নিরাপত্তা নিশ্চিত করে।
  3. অ্যাক্সেস সীমাবদ্ধকরণ:
    অ্যাক্সেস টোকেনটি সাধারণত নির্দিষ্ট scope বা অনুমতির সাথে সীমাবদ্ধ থাকে, যাতে শুধুমাত্র প্রয়োজনীয় ডেটাতে অ্যাক্সেস দেওয়া হয়। এর মাধ্যমে টোকেনটি কখনও নির্ধারিত সীমার বাইরে ব্যবহার করা যায় না।

অ্যাক্সেস টোকেনের ব্যবহার উদাহরণ

  1. গুগল API:
    গুগল API ব্যবহারকারী গুগল অ্যাকাউন্টের ডেটা অ্যাক্সেস করতে OAuth 2.0-এর মাধ্যমে অ্যাক্সেস টোকেন প্রাপ্ত করে। এই টোকেন ব্যবহার করে ব্যবহারকারীর গুগল ড্রাইভ, গুগল ক্যালেন্ডার বা অন্য সেবা অ্যাক্সেস করা যায়।
  2. ফেসবুক API:
    ফেসবুক ব্যবহারকারীর অ্যাকাউন্টের ডেটা, পোস্ট এবং প্রোফাইল তথ্য অ্যাক্সেস করার জন্য OAuth 2.0-এর মাধ্যমে অ্যাক্সেস টোকেন প্রদান করে।
  3. টুইটার API:
    টুইটার API-এর মাধ্যমে অ্যাক্সেস টোকেন ব্যবহার করে ব্যবহারকারী টুইট, ফলোয়ার্স, বা অন্যান্য টুইটার ডেটা অ্যাক্সেস করতে পারে।

সারাংশ

অ্যাক্সেস টোকেন হল একটি গুরুত্বপূর্ণ নিরাপত্তা উপাদান যা OAuth 2.0 প্রোটোকলে ব্যবহারকারীর রিসোর্স বা ডেটাতে অ্যাক্সেস প্রদান করে। এটি ব্যবহারকারীর সম্মতি, সীমিত সময়ের জন্য অ্যাক্সেস, এবং নির্দিষ্ট স্কোপের মাধ্যমে ডেটা অ্যাক্সেস নিয়ন্ত্রণ করে। অ্যাক্সেস টোকেনের ব্যবহারে নিরাপত্তা ও গোপনীয়তা নিশ্চিত করা হয় এবং এটি API গুলিতে নিরাপদ যোগাযোগের একটি মৌলিক অংশ।

Content added By

Access Token হলো একটি নিরাপদ টোকেন যা ব্যবহারকারীর রিসোর্স অ্যাক্সেস করতে ব্যবহৃত হয়। OAuth 2.0 প্রোটোকলে, Access Token ব্যবহারকারীর বা অ্যাপ্লিকেশনের পক্ষ থেকে অনুমোদিত রিসোর্স বা ডেটার অ্যাক্সেস নিশ্চিত করার জন্য একটি উপায়। এটি সাধারণত নির্দিষ্ট সময় এবং সীমিত অনুমতি (scope) দিয়ে সার্ভার বা API-এর সাথে যোগাযোগের জন্য প্রদান করা হয়। Access Token সাধারণত সার্ভারের প্রমাণীকরণ এবং অথোরাইজেশন প্রক্রিয়া সম্পন্ন করার পর প্রদান করা হয়, যা ক্লায়েন্ট অ্যাপ্লিকেশনকে নির্দিষ্ট রিসোর্সে অ্যাক্সেস প্রদান করে।


Access Token এর ভূমিকা

  1. অথেনটিকেশন (Authentication) এবং অথোরাইজেশন (Authorization):
    Access Token ব্যবহারকারী বা ক্লায়েন্ট অ্যাপ্লিকেশনকে রিসোর্স সার্ভারের সাথে যোগাযোগ করতে অনুমতি দেয়। এটি ক্লায়েন্টকে প্রমাণ করে যে তারা সংশ্লিষ্ট রিসোর্স বা ডেটার অ্যাক্সেসের জন্য অনুমতি পেয়েছে। এটি নিশ্চিত করে যে অ্যাপ্লিকেশনটি আইনগতভাবে এবং বৈধভাবে ব্যবহারকারীর পক্ষ থেকে তথ্য অ্যাক্সেস করছে।
  2. নির্দিষ্ট সময়ের জন্য বৈধ (Time-bound validity):
    সাধারণত, Access Token একটি নির্দিষ্ট সময়ের জন্য বৈধ থাকে (যেমন, ১ ঘণ্টা)। একবার টোকেনের মেয়াদ শেষ হয়ে গেলে, ক্লায়েন্ট অ্যাপ্লিকেশনটি আর অ্যাক্সেস পায় না। এজন্য ব্যবহারকারীর পরিচিতি এবং নিরাপত্তা অব্যাহত রাখতে Refresh Token ব্যবহার করা হয়, যা নতুন টোকেন প্রাপ্তির জন্য সহায়ক।
  3. পাঠানোর সহজ উপায় (Simplified transmission):
    Access Token সাধারণত HTTP হেডারে পাঠানো হয়, যা সিস্টেমের মধ্যে ডেটা পাঠানোর একটি সহজ এবং কার্যকরী উপায়। উদাহরণস্বরূপ:

    Authorization: Bearer ACCESS_TOKEN
  4. Scope এবং সীমিত অনুমতি (Scope and limited permissions):
    Access Token সাধারণত সীমিত স্কোপের মাধ্যমে প্রদান করা হয়, যা স্পষ্টভাবে নির্দিষ্ট করে দেয় যে অ্যাপ্লিকেশনটি কেবল নির্দিষ্ট রিসোর্স অ্যাক্সেস করতে পারবে। এর মাধ্যমে ব্যবহারকারীর তথ্য এবং ডেটার সুরক্ষা নিশ্চিত করা হয়, কারণ অ্যাপ্লিকেশনটির অনুমতি দেওয়া হয় শুধুমাত্র প্রয়োজনীয় স্কোপের মধ্যে সীমাবদ্ধ থাকার জন্য।
  5. API গুলির নিরাপত্তা (API Security):
    Access Token API এবং সার্ভিসগুলির নিরাপত্তা নিশ্চিত করতে ব্যবহৃত হয়। API গুলি শুধুমাত্র একটি বৈধ Access Token যাচাই করার পরই ব্যবহারকারী বা অ্যাপ্লিকেশনকে রিসোর্স অ্যাক্সেসের অনুমতি দেয়। এর মাধ্যমে অননুমোদিত অ্যাক্সেস রোধ করা যায়।

Access Token এর উদাহরণ

যেমন, একটি ক্লায়েন্ট অ্যাপ্লিকেশন যদি ব্যবহারকারীর ডেটা অ্যাক্সেস করতে চায় (যেমন, ব্যবহারকারীর প্রোফাইল), তবে এটি প্রথমে একটি Access Token পাবে। এটি পরবর্তীতে API এর মাধ্যমে ব্যবহারকারীর তথ্য পাওয়ার জন্য ব্যবহৃত হবে। উদাহরণস্বরূপ:

API রিকোয়েস্ট:

GET https://api.example.com/user/profile
Authorization: Bearer ACCESS_TOKEN

এখানে, ACCESS_TOKEN একটি বৈধ টোকেন যা API সার্ভারে পাঠানো হচ্ছে। API সার্ভার তখন Access Token যাচাই করে এবং যদি এটি বৈধ হয়, তাহলে ব্যবহারকারীর প্রোফাইল তথ্য প্রদান করবে।


Access Token এর সুরক্ষা এবং সতর্কতা

  1. সীমিত সময়ের জন্য বৈধতা:
    Access Token এর মেয়াদ সীমিত থাকে, যা এটি চুরি হলে তার দ্রুত নিষ্ক্রিয় হওয়ার সুবিধা দেয়। তাই এটি নিরাপদ রাখতে তৎকালীন ব্যবস্থাপনা প্রয়োজন।
  2. Bearer Token:
    Access Token সাধারণত Bearer Token হিসেবে ব্যবহৃত হয়, যার মানে হল যে টোকেনটি কোন ব্যক্তি বা সিস্টেমের মালিকানায় থাকবে না, বরং যেকোনো পক্ষ যেটি টোকেনটি পাবে, সেটি ব্যবহার করতে পারবে। তাই এটি সুরক্ষিতভাবে পরিবহন করা উচিত (যেমন, HTTPS ব্যবহারের মাধ্যমে)।
  3. HTTPS এর মাধ্যমে প্রেরণ:
    Access Token সাধারণত HTTPS প্রোটোকলের মাধ্যমে সার্ভারে পাঠানো হয়, যা ডেটার এনক্রিপশন নিশ্চিত করে এবং এটি ম্যান-ইন-দ্য-মিডল (MITM) আক্রমণ থেকে সুরক্ষিত রাখে।
  4. Token Revocation:
    যদি কোনও ব্যবহারকারী বা অ্যাপ্লিকেশন তাদের অনুমতি বাতিল করে, তাহলে Access Token বাতিল (revoke) করা যেতে পারে, যা পরবর্তীতে সেই অ্যাপ্লিকেশনকে অ্যাক্সেস বন্ধ করে দেয়।

সারসংক্ষেপ

Access Token OAuth 2.0 প্রোটোকলে একটি অত্যন্ত গুরুত্বপূর্ণ উপাদান। এটি ক্লায়েন্ট অ্যাপ্লিকেশনকে অ্যাক্সেস করার অনুমতি দেয় এবং একটি নির্দিষ্ট সময়ের জন্য বৈধ থাকে। এটি API সার্ভিস এবং অন্যান্য সিস্টেমগুলির সাথে নিরাপদ যোগাযোগ এবং তথ্যের অ্যাক্সেস প্রদান করতে ব্যবহৃত হয়। Access Token ব্যবহারকারীর তথ্য সুরক্ষা এবং নিরাপত্তা নিশ্চিত করে, এবং এটি সঠিকভাবে পরিচালনা না করা হলে সুরক্ষা ঝুঁকি সৃষ্টি করতে পারে, তাই এটি HTTPS এবং অন্যান্য নিরাপত্তা ব্যবস্থা মাধ্যমে পরিবহন করা উচিত।

Content added By

OAuth 2.0 প্রোটোকলটিতে Token হল একটি সুরক্ষিত এবং সহজ উপায়ের মাধ্যম যা ক্লায়েন্ট অ্যাপ্লিকেশনকে রিসোর্সে অ্যাক্সেসের অনুমতি দেয়। মূলত, দুটি ধরণের টোকেন ব্যবহৃত হয়: JWT (JSON Web Token) এবং Bearer Token। উভয়ই বিভিন্ন ধরনের অথোরাইজেশন এবং অথেনটিকেশন ব্যবস্থায় ব্যবহৃত হয় এবং তাদের নিজস্ব স্ট্রাকচার এবং ফর্ম্যাট রয়েছে।


1. Bearer Token

Bearer Token একটি সাধারণ টোকেন ফরম্যাট যা সাধারণত অ্যাক্সেস টোকেন হিসেবে ব্যবহৃত হয়। এটি বিশেষ করে OAuth 2.0-এ ব্যবহৃত হয়, যেখানে অ্যাক্সেস টোকেনের মাধ্যমে ব্যবহারকারী নির্দিষ্ট রিসোর্স অ্যাক্সেস করার অনুমতি পায়।

Bearer Token এর স্ট্রাকচার:

  • Bearer Token-এর মূল স্ট্রাকচার সাধারণত একটি একক স্ট্রিং (টোকেন) থাকে। এটি সাধারণত HTTP Authorization header এর মাধ্যমে পাঠানো হয়।
  • Bearer Token এর মধ্যে কোন বিশেষ স্ট্রাকচার বা ইনকোডিং ফরম্যাট থাকে না, তবে এটি একবার প্রাপ্ত হলে সহজেই API রিকোয়েস্টে হেডারে Authorization ফিল্ডে প্রদান করা যায়।

উদাহরণ:
HTTP হেডারে Bearer Token পাঠানোর উদাহরণ:

Authorization: Bearer <access_token>

এখানে <access_token> হল Bearer Token যা প্রাপ্ত হয়েছে।

Bearer Token এর বৈশিষ্ট্য:

  • সহজ এবং সরল: Bearer Token ব্যবহার করতে খুবই সহজ, কারণ এটি শুধুমাত্র একটি টোকেন স্ট্রিং যা API রিকোয়েস্টে পাঠানো হয়।
  • নিরাপত্তা: Bearer Token সুরক্ষিতভাবে HTTPS মাধ্যমে পাঠানো উচিত, কারণ যদি এটি HTTP এর মাধ্যমে পাঠানো হয়, তবে টোকেনটি সহজেই চুরি হতে পারে।
  • সীমিত সময়ের জন্য বৈধ: Bearer Token সাধারণত একটি নির্দিষ্ট সময়ের জন্য বৈধ থাকে এবং তারপরে এক্সপায়ার হয়ে যায়।

2. JWT (JSON Web Token)

JWT হলো একটি স্ট্যান্ডার্ড যা JSON অবজেক্ট হিসেবে তথ্য সংরক্ষণ এবং নিরাপদভাবে এক্সচেঞ্জ করতে ব্যবহৃত হয়। এটি একটি URL-safe, Base64-encoded স্ট্রিং যা দুটি পক্ষের মধ্যে সুরক্ষিতভাবে তথ্য আদান-প্রদান করতে ব্যবহৃত হয়।

JWT এর স্ট্রাকচার:

JWT তিনটি অংশে বিভক্ত:

  1. Header (হেডার):

    • হেডারটি সাধারণত দুটি অংশে থাকে:
      • alg: যে এলগরিদম দিয়ে সাইন করা হয়েছে (যেমন HMAC SHA256, RSA ইত্যাদি)।
      • typ: সাধারণত "JWT"।

    উদাহরণ:

    {
      "alg": "HS256",
      "typ": "JWT"
    }
  2. Payload (পেলোড):

    • Payload টোকেনের মূল তথ্য ধারণ করে। এটি সাধারণত Claims নামে পরিচিত। Claims হতে পারে:
      • Registered Claims: যেমন iss (issuer), exp (expiry), sub (subject) ইত্যাদি।
      • Public Claims: সাধারণত উন্মুক্ত ডেটা।
      • Private Claims: ক্লায়েন্টের জন্য নির্দিষ্ট ডেটা।

    উদাহরণ:

    {
      "sub": "1234567890",
      "name": "John Doe",
      "iat": 1516239022
    }
  3. Signature (সিগনেচার):

    • JWT এর সিগনেচার অংশ টোকেনের স্বচ্ছতা এবং অখণ্ডতা নিশ্চিত করে। সিগনেচার তৈরি করতে, হেডার এবং পেলোড Base64Url এ এনকোড করা হয় এবং সেগুলির সাথে সিক্রেট কী ব্যবহার করে একটি হ্যাশ ফাংশন চালানো হয়।

    উদাহরণ:

    HMACSHA256(
      base64UrlEncode(header) + "." +
      base64UrlEncode(payload),
      secret)

JWT এর স্ট্রাকচার উদাহরণ:

একটি সম্পূর্ণ JWT তিনটি অংশে বিভক্ত থাকে, যা একটি পিরিয়ড (".") দ্বারা আলাদা করা হয়:

<base64Url-encoded header>.<base64Url-encoded payload>.<base64Url-encoded signature>

উদাহরণ:

eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJzdWIiOiAiMTIzNDU2Nzg5MCIsICJuYW1lIjogIkpvaG4gRG9lIiwgImlhdCI6IDE1MTYyMzkwMjJ9.O6D6v6Up8vKK6Yd0gH63gqB9Fz-0XggtqTRlFdAfyXw

JWT এর বৈশিষ্ট্য:

  • স্বতন্ত্র এবং সুরক্ষিত: JWT নিজেই তথ্য ধারণ করে এবং সিগনেচার দিয়ে নিরাপদ থাকে, তাই এটি মধ্যবর্তী কোন সার্ভার ছাড়াই তথ্য প্রমাণীকরণে ব্যবহার করা যায়।
  • সহজ এবং দ্রুত: এটি URL-safe এবং কমপ্লেক্স কোন ডেটা স্টোরেজ ছাড়াই API রিকোয়েস্টে ব্যবহার করা যেতে পারে।
  • স্টেটলেস: JWT-তে কোনো স্টোরেজ প্রয়োজন হয় না, কারণ এটি সমস্ত তথ্য এনকোড করে এবং এতে কোন সেশনের তথ্য রাখার প্রয়োজন হয় না।

Bearer Token vs JWT

বৈশিষ্ট্যBearer TokenJWT
স্ট্রাকচারএকটি একক স্ট্রিং টোকেনতিনটি অংশে বিভক্ত: Header, Payload, Signature
প্রমাণীকরণসরাসরি অ্যাক্সেস টোকেন ব্যবহার করা হয়সিগনেচার দ্বারা নিরাপত্তা নিশ্চিত করা হয়
নিরাপত্তাHTTPS প্রোটোকল দ্বারা সুরক্ষিতসিগনেচারের মাধ্যমে সুরক্ষিত
স্টেটলেসস্টেটলেস নয়স্টেটলেস, কোনো স্টোরেজ প্রয়োজন হয় না
ব্যবহারসাধারণত অ্যাক্সেস টোকেন হিসাবে ব্যবহৃততথ্য এবং স্বাক্ষরের জন্য ব্যবহৃত

সারাংশ

Bearer Token একটি সরল এবং সহজ টোকেন ফরম্যাট যা সাধারণত OAuth 2.0-এ ব্যবহৃত হয়, যেখানে একক স্ট্রিং হিসেবে টোকেন পাঠানো হয়। এটি নিরাপদ হতে হলে HTTPS এর মাধ্যমে পাঠানো উচিত। অন্যদিকে, JWT (JSON Web Token) একটি স্ট্যান্ডার্ড ফরম্যাট যা তিনটি অংশে বিভক্ত থাকে এবং এর সিগনেচারের মাধ্যমে নিরাপত্তা নিশ্চিত করা হয়। JWT সাধারণত সুরক্ষিত তথ্য এক্সচেঞ্জ করতে ব্যবহৃত হয় এবং এটি স্টেটলেস, URL-safe এবং সিগনেচারের মাধ্যমে নিরাপদ।

Content added By

OAuth 2.0-এ Access Token একটি সুরক্ষিত কী যা ব্যবহারকারী বা ক্লায়েন্ট অ্যাপ্লিকেশনকে নির্দিষ্ট রিসোর্স বা ডেটাতে অ্যাক্সেসের অনুমতি দেয়। একবার Access Token পাওয়ার পরে, এটি নির্দিষ্ট সময়ের জন্য বৈধ থাকে এবং একটি সময় পরে expire (মেয়াদ শেষ) হয়ে যায়। Access Token এর মেয়াদ এবং Expiration ব্যবস্থাপনা গুরুত্বপূর্ণ কারণ এটি নিরাপত্তা বজায় রাখতে সহায়ক এবং অবাঞ্ছিত অ্যাক্সেস থেকে সিস্টেম রক্ষা করে।


Access Token এর মেয়াদ (Lifetime)

Access Token এর মেয়াদ সাধারণত short-lived হয়, অর্থাৎ এটি সীমিত সময়ের জন্য বৈধ থাকে, যা একাধিক কারণে সুরক্ষা বাড়াতে সহায়ক।

সাধারণত Access Token এর মেয়াদে এই দুইটি বিষয় প্রভাব ফেলে:

  1. Expires In (মেয়াদের সময়):
    একবার Access Token জেনারেট হলে, সেটি নির্দিষ্ট সময়ের জন্য বৈধ থাকে। এই সময়কাল সাধারণত 3600 সেকেন্ড (1 ঘন্টা) থেকে শুরু করে আরো দীর্ঘ সময় হতে পারে (যেমন 24 ঘণ্টা বা আরও বেশি)।
  2. Token Expiration Time:
    একটি Access Token এর মেয়াদ শেষ হলে, এটি আর বৈধ থাকে না এবং যদি অ্যাপ্লিকেশনটি আরও অ্যাক্সেস চায়, তবে এটি আবার নতুন Access Token পেতে হবে।

Access Token Expiration (Access Token মেয়াদ শেষ হওয়া)

Access Token এর মেয়াদ শেষ হলে, এটি আর সার্ভার দ্বারা গ্রহণযোগ্য নয় এবং সেই অ্যাক্সেস করতে গেলে সিস্টেম Unauthorized (অননুমোদিত) হিসেবে রেসপন্স করবে। এটি নিরাপত্তার জন্য খুবই গুরুত্বপূর্ণ, কারণ সিস্টেমে অব্যাহত অ্যাক্সেসের ঝুঁকি কমে যায়।

Access Token Expiration এর পরে, দুটি মূল পদ্ধতি থাকতে পারে:

  1. Refresh Token:
    যদি Access Token এর মেয়াদ শেষ হয়ে যায়, তবে Refresh Token ব্যবহার করে ক্লায়েন্ট আবার নতুন Access Token পেতে পারে। Refresh Token সাধারণত দীর্ঘমেয়াদী এবং Access Token পুনঃপ্রাপ্তি জন্য ব্যবহার হয়। এটি মূলত "long-lived" এবং Access Token এর মেয়াদ শেষে ব্যবহারকারীর পুনঃঅথেনটিকেশন ছাড়াই অ্যাক্সেস পুনরায় চালু করতে সহায়তা করে।

    Refresh Token ব্যবহার করার উদাহরণ:

    POST https://authorization-server.com/oauth/token
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=refresh_token&
    refresh_token=REFRESH_TOKEN&
    client_id=YOUR_CLIENT_ID&
    client_secret=YOUR_CLIENT_SECRET
    • refresh_token: এটি ঐ টোকেন যা ব্যবহারকারী আগেই প্রাপ্ত করেছিল।
    • grant_type: refresh_token হিসাবে নির্ধারণ করতে হবে।

    রেসপন্সে, নতুন Access Token পাওয়া যাবে:

    {
        "access_token": "NEW_ACCESS_TOKEN",
        "token_type": "bearer",
        "expires_in": 3600
    }
  2. Reauthentication:
    যদি Refresh Token উপস্থিত না থাকে বা Refresh Token এর মেয়াদও শেষ হয়ে যায়, তবে Client আবার Authorization Server-এ Authentication এবং Authorization প্রক্রিয়া সম্পন্ন করতে হবে।

Access Token এর Expiration Time সেট করা

OAuth 2.0 এর Access Token এর মেয়াদ এবং Expiration সময় সাধারণত Authorization Server দ্বারা কনফিগার করা হয়। এটি বিভিন্ন সিস্টেম বা অ্যাপ্লিকেশন অনুযায়ী পরিবর্তিত হতে পারে।

যেমন:

  • Google OAuth 2.0:
    গুগল সাধারণত 1 ঘণ্টার জন্য Access Token মেয়াদ নির্ধারণ করে। তবে, গুগল ব্যবহারকারীদেরকে Refresh Token ব্যবহার করে পুনরায় Access Token পেতে সুবিধা দেয়।
  • Facebook OAuth 2.0:
    ফেসবুকের Access Token সাধারণত 1 ঘণ্টা থেকে 60 দিন পর্যন্ত বৈধ থাকতে পারে এবং Refresh Token এটির মেয়াদ বাড়াতে সহায়তা করে।
  • Custom OAuth 2.0 Servers:
    কিছু কাস্টম OAuth 2.0 সিস্টেম বা API বিভিন্ন নির্দিষ্ট সময়কাল সেট করে থাকতে পারে, যেমন 15 মিনিট, 1 ঘণ্টা, 24 ঘণ্টা বা তারও বেশি।

Access Token মেয়াদ শেষ হওয়ার পর কী ঘটবে?

  1. Unauthorized Error:
    যখন Access Token এর মেয়াদ শেষ হয়ে যায়, তখন Resource Server তে Unauthorized (HTTP 401) এরর কোড আসবে এবং ক্লায়েন্টকে নতুন Access Token পেতে বলবে।
  2. Renewing the Access Token:
    যদি Refresh Token উপস্থিত থাকে, তবে Access Token নবায়ন করার জন্য Refresh Token ব্যবহার করতে হবে। যদি না থাকে, তবে ব্যবহারকারীকে আবার লগ ইন বা অথেনটিকেট করতে হবে।

সারাংশ

  • Access Token এর মেয়াদ একটি নির্দিষ্ট সময়ের জন্য সীমাবদ্ধ থাকে এবং এর মেয়াদ শেষ হলে Unauthorized রেসপন্স পাওয়া যায়।
  • Refresh Token-এর মাধ্যমে Access Token নবায়ন করা যায়, যাতে ব্যবহারকারী পুনরায় অথেনটিকেশন ছাড়াই নতুন Access Token পেতে পারেন।
  • Access Token Expiration একটি সুরক্ষা বৈশিষ্ট্য, যা অবাঞ্ছিত অ্যাক্সেস থেকে সিস্টেম রক্ষা করতে সাহায্য করে।
Content added By

Token Revocation হলো একটি প্রক্রিয়া যার মাধ্যমে একটি বৈধ Access Token বা Refresh Token বাতিল করা হয়, যাতে কোনো অ্যাপ্লিকেশন বা ব্যবহারকারী আর তা ব্যবহার করে রিসোর্স অ্যাক্সেস করতে না পারে। OAuth 2.0 প্রোটোকলে, যখন একটি টোকেন বাতিল করা হয়, তখন সেটি অবৈধ হয়ে যায় এবং ভবিষ্যতে ব্যবহার করা সম্ভব নয়।

Token Revocation প্রক্রিয়া নিরাপত্তার জন্য অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি নিশ্চিত করে যে কোনো টোকেন যদি ভুল হাতে চলে যায় বা ব্যবহারকারীর অনুমতি বাতিল করা হয়, তাহলে সেই টোকেনটির মাধ্যমে আর অ্যাক্সেস করা যাবে না। এটি একটি নিরাপত্তা ব্যবস্থা হিসেবে কাজ করে যা ডেটা বা অ্যাপ্লিকেশনকে অননুমোদিত অ্যাক্সেস থেকে রক্ষা করে।


Token Revocation প্রক্রিয়া

  1. Access Token Revocation:
    যখন ব্যবহারকারী তার অনুমতি বাতিল করেন বা কোনো অ্যাপ্লিকেশন সন্দেহজনক মনে হয়, তখন ব্যবহারকারী বা সিস্টেম প্রশাসক Access Token বাতিল করতে পারে। একবার Access Token বাতিল হলে, কোনো ক্লায়েন্ট এই টোকেনের মাধ্যমে রিসোর্স অ্যাক্সেস করতে পারবে না।

    Access Token Revocation Request:
    ক্লায়েন্ট একটি POST রিকোয়েস্ট পাঠাতে পারে, যেখানে token প্যারামিটার হিসেবে অ্যাক্সেস টোকেন প্রেরণ করা হয়।

    উদাহরণ:

    POST /revoke
    Host: authorization-server.com
    Content-Type: application/x-www-form-urlencoded
    
    token=ACCESS_TOKEN

    Response:

    {
      "status": "success"
    }
  2. Refresh Token Revocation:
    Refresh Token ব্যবহারকারীর নতুন Access Token প্রাপ্তির জন্য ব্যবহৃত হয়, তাই যদি Refresh Token বাতিল করা হয়, তাহলে নতুন Access Token আর প্রদান করা হবে না। এটি সাধারণত Authorization Server-এ রিকোয়েস্ট পাঠিয়ে করা হয়।

    Refresh Token Revocation Request:

    POST /revoke
    Host: authorization-server.com
    Content-Type: application/x-www-form-urlencoded
    
    token=REFRESH_TOKEN

    Response:

    {
      "status": "success"
    }

Token Revocation এর প্রয়োজনীয়তা

  1. নিরাপত্তা:
    একবার একটি Access Token বা Refresh Token চুরি হয়ে গেলে, সেই টোকেনটি ব্যবহার করে অননুমোদিত ব্যক্তি রিসোর্স অ্যাক্সেস করতে পারে। Token Revocation নিশ্চিত করে যে, কোনো টোকেন যদি নিরাপত্তার জন্য ঝুঁকিপূর্ণ হয়ে যায়, তখন তা বাতিল করা যাবে এবং আর কোনো অ্যাক্সেস প্রদান করা হবে না।
  2. ব্যবহারকারীর নিয়ন্ত্রণ:
    ব্যবহারকারী তাদের টোকেন বাতিল করতে পারেন যদি তারা কোনো অ্যাপ্লিকেশন বা সেবা ব্যবহার বন্ধ করতে চান বা তাদের তথ্যের অ্যাক্সেস সীমিত করতে চান। এটি ব্যবহারকারীকে তাদের তথ্যের উপরে পূর্ণ নিয়ন্ত্রণ প্রদান করে, এবং ব্যবহারকারী যদি তাদের অনুমতি ফিরিয়ে নেন, তবে অ্যাপ্লিকেশন আর অ্যাক্সেস করতে পারবে না।
  3. অ্যাপ্লিকেশন এবং সেবা ম্যানেজমেন্ট:
    যদি একটি অ্যাপ্লিকেশন সন্দেহজনক কার্যক্রম দেখায় বা ব্যবহারকারীর অনুমতি বাতিল করতে হয়, তবে টোকেনটি বাতিল করা জরুরি। এটি নিশ্চিত করে যে, অ্যাপ্লিকেশনটি কোনো অবৈধভাবে অ্যাক্সেস করতে না পারে। উদাহরণস্বরূপ, যদি ব্যবহারকারী কোনো অ্যাপ্লিকেশন ডিলিট করে দেন বা তাদের অনুমতি বাতিল করেন, তবে সেই অ্যাপ্লিকেশনকে আর কোনো ডেটা অ্যাক্সেস করার সুযোগ দেওয়া হবে না।
  4. সার্ভিসের অবস্থা পরিবর্তন:
    যদি একটি সার্ভিস বা অ্যাপ্লিকেশন তার অবস্থার পরিবর্তন করে এবং ব্যবহারকারীর তথ্য অ্যাক্সেস বন্ধ করার প্রয়োজন হয়, তবে টোকেন রিভোকেশন অত্যন্ত গুরুত্বপূর্ণ। উদাহরণস্বরূপ, যদি কোনো অ্যাপ্লিকেশন উন্নয়ন বা পরিবর্তন করে এবং কোনো বৈশিষ্ট্য বন্ধ হয়ে যায়, তবে রিভোকেশন নিশ্চিত করতে হবে যাতে ব্যবহারকারীর পুরনো অনুমতিগুলি আর কার্যকর না থাকে।
  5. Compliance with Privacy Regulations:
    টোকেন রিভোকেশন ব্যবহারকারীর ডেটা সুরক্ষা এবং গোপনীয়তা রক্ষায় সহায়ক। বেশ কিছু গোপনীয়তা আইন এবং প্রবিধান (যেমন GDPR) ব্যবহারকারীর তথ্য সংরক্ষণ এবং ব্যবহারের ক্ষেত্রে বিশেষ শর্তাদি আরোপ করে, যেখানে ব্যবহারকারীর চাহিদা অনুযায়ী তাদের তথ্য ব্যবহারের অনুমতি বাতিল করা প্রয়োজন হতে পারে। টোকেন রিভোকেশন এই প্রক্রিয়াকে সহজতর করে।
  6. সিস্টেমের স্থিতিশীলতা এবং কার্যক্ষমতা:
    যদি কোনো অ্যাপ্লিকেশন বা সিস্টেমের মধ্যে অবৈধ অ্যাক্সেসের চেষ্টা করা হয়, তাহলে সিস্টেম প্রশাসক বা নিরাপত্তা দল তা দ্রুত শনাক্ত করতে পারেন এবং সেই টোকেনটি বাতিল করতে পারেন, যাতে সিস্টেমের স্থিতিশীলতা এবং নিরাপত্তা বজায় থাকে।

Token Revocation-এ সমস্যা এবং সমাধান

  • সমস্যা:
    কখনও কখনও টোকেন রিভোকেশন প্রক্রিয়ায় বিলম্ব হতে পারে, বিশেষত যখন ডিস্ট্রিবিউটেড সিস্টেম বা কুকারি ক্যাশ ব্যবহৃত হয়। এই কারণে রিভোকেশন সিস্টেম সঠিকভাবে কাজ না করতে পারে।
  • সমাধান:
    কিছু OAuth 2.0 প্রোটোকল অন্তর্ভুক্ত করে revocation endpoint এর মাধ্যমে একাধিক ক্লায়েন্টকে একসাথে টোকেন বাতিল করার অনুমতি দেয়, যাতে দ্রুত এবং কার্যকরভাবে টোকেন বাতিল করা যায়।

সারাংশ

Token Revocation একটি গুরুত্বপূর্ণ নিরাপত্তা ব্যবস্থা যা টোকেনের অবৈধ বা অননুমোদিত ব্যবহার রোধ করে এবং ব্যবহারকারীকে তাদের তথ্যের ওপর নিয়ন্ত্রণ প্রদান করে। এটি OAuth 2.0 প্রোটোকলের মাধ্যমে অ্যাপ্লিকেশনগুলির সুরক্ষা, ব্যবহারকারীর নিয়ন্ত্রণ, এবং আইনগত চাহিদা মেটাতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...