FedCM আপডেট: আইফ্রেম ডোমেন প্রদর্শন করুন

Chrome 142 থেকে, আপনি FedCM UI-তে iframe-এর ডোমেন প্রদর্শন করতে পারেন যখন Relying Party (RP) অন্য কোনও সাইটে তৃতীয় পক্ষের iframe হিসেবে এমবেড করা থাকে। এই বৈশিষ্ট্যটি ব্যবহারকারীদের জন্য স্বচ্ছতা বৃদ্ধি করে যখন তারা অন্য কোনও ওয়েবসাইটে এমবেড করা কোনও পরিষেবায় সাইন ইন করেন।

পটভূমি

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

FedCM ডায়ালগের শিরোনামে লেখাটি রয়েছে: 'fedcm-demo-idp.dev দিয়ে news-site.example এ সাইন ইন করুন'।
যখন iframe এর ভেতর থেকে FedCM কল করা হয়, তখন iframe এর ডোমেন UI তে প্রদর্শিত হয় না।

এই সমস্যা সমাধানের জন্য, Chrome এখন FedCM ডায়ালগে শীর্ষ-স্তরের সাইটের ডোমেনের পাশাপাশি আইফ্রেমের ডোমেন যেখানে টোকেন পাঠানো হয় তা নির্দেশ করার জন্য IdP-এর একটি উপায় আছে। এটি ব্যবহারকারীকে সাইন-ইন প্রক্রিয়ায় কোন তৃতীয় পক্ষের পরিষেবাগুলি জড়িত সে সম্পর্কে একটি পরিষ্কার চিত্র প্রদান করে।

FedCM ডায়ালগের শিরোনামে লেখাটি রয়েছে: 'fedcm-demo-idp.dev দিয়ে news-site.example-এ সাইন ইন করুন। news-site.example widget.example থেকে কন্টেন্ট এম্বেড করে'।
যখন iframe এর ভেতর থেকে FedCM কল করা হয়, তখন IdP UI ডায়ালগে iframe এবং এম্বেডিং সাইট ডোমেন উভয়ই প্রদর্শন করতে পারে।

বাস্তবায়ন

IdP-এর ক্লায়েন্ট মেটাডেটা এন্ডপয়েন্ট একটি client_id এবং ঐচ্ছিকভাবে একটি top_frame_origin উভয়ই গ্রহণ করে, উদাহরণস্বরূপ:

GET /client_metadata_endpoint?client_id=1234&top_frame_origin=https%3A%2F%2Ftop-frame.example HTTP/1.1
Host: idp.example
Origin: https://iframe.example/
Accept: application/json
Sec-Fetch-Dest: webidentity

এরপর IdP কাস্টম লজিক প্রয়োগ করে নির্ধারণ করতে পারে যে RP এবং টপ-লেভেল সাইট একই পার্টি কিনা। যদি RP টপ-লেভেল সাইট এবং iframe উভয়ের মালিক হয়, তাহলে IdP শুধুমাত্র টপ-লেভেল ডোমেন প্রদর্শন করতে পারে, যা ডিফল্ট আচরণ। উভয় ডোমেন প্রদর্শনের জন্য, IdP কে তাদের ক্লায়েন্ট মেটাডেটা এন্ডপয়েন্ট প্রতিক্রিয়ায় client_is_third_party_to_top_frame_origin প্রপার্টি অন্তর্ভুক্ত করতে হবে এবং এর মান true তে সেট করতে হবে।

ক্লায়েন্ট মেটাডেটা এন্ডপয়েন্ট রেসপন্স কেমন হবে তার একটি উদাহরণ এখানে দেওয়া হল:

// In the client metadata endpoint
const clientIsThirdParty = isClientOriginDifferentFromTopFrame();
responseData = {
  privacy_policy_url: "..."
  terms_of_service_url: "...",
  client_is_third_party_to_top_frame_origin: clientIsThirdParty,
}

যখন এই প্রপার্টিটি true তে সেট করা থাকে এবং RP অন্য সাইটে iframe হিসেবে এম্বেড করা হয়, তখন FedCM ডায়ালগটি শীর্ষ-স্তরের সাইটের ডোমেন এবং iframe এর ডোমেন উভয়ই প্রদর্শন করবে। এটি ব্যবহারকারীকে সাইন-ইন অনুরোধ সম্পর্কে আরও প্রসঙ্গ প্রদান করে।

client_is_third_party_to_top_frame_origin এর ডিফল্ট মান হল false , তাই বিদ্যমান বাস্তবায়নগুলি এই পরিবর্তনের দ্বারা প্রভাবিত হবে না।

আইডেন্টিটি প্রোভাইডারে FedCM বাস্তবায়নের বিষয়ে আরও বিস্তারিত তথ্য ডকুমেন্টেশনে রয়েছে।

চেষ্টা করে দেখো

আপনি fedcm-demo-rp.dev/iframe এ এই বৈশিষ্ট্যটির একটি লাইভ ডেমো দেখতে পারেন। কোডটি ডেমো GitHub রিপোজিটরিতে হোস্ট করা আছে।

এই এবং অন্যান্য FedCM বৈশিষ্ট্য সম্পর্কে আপনার মতামত আমরা স্বাগত জানাই। আপনার মতামত শেয়ার করুন এবং FedCM GitHub সংগ্রহস্থলের যেকোনো সমস্যা সম্পর্কে রিপোর্ট করুন।

আরও জানুন