1. ভূমিকা
আপনার ওয়েব অ্যাপের ব্যবহারকারীদের প্রমাণীকরণ প্রায়ই প্রয়োজন হয় এবং সাধারণত আপনার অ্যাপে বিশেষ প্রোগ্রামিং প্রয়োজন হয়। Google ক্লাউড প্ল্যাটফর্ম অ্যাপগুলির জন্য আপনি সেই দায়িত্বগুলি আইডেন্টিটি-অ্যাওয়ার প্রক্সি পরিষেবার কাছে হস্তান্তর করতে পারেন৷ আপনি যদি শুধুমাত্র নির্বাচিত ব্যবহারকারীদের অ্যাক্সেস সীমাবদ্ধ করতে চান তবে অ্যাপ্লিকেশনটিতে কোন পরিবর্তনের প্রয়োজন নেই। যদি অ্যাপ্লিকেশনটির ব্যবহারকারীর পরিচয় জানতে হয় (যেমন ব্যবহারকারীর পছন্দ সার্ভার-সাইড রাখার জন্য) আইডেন্টিটি-অ্যাওয়ার প্রক্সি ন্যূনতম অ্যাপ্লিকেশন কোড সহ এটি সরবরাহ করতে পারে।
আইডেন্টিটি-সচেতন প্রক্সি কি?
Identity-Aware Proxy (IAP) হল একটি Google ক্লাউড প্ল্যাটফর্ম পরিষেবা যা আপনার অ্যাপ্লিকেশানে পাঠানো ওয়েব অনুরোধগুলিকে বাধা দেয়, Google আইডেন্টিটি পরিষেবা ব্যবহার করে অনুরোধ করা ব্যবহারকারীকে প্রমাণীকরণ করে এবং শুধুমাত্র আপনার অনুমোদনকারী ব্যবহারকারীর কাছ থেকে অনুরোধগুলি আসতে দেয়৷ উপরন্তু, এটি প্রমাণীকৃত ব্যবহারকারী সম্পর্কে তথ্য অন্তর্ভুক্ত করার জন্য অনুরোধ শিরোনাম পরিবর্তন করতে পারে।
এই কোডল্যাব আপনাকে আপনার নিজস্ব অ্যাপ্লিকেশন তৈরি করে, এটিতে অ্যাক্সেস সীমাবদ্ধ করে এবং IAP থেকে ব্যবহারকারীর পরিচয় পাওয়ার মাধ্যমে আপনাকে নিয়ে যাবে।
যা আপনি নির্মাণ করবেন
এই কোডল্যাবে, আপনি গুগল অ্যাপ ইঞ্জিনের সাথে একটি ন্যূনতম ওয়েব অ্যাপ্লিকেশন তৈরি করতে যাচ্ছেন, তারপর অ্যাপ্লিকেশনটিতে অ্যাক্সেস সীমাবদ্ধ করতে এবং এটিতে ব্যবহারকারীর পরিচয় তথ্য সরবরাহ করতে আইডেন্টিটি-অ্যায়ার প্রক্সি ব্যবহার করার বিভিন্ন উপায় অন্বেষণ করুন৷ আপনার অ্যাপ হবে:
|
আপনি কি শিখবেন
- পাইথন 3.7 ব্যবহার করে কীভাবে একটি সাধারণ অ্যাপ ইঞ্জিন অ্যাপ লিখবেন এবং স্থাপন করবেন
- কীভাবে আপনার অ্যাপে অ্যাক্সেস সীমাবদ্ধ করতে IAP সক্ষম এবং নিষ্ক্রিয় করবেন
- IAP থেকে কীভাবে আপনার অ্যাপে ব্যবহারকারীর পরিচয় তথ্য পাবেন
- স্পুফিং থেকে রক্ষা করার জন্য কীভাবে IAP থেকে তথ্য ক্রিপ্টোগ্রাফিকভাবে যাচাই করা যায়
আপনি কি প্রয়োজন হবে
- একটি আধুনিক ওয়েব ব্রাউজার যেমন Chrome ।
- পাইথন প্রোগ্রামিং ভাষার প্রাথমিক জ্ঞান
এই কোডল্যাবটি গুগল অ্যাপ ইঞ্জিন এবং আইএপি-তে ফোকাস করে। অ-প্রাসঙ্গিক ধারণা এবং কোড ব্লকগুলিকে চকচকে করা হয়েছে এবং আপনাকে কেবল অনুলিপি এবং পেস্ট করার জন্য সরবরাহ করা হয়েছে।
2. সেট আপ করা হচ্ছে
আপনি ক্লাউড শেল কমান্ড লাইন পরিবেশে কাজ করবেন। সেই পরিবেশটি খোলার এবং এতে নমুনা কোড আনার মাধ্যমে শুরু করুন।
কনসোল এবং ক্লাউড শেল চালু করুন
ল্যাব পৃষ্ঠার উপরের বাম দিকের অংশে, গুগল কনসোল খুলুন বোতামে ক্লিক করুন। আপনাকে সেই বোতামের নীচে প্রদর্শিত ব্যবহারকারীর নাম এবং পাসওয়ার্ড দিয়ে লগ ইন করতে হবে। |
এই কোডল্যাবের সমস্ত কমান্ড আপনার জন্য তৈরি এবং খোলা প্রকল্পের জন্য একটি ক্লাউড শেলের মধ্যে কার্যকর করা হবে। কনসোল পৃষ্ঠার শিরোনামের ডানদিকে পাওয়া অ্যাক্টিভেট ক্লাউড শেল আইকনে ক্লিক করে ক্লাউড শেল খুলুন। পৃষ্ঠার নীচের অর্ধেক আপনাকে কমান্ড লিখতে এবং চালানোর অনুমতি দেবে৷ কমান্ডগুলি আপনার নিজের পিসি থেকে চালানো যেতে পারে, তবে আপনাকে প্রথমে প্রয়োজনীয় বিকাশ সফ্টওয়্যার ইনস্টল এবং কনফিগার করতে হবে৷ ক্লাউড শেল ইতিমধ্যেই আপনার প্রয়োজনীয় সমস্ত সফ্টওয়্যার সরঞ্জাম রয়েছে৷ |
কোডটি ডাউনলোড করুন
ক্লাউড শেলের কমান্ড লাইন এলাকায় ক্লিক করুন যাতে আপনি কমান্ড টাইপ করতে পারেন। Github থেকে কোড আনুন এবং তারপর কোড ফোল্ডারে পরিবর্তন করুন:
git clone https://github.com/googlecodelabs/user-authentication-with-iap.git
cd user-authentication-with-iap
এই কোডল্যাবের প্রতিটি ধাপের জন্য এই ফোল্ডারটিতে একটি সাবফোল্ডার রয়েছে। প্রতিটি ধাপ সম্পাদন করতে আপনি সঠিক ফোল্ডারে পরিবর্তন করবেন।
3. ধাপ 1 - অ্যাপ্লিকেশন স্থাপন করুন এবং এটিকে IAP দিয়ে সুরক্ষিত করুন
এটি পাইথন 3.7 এ লেখা একটি অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড অ্যাপ্লিকেশন যা কেবল একটি "হ্যালো, ওয়ার্ল্ড" স্বাগত পৃষ্ঠা প্রদর্শন করে। আমরা এটি স্থাপন করব এবং পরীক্ষা করব, তারপর IAP ব্যবহার করে এটিতে অ্যাক্সেস সীমাবদ্ধ করব।
আবেদন কোড পর্যালোচনা করুন
মূল প্রকল্প ফোল্ডার থেকে 1-HelloWorld
সাবফোল্ডারে পরিবর্তন করুন যাতে এই ধাপের জন্য কোড রয়েছে।
cd 1-HelloWorld
অ্যাপ্লিকেশন কোড main.py
ফাইলে আছে। এটি একটি টেমপ্লেটের বিষয়বস্তুর সাথে ওয়েব অনুরোধের প্রতিক্রিয়া জানাতে ফ্লাস্ক ওয়েব ফ্রেমওয়ার্ক ব্যবহার করে। এই টেমপ্লেট ফাইলটি templates/index.html
এ রয়েছে এবং এই ধাপে শুধুমাত্র সাধারণ HTML রয়েছে। একটি দ্বিতীয় টেমপ্লেট ফাইলে templates/privacy.html
এ একটি কঙ্কাল উদাহরণ গোপনীয়তা নীতি রয়েছে।
আরও দুটি ফাইল রয়েছে: requirements.txt
অ্যাপ্লিকেশনটি ব্যবহার করে এমন সমস্ত নন-ডিফল্ট পাইথন লাইব্রেরি তালিকাভুক্ত করে এবং app.yaml
Google ক্লাউড প্ল্যাটফর্মকে বলে যে এটি একটি পাইথন 3.7 অ্যাপ ইঞ্জিন অ্যাপ্লিকেশন।
আপনি cat কমান্ড ব্যবহার করে শেলের প্রতিটি ফাইল তালিকাভুক্ত করতে পারেন, যেমন:
cat main.py
অথবা আপনি ক্লাউড শেল উইন্ডোর উপরের ডানদিকে পেন্সিল আইকনে ক্লিক করে ক্লাউড শেল কোড এডিটর খুলতে পারেন এবং সেইভাবে কোডটি পরীক্ষা করতে পারেন।
এই ধাপের জন্য আপনাকে কোনো ফাইল পরিবর্তন করতে হবে না।
অ্যাপ ইঞ্জিনে স্থাপন করুন
এখন পাইথন 3.7 এর জন্য অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড পরিবেশে অ্যাপটি স্থাপন করুন
gcloud app deploy
আপনাকে মোতায়েন করার জন্য একটি অঞ্চল বেছে নিতে বলা হতে পারে। আপনার কাছাকাছি যে কোনো একটি নির্বাচন করুন যে এটি "মান সমর্থন করে" বলে। আপনি চালিয়ে যেতে চান কিনা জিজ্ঞাসা করা হলে, হ্যাঁ এর জন্য Y
লিখুন।
কয়েক মিনিটের মধ্যে স্থাপনা সম্পূর্ণ হবে এবং আপনি একটি বার্তা দেখতে পাবেন যে আপনি gcloud app browse
মাধ্যমে আপনার অ্যাপ্লিকেশন দেখতে পারেন। যে কমান্ড লিখুন. যদি আপনার ব্রাউজারে একটি নতুন ট্যাব না খোলে, একটি নতুন ট্যাবে এটি খুলতে প্রদর্শিত লিঙ্কে ক্লিক করুন, অথবা প্রয়োজনে ম্যানুয়ালি খোলা নতুন ট্যাবে এটি অনুলিপি করুন৷ যেহেতু এই অ্যাপটি প্রথমবার চালানো হয়েছে, তাই ক্লাউড ইন্সট্যান্স শুরু হওয়ার সময় এটি প্রদর্শিত হতে কয়েক সেকেন্ড সময় নেবে এবং আপনি নিম্নলিখিত উইন্ডোটি দেখতে পাবেন।
আপনি সেই ওয়েব পৃষ্ঠাটি দেখতে ইন্টারনেটের সাথে সংযুক্ত যেকোনো কম্পিউটার থেকে একই URL খুলতে পারেন। প্রবেশাধিকার এখনও সীমাবদ্ধ নয়.
IAP দিয়ে অ্যাক্সেস সীমাবদ্ধ করুন
ক্লাউড কনসোল উইন্ডোতে, পৃষ্ঠার উপরের বামদিকে মেনু আইকনে ক্লিক করুন, নিরাপত্তা-এ ক্লিক করুন এবং তারপরে আইডেন্টিটি-সচেতন প্রক্সিতে ক্লিক করুন। | |
যেহেতু এই প্রথমবার আপনি এই প্রকল্পের জন্য একটি প্রমাণীকরণ বিকল্প সক্ষম করেছেন, আপনি একটি বার্তা দেখতে পাবেন যে আপনি IAP ব্যবহার করার আগে আপনার OAuth সম্মতি স্ক্রীন কনফিগার করতে হবে৷ | |
কনফিগার কনসেন্ট স্ক্রীন বোতামে ক্লিক করুন। সম্মতি স্ক্রিন কনফিগার করতে একটি নতুন ট্যাব খুলবে। |
উপযুক্ত মান দিয়ে প্রয়োজনীয় শূন্যস্থান পূরণ করুন:
আবেদনের নাম | IAP উদাহরণ |
সমর্থন ইমেল | আপনার ইমেল ঠিকানা। এটি ইতিমধ্যে আপনার জন্য পূরণ করা হতে পারে. |
অনুমোদিত ডোমেইন | অ্যাপ্লিকেশনের URL এর হোস্টনাম অংশ, যেমন iap-example-999999.appspot.com। আপনি পূর্বে খোলা হ্যালো ওয়ার্ল্ড ওয়েব পৃষ্ঠার ঠিকানা বারে এটি দেখতে পাবেন। সেই URL থেকে শুরু |
অ্যাপ্লিকেশন হোমপেজ লিঙ্ক | ইউআরএল আপনি আপনার অ্যাপ দেখতে ব্যবহার করেন |
অ্যাপ্লিকেশন গোপনীয়তা নীতি লিঙ্ক | অ্যাপে গোপনীয়তা পৃষ্ঠার লিঙ্ক, শেষে /প্রাইভেসি যুক্ত হোমপেজ লিঙ্কের মতোই |
Save এ ক্লিক করুন । আপনাকে শংসাপত্র তৈরি করতে বলা হবে। আপনাকে এই কোডল্যাবের জন্য শংসাপত্র তৈরি করতে হবে না, তাই আপনি এই ব্রাউজার ট্যাবটি বন্ধ করতে পারেন।
আইডেন্টিটি-সচেতন প্রক্সি পৃষ্ঠায় ফিরে যান এবং এটি রিফ্রেশ করুন৷ আপনি এখন রক্ষা করতে পারেন এমন সংস্থানগুলির একটি তালিকা দেখতে পাবেন৷ IAP চালু করতে অ্যাপ ইঞ্জিন অ্যাপ সারিতে IAP কলামে টগল বোতামে ক্লিক করুন৷ | |
আপনি IAP দ্বারা সুরক্ষিত ডোমেইন নাম দেখতে পাবেন। টার্ন অন ক্লিক করুন। | |
এখন একটি ব্রাউজার ট্যাব খুলুন এবং আপনার অ্যাপের URL-এ নেভিগেট করুন। আপনাকে একটি সাইন ইন উইথ গুগল স্ক্রীন উপস্থাপন করা হবে যাতে আপনাকে অ্যাপটি অ্যাক্সেস করতে লগ ইন করতে হবে। | |
একটি Google বা GSuite অ্যাকাউন্ট দিয়ে সাইন ইন করুন। আপনি একটি স্ক্রিন দেখতে পাবেন যা আপনাকে অ্যাক্সেস অস্বীকার করে। |
আপনি সফলভাবে আপনার অ্যাপটিকে IAP দিয়ে সুরক্ষিত করেছেন, কিন্তু আপনি এখনও IAP কে জানাননি যে কোন অ্যাকাউন্টগুলির মাধ্যমে অনুমতি দেওয়া হবে৷
কনসোলের আইডেন্টিটি-অওয়ার প্রক্সি পৃষ্ঠায় ফিরে যান, অ্যাপ ইঞ্জিন অ্যাপের পাশের চেকবক্সটি নির্বাচন করুন এবং পৃষ্ঠার ডানদিকে সাইডবারটি দেখুন। | |
প্রতিটি ইমেল ঠিকানা (বা Google গ্রুপ ঠিকানা, বা GSuite ডোমেন নাম) যা অ্যাক্সেসের অনুমতি দেওয়া উচিত সদস্য হিসাবে যোগ করা প্রয়োজন। সদস্য যোগ করুন ক্লিক করুন. আপনার ইমেল ঠিকানা লিখুন, তারপর সেই ঠিকানায় বরাদ্দ করতে ক্লাউড IAP/IAP-সুরক্ষিত ওয়েব অ্যাপ ব্যবহারকারীর ভূমিকা বেছে নিন। আপনি একইভাবে আরও ঠিকানা বা GSuite ডোমেন লিখতে পারেন। |
Save এ ক্লিক করুন। উইন্ডোর নীচে "পলিসি আপডেটেড" বার্তাটি প্রদর্শিত হবে।
আপনার অ্যাপে ফিরে যান এবং পৃষ্ঠাটি পুনরায় লোড করুন। আপনার এখন আপনার ওয়েব অ্যাপ দেখা উচিত, যেহেতু আপনি ইতিমধ্যেই আপনার অনুমোদিত ব্যবহারকারীর সাথে লগ ইন করেছেন৷ যাইহোক, আপনি এখনও "আপনার অ্যাক্সেস নেই" পৃষ্ঠাটি দেখতে পারেন কারণ IAP আপনার অনুমোদন পুনরায় পরীক্ষা নাও করতে পারে। এই ক্ষেত্রে, নিম্নলিখিত পদক্ষেপগুলি করুন:
-
https://iap-example-999999.appspot.com/_gcp_iap/clear_login_cookie
এর মতো URL-এর শেষে যোগ করা/_gcp_iap/clear_login_cookie
দিয়ে হোম পেজের ঠিকানায় আপনার ওয়েব ব্রাউজার খুলুন। - আপনি একটি নতুন সাইন ইন Google স্ক্রিনে দেখতে পাবেন, যেখানে আপনার অ্যাকাউন্ট ইতিমধ্যেই প্রদর্শিত হচ্ছে। অ্যাকাউন্টে ক্লিক করবেন না। পরিবর্তে, অন্য অ্যাকাউন্ট ব্যবহার করুন ক্লিক করুন এবং আপনার শংসাপত্রগুলি পুনরায় প্রবেশ করুন৷
- এই পদক্ষেপগুলির কারণে IAP আপনার অ্যাক্সেস পুনরায় পরীক্ষা করে এবং আপনার এখন আপনার অ্যাপ্লিকেশনের হোম স্ক্রীন দেখতে হবে।
আপনার যদি অন্য ব্রাউজারে অ্যাক্সেস থাকে বা আপনার ব্রাউজারে ছদ্মবেশী মোড ব্যবহার করতে পারেন এবং অন্য একটি বৈধ GMail বা GSuite অ্যাকাউন্ট থাকে, তাহলে আপনি সেই ব্রাউজারটি ব্যবহার করে আপনার অ্যাপ পৃষ্ঠায় নেভিগেট করতে এবং অন্য অ্যাকাউন্টে লগ ইন করতে পারেন। যেহেতু সেই অ্যাকাউন্টটি অনুমোদিত নয়, এটি আপনার অ্যাপের পরিবর্তে "আপনার অ্যাক্সেস নেই" স্ক্রীনটি দেখতে পাবে।
4. ধাপ 2 - ব্যবহারকারীর পরিচয় তথ্য অ্যাক্সেস করুন
একবার একটি অ্যাপ আইএপি দিয়ে সুরক্ষিত হয়ে গেলে, এটি আইএপি যে ওয়েব রিকোয়েস্ট হেডারের মধ্য দিয়ে যায় সেই পরিচয় তথ্য ব্যবহার করতে পারে। এই ধাপে, অ্যাপ্লিকেশনটি লগ-ইন করা ব্যবহারকারীর ইমেল ঠিকানা এবং সেই ব্যবহারকারীকে Google পরিচয় পরিষেবা দ্বারা নির্ধারিত একটি অবিচ্ছিন্ন অনন্য ব্যবহারকারী আইডি পাবে। সেই ডেটা স্বাগত পৃষ্ঠায় ব্যবহারকারীর কাছে প্রদর্শিত হবে।
এটি ধাপ 2, এবং শেষ ধাপটি আপনার ক্লাউড শেল iap-codelab/1-HelloWorld
ফোল্ডারে খোলার সাথে শেষ হয়েছে। এই ধাপের জন্য ফোল্ডারে পরিবর্তন করুন:
cd ~/iap-codelab/2-HelloUser
অ্যাপ ইঞ্জিনে স্থাপন করুন
যেহেতু স্থাপনে কয়েক মিনিট সময় লাগে, তাই পাইথন 3.7 এর জন্য অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড পরিবেশে অ্যাপটি স্থাপন করে শুরু করুন:
gcloud app deploy
আপনি চালিয়ে যেতে চান কিনা জিজ্ঞাসা করা হলে, হ্যাঁ এর জন্য Y লিখুন। কয়েক মিনিটের মধ্যে স্থাপনা সম্পূর্ণ হওয়া উচিত। আপনি অপেক্ষা করার সময় নীচে বর্ণিত অ্যাপ্লিকেশন ফাইলগুলি পরীক্ষা করতে পারেন।
স্থাপনা প্রস্তুত হলে আপনি একটি বার্তা দেখতে পাবেন যে আপনি gcloud app browse
মাধ্যমে আপনার অ্যাপ্লিকেশন দেখতে পারেন। যে কমান্ড লিখুন. যদি আপনার ব্রাউজারে একটি নতুন ট্যাব না খোলে, প্রদর্শিত লিঙ্কটি অনুলিপি করুন এবং একটি নতুন ট্যাবে এটি খুলুন। আপনি নিম্নলিখিত অনুরূপ একটি পৃষ্ঠা দেখতে হবে:
পূর্ববর্তী সংস্করণটি প্রতিস্থাপন করতে আপনার অ্যাপ্লিকেশনের নতুন সংস্করণের জন্য আপনাকে কয়েক মিনিট অপেক্ষা করতে হতে পারে। উপরের মত একটি পৃষ্ঠা দেখতে প্রয়োজন হলে পৃষ্ঠাটি রিফ্রেশ করুন।
আবেদন ফাইল পরীক্ষা
এই ফোল্ডারে ধাপ 1-এ দেখানো ফাইলগুলির একই সেট রয়েছে, কিন্তু দুটি ফাইল পরিবর্তন করা হয়েছে: main.py
এবং templates/index.html
। ব্যবহারকারীর তথ্য পুনরুদ্ধার করার জন্য প্রোগ্রামটি পরিবর্তন করা হয়েছে যা IAP অনুরোধ শিরোনামে প্রদান করে, এবং টেমপ্লেট এখন সেই ডেটা প্রদর্শন করে।
main.py
এ দুটি লাইন রয়েছে যা IAP-প্রদত্ত পরিচয় ডেটা পায়:
user_email = request.headers.get('X-Goog-Authenticated-User-Email')
user_id = request.headers.get('X-Goog-Authenticated-User-ID')
X-Goog-Authenticated-User-
শিরোনামগুলি IAP দ্বারা সরবরাহ করা হয়, এবং নামগুলি অক্ষর-সংবেদনশীল, তাই পছন্দ হলে সেগুলি সমস্ত নিম্ন বা সমস্ত বড় ক্ষেত্রে দেওয়া যেতে পারে। রেন্ডার_টেমপ্লেট বিবৃতিতে এখন সেই মানগুলি অন্তর্ভুক্ত রয়েছে যাতে সেগুলি প্রদর্শিত হতে পারে:
page = render_template('index.html', email=user_email, id=user_id)
index.html টেমপ্লেট দ্বিগুণ কোঁকড়া ধনুর্বন্ধনীতে নামগুলি আবদ্ধ করে সেই মানগুলি প্রদর্শন করতে পারে:
Hello, {{ email }}! Your persistent ID is {{ id }}.
আপনি দেখতে পাচ্ছেন, প্রদত্ত ডেটা accounts.google.com
এর সাথে প্রিফিক্স করা হয়েছে, তথ্যটি কোথা থেকে এসেছে তা দেখায়। যদি ইচ্ছা হয় কাঁচা মান পেতে আপনার অ্যাপ্লিকেশনটি কোলন সহ সবকিছু মুছে ফেলতে পারে।
IAP বন্ধ করুন
যদি IAP অক্ষম করা হয়, বা কোনোভাবে বাইপাস করা হয় (যেমন আপনার একই ক্লাউড প্রকল্পে চলমান অন্যান্য অ্যাপ্লিকেশন দ্বারা) তাহলে এই অ্যাপটির কী হবে? দেখতে IAP বন্ধ করুন।
ক্লাউড কনসোল উইন্ডোতে, পৃষ্ঠার উপরের বামদিকে মেনু আইকনে ক্লিক করুন, নিরাপত্তা-এ ক্লিক করুন এবং তারপরে আইডেন্টিটি-সচেতন প্রক্সিতে ক্লিক করুন। IAP বন্ধ করতে অ্যাপ ইঞ্জিন অ্যাপের পাশের IAP টগল সুইচটিতে ক্লিক করুন। |
আপনাকে সতর্ক করা হবে যে এটি সমস্ত ব্যবহারকারীদের অ্যাপটি অ্যাক্সেস করার অনুমতি দেবে।
অ্যাপ্লিকেশন ওয়েব পৃষ্ঠা রিফ্রেশ করুন. আপনি একই পৃষ্ঠা দেখতে হবে, কিন্তু কোনো ব্যবহারকারীর তথ্য ছাড়া:
যেহেতু অ্যাপ্লিকেশনটি এখন অরক্ষিত, একজন ব্যবহারকারী একটি ওয়েব অনুরোধ পাঠাতে পারে যা IAP-এর মাধ্যমে পাস হয়েছে বলে মনে হয়। উদাহরণস্বরূপ, আপনি এটি করতে ক্লাউড শেল থেকে নিম্নলিখিত কার্ল কমান্ডটি চালাতে পারেন (আপনার অ্যাপের জন্য সঠিক URL দিয়ে <your-url-here> প্রতিস্থাপন করুন):
curl -X GET <your-url-here> -H "X-Goog-Authenticated-User-Email: totally fake email"
ওয়েব পৃষ্ঠাটি কমান্ড লাইনে প্রদর্শিত হবে এবং নিচের মত দেখাবে:
<!doctype html> <html> <head> <title>IAP Hello User</title> </head> <body> <h1>Hello World</h1> <p> Hello, totally fake email! Your persistent ID is None. </p> <p> This is step 2 of the <em>User Authentication with IAP</em> codelab. </p> </body> </html>
IAP নিষ্ক্রিয় বা বাইপাস করা হয়েছে তা জানার জন্য আবেদনের কোন উপায় নেই। যে ক্ষেত্রে এটি একটি সম্ভাব্য ঝুঁকি, ধাপ 3 একটি সমাধান দেখায়।
5. ধাপ 3 - ক্রিপ্টোগ্রাফিক যাচাইকরণ ব্যবহার করুন
যদি IAP বন্ধ বা বাইপাস হওয়ার ঝুঁকি থাকে, তাহলে আপনার অ্যাপটি যাচাই করতে পারে যে এটি প্রাপ্ত পরিচয় তথ্য বৈধ কিনা। এটি X-Goog-IAP-JWT-Assertion
নামে IAP দ্বারা যোগ করা তৃতীয় ওয়েব রিকোয়েস্ট হেডার ব্যবহার করে। হেডারের মান হল একটি ক্রিপ্টোগ্রাফিকভাবে স্বাক্ষরিত বস্তু যাতে ব্যবহারকারীর পরিচয় ডেটাও থাকে। আপনার অ্যাপ্লিকেশন ডিজিটাল স্বাক্ষর যাচাই করতে পারে এবং এই বস্তুতে প্রদত্ত ডেটা ব্যবহার করে নিশ্চিত হতে পারে যে এটি পরিবর্তন ছাড়াই IAP দ্বারা সরবরাহ করা হয়েছে।
ডিজিটাল স্বাক্ষর যাচাইকরণের জন্য বেশ কিছু অতিরিক্ত পদক্ষেপের প্রয়োজন, যেমন Google পাবলিক কীগুলির সর্বশেষ সেট পুনরুদ্ধার করা। কেউ IAP বন্ধ করতে বা বাইপাস করতে পারে এমন ঝুঁকি এবং অ্যাপ্লিকেশনটির সংবেদনশীলতার উপর ভিত্তি করে আপনি আপনার অ্যাপ্লিকেশনটির এই অতিরিক্ত পদক্ষেপের প্রয়োজন কিনা তা নির্ধারণ করতে পারেন।
এটি ধাপ 3, এবং শেষ ধাপটি iap-codelab/2-HelloUser
ফোল্ডারে আপনার ক্লাউড শেল খোলার সাথে শেষ হয়েছে। এই ধাপের জন্য ফোল্ডারে পরিবর্তন করুন:
cd ~/iap-codelab/3-HelloVerifiedUser
অ্যাপ ইঞ্জিনে স্থাপন করুন
পাইথন 3.7 এর জন্য অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড পরিবেশে অ্যাপটি স্থাপন করুন:
gcloud app deploy
আপনি চালিয়ে যেতে চান কিনা জিজ্ঞাসা করা হলে, হ্যাঁ এর জন্য Y লিখুন। কয়েক মিনিটের মধ্যে স্থাপনা সম্পূর্ণ হওয়া উচিত। আপনি অপেক্ষা করার সময় নীচে বর্ণিত অ্যাপ্লিকেশন ফাইলগুলি পরীক্ষা করতে পারেন।
স্থাপনা প্রস্তুত হলে আপনি একটি বার্তা দেখতে পাবেন যে আপনি gcloud app browse
মাধ্যমে আপনার অ্যাপ্লিকেশন দেখতে পারেন। যে কমান্ড লিখুন. যদি আপনার ব্রাউজারে একটি নতুন ট্যাব না খোলে, প্রদর্শিত লিঙ্কটি অনুলিপি করুন এবং একটি নতুন ট্যাবে এটি খুলুন।
মনে রাখবেন যে আপনি ধাপ 2-এ IAP নিষ্ক্রিয় করেছেন, তাই অ্যাপ্লিকেশনটিতে কোনও IAP ডেটা সরবরাহ করা হচ্ছে না। আপনি নিম্নলিখিত অনুরূপ একটি পৃষ্ঠা দেখতে হবে:
আগের মতোই, পৃষ্ঠাটির নতুন সংস্করণ দেখতে আপনাকে নতুন সংস্করণটি লাইভ হওয়ার জন্য কয়েক মিনিট অপেক্ষা করতে হতে পারে।
যেহেতু IAP নিষ্ক্রিয় করা হয়েছে, ব্যবহারকারীর কোনো তথ্য উপলব্ধ নেই৷ এখন IAP আবার চালু করুন।
ক্লাউড কনসোল উইন্ডোতে, পৃষ্ঠার উপরের বামদিকে মেনু আইকনে ক্লিক করুন, নিরাপত্তা-এ ক্লিক করুন এবং তারপরে আইডেন্টিটি-সচেতন প্রক্সিতে ক্লিক করুন। IAP আবার চালু করতে অ্যাপ ইঞ্জিন অ্যাপের পাশের IAP টগল সুইচটিতে ক্লিক করুন। |
পৃষ্ঠাটি রিফ্রেশ করুন। পৃষ্ঠাটি নিম্নলিখিত মত হওয়া উচিত:
লক্ষ্য করুন যে যাচাইকৃত পদ্ধতি দ্বারা প্রদত্ত ইমেল ঠিকানাটিতে accounts.google.com:
উপসর্গ নেই৷
যদি IAP বন্ধ করা হয় বা বাইপাস করা হয়, যাচাই করা ডেটা হয় অনুপস্থিত, বা অবৈধ, যেহেতু এটিতে একটি বৈধ স্বাক্ষর থাকতে পারে না যদি না এটি Google-এর ব্যক্তিগত কীগুলির ধারক দ্বারা তৈরি করা হয়৷
আবেদন ফাইল পরীক্ষা
এই ফোল্ডারে দুটি ফাইল পরিবর্তিত এবং একটি নতুন ফাইল সহ ধাপ 2-এ দেখা ফাইলগুলির একই সেট রয়েছে৷ নতুন ফাইলটি হল auth.py
, যা ক্রিপ্টোগ্রাফিকভাবে স্বাক্ষরিত পরিচয় তথ্য পুনরুদ্ধার ও যাচাই করার জন্য একটি user()
পদ্ধতি প্রদান করে। পরিবর্তিত ফাইলগুলি হল main.py
এবং templates/index.html
, যা এখন সেই পদ্ধতির ফলাফল ব্যবহার করে৷ ধাপ 2 এ পাওয়া অযাচাইকৃত শিরোনামগুলিও তুলনার জন্য দেখানো হয়েছে।
নতুন কার্যকারিতা প্রাথমিকভাবে user()
ফাংশনে রয়েছে:
def user():
assertion = request.headers.get('X-Goog-IAP-JWT-Assertion')
if assertion is None:
return None, None
info = jwt.decode(
assertion,
keys(),
algorithms=['ES256'],
audience=audience()
)
return info['email'], info['sub']
assertion
হল নির্দিষ্ট অনুরোধ শিরোনামে প্রদত্ত ক্রিপ্টোগ্রাফিকভাবে স্বাক্ষরিত ডেটা। কোডটি সেই ডেটা যাচাই এবং ডিকোড করার জন্য একটি লাইব্রেরি ব্যবহার করে। যাচাইকরণ সর্বজনীন কী ব্যবহার করে যা Google এটি স্বাক্ষরিত ডেটা পরীক্ষা করার জন্য এবং শ্রোতাদের জানার জন্য সরবরাহ করে যে ডেটাটি তৈরি করা হয়েছিল (মূলত, Google ক্লাউড প্রকল্প যা সুরক্ষিত হচ্ছে)। হেল্পার ফাংশন keys()
এবং audience()
সংগ্রহ করে সেই মানগুলি ফেরত দেয়।
স্বাক্ষরিত বস্তুটিতে আমাদের প্রয়োজনীয় দুটি ডেটা রয়েছে: যাচাইকৃত ইমেল ঠিকানা এবং অনন্য আইডি মান (সাবস্ক্রাইবার, স্ট্যান্ডার্ড ক্ষেত্রের জন্য sub
-এ দেওয়া)।
এটি ধাপ 3 সম্পূর্ণ করে।
6. সারাংশ
আপনি একটি অ্যাপ ইঞ্জিন ওয়েব অ্যাপ্লিকেশন স্থাপন করেছেন৷ ধাপ 1-এ, আপনি শুধুমাত্র আপনার বেছে নেওয়া ব্যবহারকারীদের জন্য অ্যাপ্লিকেশনে অ্যাক্সেস সীমাবদ্ধ করেছেন। ধাপ 2-এ, আপনি IAP আপনার অ্যাপ্লিকেশনে অ্যাক্সেসের অনুমতি দেয় এমন ব্যবহারকারীদের পরিচয় পুনরুদ্ধার এবং প্রদর্শন করেছেন এবং IAP অক্ষম বা বাইপাস হলে সেই তথ্যটি কীভাবে জালিয়াতি করা যেতে পারে তা দেখেছেন। ধাপ 3-এ, আপনি ব্যবহারকারীর পরিচয়ের ক্রিপ্টোগ্রাফিকভাবে স্বাক্ষরিত দাবী যাচাই করেছেন, যা জালিয়াতি করা যাবে না।
7. পরিষ্কার করা
আপনি এই কোডল্যাবে ব্যবহার করেছেন একমাত্র Google ক্লাউড প্ল্যাটফর্ম সংস্থানগুলি হল অ্যাপ ইঞ্জিন দৃষ্টান্ত৷ প্রতিবার আপনি অ্যাপটি স্থাপন করার সময়, একটি নতুন সংস্করণ তৈরি করা হয়েছিল এবং মুছে ফেলা পর্যন্ত বিদ্যমান থাকবে। প্রকল্প এবং এর মধ্যে থাকা সমস্ত সংস্থান মুছতে ল্যাব থেকে প্রস্থান করুন।