সর্বোত্তম অনুশীলন

এই পৃষ্ঠায় OAuth 2.0 ইন্টিগ্রেশনের জন্য কিছু সাধারণ সেরা অনুশীলন সম্পর্কে আলোচনা করা হয়েছে। আপনার অ্যাপ্লিকেশনের ধরন এবং ডেভেলপমেন্ট প্ল্যাটফর্মের জন্য নির্দিষ্ট কোনো নির্দেশনার পাশাপাশি এই সেরা অনুশীলনগুলোও বিবেচনা করুন। এছাড়াও, আপনার অ্যাপকে প্রোডাকশনের জন্য প্রস্তুত করার পরামর্শ এবং গুগলের OAuth 2.0 নীতিমালাগুলোও দেখুন।

ক্লায়েন্টের পরিচয়পত্র নিরাপদে পরিচালনা করুন

OAuth ক্লায়েন্ট ক্রেডেনশিয়ালগুলি আপনার অ্যাপের পরিচয় শনাক্ত করে এবং এগুলি সাবধানে পরিচালনা করা উচিত। এই ক্রেডেনশিয়ালগুলি শুধুমাত্র সুরক্ষিত স্টোরেজে সংরক্ষণ করুন, উদাহরণস্বরূপ Google Cloud Secret Manager-এর মতো কোনো সিক্রেট ম্যানেজার ব্যবহার করে। ক্রেডেনশিয়ালগুলি হার্ডকোড করবেন না, কোনো কোড রিপোজিটরিতে কমিট করবেন না বা সর্বজনীনভাবে প্রকাশ করবেন না।

ব্যবহারকারীর টোকেনগুলি নিরাপদে পরিচালনা করুন

ব্যবহারকারীর টোকেনগুলোর মধ্যে আপনার অ্যাপ্লিকেশন দ্বারা ব্যবহৃত রিফ্রেশ টোকেন এবং অ্যাক্সেস টোকেন উভয়ই অন্তর্ভুক্ত। টোকেনগুলো নিরাপদে সংরক্ষণ করুন এবং কখনোই সেগুলোকে প্লেইন টেক্সটে প্রেরণ করবেন না। আপনার প্ল্যাটফর্মের জন্য উপযুক্ত একটি সুরক্ষিত স্টোরেজ সিস্টেম ব্যবহার করুন, যেমন অ্যান্ড্রয়েডের জন্য কীস্টোর (Keystore) , আইওএস (iOS) এবং ম্যাকওএস (macOS)-এর জন্য কীচেইন সার্ভিসেস (Keychain Services), অথবা উইন্ডোজের জন্য ক্রেডেনশিয়াল লকার (Credential Locker)।

টোকেনগুলোর আর প্রয়োজন না থাকলেই সেগুলো প্রত্যাহার করুন এবং আপনার সিস্টেম থেকে স্থায়ীভাবে মুছে ফেলুন।

এছাড়াও, আপনার প্ল্যাটফর্মের জন্য এই সর্বোত্তম অনুশীলনগুলোও বিবেচনা করুন:

  • যেসব সার্ভার-সাইড অ্যাপ্লিকেশন একাধিক ব্যবহারকারীর টোকেন সংরক্ষণ করে, সেগুলোকে সংরক্ষণের সময় এনক্রিপ্ট করুন এবং নিশ্চিত করুন যে আপনার ডেটা স্টোরটি ইন্টারনেটে সর্বজনীনভাবে অ্যাক্সেসযোগ্য নয়।
  • নেটিভ ডেস্কটপ অ্যাপের ক্ষেত্রে, অ্যাক্সেস টোকেনের জন্য বিনিময়যোগ্য অনুমোদন কোড পেতে প্রুফ কী ফর কোড এক্সচেঞ্জ (PKCE) প্রোটোকল ব্যবহার করার জন্য জোরালোভাবে সুপারিশ করা হয়।

রিফ্রেশ টোকেন বাতিলকরণ এবং মেয়াদোত্তীর্ণ হওয়া পরিচালনা করুন

যদি আপনার অ্যাপ অফলাইন অ্যাক্সেসের জন্য একটি রিফ্রেশ টোকেনের অনুরোধ করে থাকে, তবে আপনাকে অবশ্যই সেটির অবৈধ হওয়া বা মেয়াদোত্তীর্ণ হওয়াও সামলাতে হবে। বিভিন্ন কারণে টোকেন অবৈধ হয়ে যেতে পারে, যেমন সেটির মেয়াদ শেষ হয়ে যেতে পারে অথবা ব্যবহারকারী বা কোনো স্বয়ংক্রিয় প্রক্রিয়ার মাধ্যমে আপনার অ্যাপের অ্যাক্সেস প্রত্যাহার করা হতে পারে। এই ক্ষেত্রে, আপনার অ্যাপ্লিকেশনটি কীভাবে প্রতিক্রিয়া জানাবে তা সাবধানে বিবেচনা করুন, যার মধ্যে পরবর্তী লগ-ইনের সময় ব্যবহারকারীকে অনুরোধ জানানো বা তাদের ডেটা মুছে ফেলা অন্তর্ভুক্ত। টোকেন প্রত্যাহারের বিজ্ঞপ্তি পেতে, ক্রস-অ্যাকাউন্ট প্রোটেকশন পরিষেবার সাথে ইন্টিগ্রেট করুন।

ক্রমবর্ধমান অনুমোদন ব্যবহার করুন

আপনার অ্যাপ্লিকেশনের প্রয়োজন অনুযায়ী উপযুক্ত OAuth স্কোপের জন্য অনুরোধ করতে ইনক্রিমেন্টাল অথরাইজেশন ব্যবহার করুন।

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

আপনার অ্যাপ কেন অ্যাক্সেসের অনুরোধ করছে এবং ডেটা কীভাবে ব্যবহার করা হবে, তা ব্যবহারকারীদের বোঝাতে সাহায্য করার জন্য সর্বদা প্রাসঙ্গিকতার সাথে স্কোপের অনুরোধ করুন।

উদাহরণস্বরূপ, আপনার অ্যাপ্লিকেশনটি এই মডেলটি অনুসরণ করতে পারে:

  1. ব্যবহারকারী আপনার অ্যাপের মাধ্যমে প্রমাণীকরণ করেন।
    1. কোনো অতিরিক্ত পরিধির অনুরোধ করা হয়নি। অ্যাপটি ব্যবহারকারীকে এমন সব বৈশিষ্ট্য অন্বেষণ ও ব্যবহার করার জন্য মৌলিক কার্যকারিতা প্রদান করে, যার জন্য কোনো অতিরিক্ত ডেটা বা অ্যাক্সেসের প্রয়োজন হয় না।
  2. ব্যবহারকারী এমন একটি বৈশিষ্ট্য নির্বাচন করেন যার জন্য অতিরিক্ত ডেটাতে অ্যাক্সেসের প্রয়োজন হয়।
    1. আপনার অ্যাপ্লিকেশনটি এই ফিচারের জন্য প্রয়োজনীয় নির্দিষ্ট OAuth স্কোপের জন্য একটি অনুমোদনের অনুরোধ করে। যদি এই ফিচারের জন্য একাধিক স্কোপের প্রয়োজন হয়, তবে নিচের সর্বোত্তম অনুশীলনগুলো অনুসরণ করুন।
    2. যদি ব্যবহারকারী অনুরোধটি প্রত্যাখ্যান করেন, তাহলে অ্যাপটি ফিচারটি নিষ্ক্রিয় করে দেয় এবং পুনরায় অ্যাক্সেসের অনুরোধ করার জন্য ব্যবহারকারীকে অতিরিক্ত তথ্য প্রদান করে।

একাধিক স্কোপের জন্য সম্মতি পরিচালনা করুন

একসাথে একাধিক স্কোপের জন্য অনুরোধ করার সময়, ব্যবহারকারীরা আপনার অনুরোধ করা সমস্ত OAuth স্কোপ মঞ্জুর নাও করতে পারেন। আপনার অ্যাপের উচিত প্রাসঙ্গিক কার্যকারিতা নিষ্ক্রিয় করার মাধ্যমে স্কোপ প্রত্যাখ্যানের বিষয়টি পরিচালনা করা।

আপনার অ্যাপের মৌলিক কার্যকারিতার জন্য যদি একাধিক স্কোপের প্রয়োজন হয়, তবে সম্মতি চাওয়ার আগে ব্যবহারকারীকে বিষয়টি ব্যাখ্যা করুন।

ব্যবহারকারী যখন স্কোপ-প্রয়োজনীয় নির্দিষ্ট ফিচারটি ব্যবহার করার সুস্পষ্ট অভিপ্রায় ব্যক্ত করবেন, কেবল তখনই আপনি তাকে পুনরায় অনুরোধ করতে পারেন। OAuth স্কোপ অনুরোধ করার আগে আপনার অ্যাপের উচিত ব্যবহারকারীকে প্রাসঙ্গিক প্রেক্ষাপট এবং যৌক্তিকতা প্রদান করা।

আপনার অ্যাপের একবারে অনুরোধ করা স্কোপের সংখ্যা ন্যূনতম রাখা উচিত। এর পরিবর্তে, ফিচার এবং কার্যকারিতার প্রেক্ষাপটে স্কোপ অনুরোধ করার জন্য ইনক্রিমেন্টাল অথরাইজেশন ব্যবহার করুন

নিরাপদ ব্রাউজার ব্যবহার করুন

ওয়েবে, OAuth 2.0 অনুমোদনের অনুরোধ শুধুমাত্র পূর্ণাঙ্গ ওয়েব ব্রাউজার থেকেই করা উচিত। অন্যান্য প্ল্যাটফর্মে, সঠিক OAuth ক্লায়েন্ট টাইপ নির্বাচন করুন এবং আপনার প্ল্যাটফর্মের জন্য যথাযথভাবে OAuth ইন্টিগ্রেট করুন। এমবেডেড ব্রাউজিং এনভায়রনমেন্টের মাধ্যমে অনুরোধটি রিডাইরেক্ট করবেন না, যার মধ্যে মোবাইল প্ল্যাটফর্মের ওয়েবভিউ (যেমন অ্যান্ড্রয়েডের WebView বা iOS-এর WKWebView) অন্তর্ভুক্ত। এর পরিবর্তে, আপনার প্ল্যাটফর্মের জন্য নেটিভ OAuth লাইব্রেরি বা গুগল সাইন-ইন ব্যবহার করুন।

OAuth ক্লায়েন্টগুলির ম্যানুয়াল তৈরি এবং কনফিগারেশন

অপব্যবহার রোধ করার জন্য, প্রোগ্রাম্যাটিকভাবে OAuth ক্লায়েন্ট তৈরি বা পরিবর্তন করা যায় না। পরিষেবার শর্তাবলীতে সুস্পষ্টভাবে সম্মতি জানাতে, আপনার OAuth ক্লায়েন্ট কনফিগার করতে এবং OAuth যাচাইকরণের জন্য প্রস্তুত হতে আপনাকে অবশ্যই Google Developers কনসোল ব্যবহার করতে হবে।

স্বয়ংক্রিয় ওয়ার্কফ্লোর জন্য এর পরিবর্তে সার্ভিস অ্যাকাউন্ট ব্যবহার করার কথা বিবেচনা করুন।

অব্যবহৃত OAuth ক্লায়েন্টগুলি সরান

নিয়মিত আপনার OAuth 2.0 ক্লায়েন্টগুলো নিরীক্ষা করুন এবং আপনার অ্যাপ্লিকেশনের জন্য অপ্রয়োজনীয় বা অপ্রচলিত হয়ে যাওয়া ক্লায়েন্টগুলো আগে থেকেই মুছে ফেলুন। অব্যবহৃত ক্লায়েন্ট কনফিগার করে রাখলে তা একটি সম্ভাব্য নিরাপত্তা ঝুঁকি তৈরি করে, কারণ আপনার ক্লায়েন্টের ক্রেডেনশিয়াল কখনো ফাঁস হলে ক্লায়েন্টটির অপব্যবহার হতে পারে।

অব্যবহৃত ক্লায়েন্ট থেকে উদ্ভূত ঝুঁকি আরও কমাতে, ছয় মাস ধরে নিষ্ক্রিয় থাকা OAuth 2.0 ক্লায়েন্টগুলোকে স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়।

সর্বোত্তম পন্থা হলো স্বয়ংক্রিয়ভাবে মুছে যাওয়ার জন্য অপেক্ষা না করে বরং সক্রিয়ভাবে অব্যবহৃত ক্লায়েন্টগুলোকে সরিয়ে ফেলা। এই অভ্যাসটি আপনার অ্যাপ্লিকেশনের আক্রমণের ঝুঁকি কমায় এবং উন্নত নিরাপত্তা ব্যবস্থা নিশ্চিত করে।