SSO-এর জন্য কী এবং সার্টিফিকেট তৈরি করুন

Google Workspace বা Google Workspace for Education-এর গ্রাহকদের জন্য Google Workspace সিঙ্গেল সাইন-অন (SSO) পরিষেবা প্রদান করে। Google Workspace সিঙ্গেল সাইন-অন পরিষেবাটি RSA বা DSA অ্যালগরিদম দ্বারা তৈরি পাবলিক কী এবং সার্টিফিকেট গ্রহণ করে। এই পরিষেবাটি ব্যবহার করার জন্য, আপনাকে পাবলিক ও প্রাইভেট কী-এর একটি সেট এবং পাবলিক কী সম্বলিত একটি X.509 সার্টিফিকেট তৈরি করতে হবে। একবার আপনার কাছে পাবলিক কী বা সার্টিফিকেট চলে এলে, আপনাকে সেটি Google-এর সাথে রেজিস্টার করতে হবে। আপনি আপনার Google অ্যাডমিন কনসোলের মাধ্যমে কী বা সার্টিফিকেটটি আপলোড করে সহজেই এটি করতে পারেন।

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

OpenSSL ব্যবহার করে

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

আরএসএ প্রাইভেট কী তৈরি করুন

OpenSSL ব্যবহার করে RSA প্রাইভেট কী তৈরি করতে মাত্র একটি ধাপ লাগে:

openssl genrsa -out rsaprivkey.pem 2048

এই কমান্ডটি একটি PEM-এনকোডেড প্রাইভেট কী তৈরি করে এবং এটিকে rsaprivkey.pem ফাইলে সংরক্ষণ করে। এই উদাহরণটি একটি ২০৪৮-বিটের কী তৈরি করে, যা প্রায় যেকোনো কাজের জন্যই কার্যকর হওয়া উচিত। প্রাপ্ত প্রাইভেট কী-টি গোপন রাখা উচিত এবং এটি ডেটা সাইন ও ডিক্রিপ্ট করতে ব্যবহৃত হয়।

কিছু বাস্তবায়নে, বিশেষ করে জাভা-ভিত্তিকগুলোতে, DER বা PKCS8-এর প্রয়োজন হতে পারে, যা উদাহরণস্বরূপ নিম্নলিখিত অতিরিক্ত ধাপগুলো অনুসরণ করে তৈরি করা যেতে পারে:

  1. openssl rsa -in rsaprivkey.pem -pubout -outform DER -out rsapubkey.der
  2. openssl pkcs8 -topk8 -inform PEM -outform DER -in rsaprivkey.pem -out rsaprivkey.der -nocrypt

ধাপ ১-এ DER ফরম্যাটে পাবলিক কী তৈরি করা হয়।

ধাপ ২ pkcs8 এবং DER ফরম্যাটে প্রাইভেট কী তৈরি করে। তৈরি হয়ে গেলে, আপনি এই কীগুলো ( rsapubkey.der এবং rsaprivkey.der ) ব্যবহার করতে পারবেন।

একটি ডিএসএ প্রাইভেট কী তৈরি করুন

ডিএসএ কী তৈরিতে দুটি ধাপ রয়েছে:

  1. openssl dsaparam -out dsaparam.pem 2048
  2. openssl gendsa -out dsaprivkey.pem dsaparam.pem

প্রথম ধাপে dsaparam.pem একটি DSA প্যারামিটার ফাইল তৈরি করা হয়, যা এক্ষেত্রে OpenSSL-কে দ্বিতীয় ধাপে একটি ২০৪৮-বিটের কী তৈরি করার নির্দেশ দেয়। dsaparam.pem ফাইলটি নিজে কোনো কী নয় এবং পাবলিক ও প্রাইভেট কী তৈরি হয়ে গেলে এটি বাতিল করা যেতে পারে। দ্বিতীয় ধাপে dsaprivkey.pem ফাইলে প্রাইভেট কী-টি তৈরি করা হয়, যা গোপন রাখা উচিত।

কী-টিকে ডিইআর (বাইনারি) ফরম্যাটে এক্সপোর্ট করতে আপনি নিম্নলিখিত ধাপগুলো অনুসরণ করতে পারেন:

  1. openssl dsa -in dsaprivkey.pem -outform DER -pubout -out dsapubkey.der
  2. openssl pkcs8 -topk8 -inform PEM -outform DER -in dsaprivkey.pem -out dsaprivkey.der -nocrypt

ধাপ ১ পাবলিক কী-টিকে একটি DER ফরম্যাটে নিষ্কাশন করে।

ধাপ ২ প্রাইভেট কী-কে pkcs8 এবং DER ফরম্যাটে রূপান্তর করে। এটি করা হয়ে গেলে, আপনি এই পাবলিক ( dsapubkey.der ) এবং প্রাইভেট ( dsaprivkey.der ) কী পেয়ারটি ব্যবহার করতে পারবেন।

একটি সার্টিফিকেট তৈরি করুন

আপনার কী পেয়ার (key pair) হাতে পেলে, একটি X.509 সার্টিফিকেট তৈরি করা সহজ। এই সার্টিফিকেটে সংশ্লিষ্ট পাবলিক কী-এর সাথে সার্টিফিকেটটি তৈরি করা প্রতিষ্ঠানের কিছু মেটাডেটাও থাকে। RSA বা DSA প্রাইভেট কী থেকে একটি সেলফ-সাইন্ড সার্টিফিকেট তৈরি করতে এই ধাপটি অনুসরণ করুন:

openssl req -new -x509 -key dsaprivkey.pem -out dsacert.pem

কয়েকটি প্রশ্নের উত্তর দেওয়ার পর, সার্টিফিকেটটি তৈরি হয়ে dsacert.pem নামে সেভ হবে। SSO কনফিগার করার সময় কন্ট্রোল প্যানেলের মাধ্যমে এই ফাইলটিই আপনাকে গুগল ওয়ার্কস্পেসে আপলোড করতে হয়।

একটি শংসাপত্র ফিঙ্গারপ্রিন্ট তৈরি করুন

কিছু অ্যাপ্লিকেশনের জন্য সরাসরি X.509 সার্টিফিকেটের পরিবর্তে এর ফিঙ্গারপ্রিন্ট প্রয়োজন হয়। ফিঙ্গারপ্রিন্ট হলো x509 বাইনারি ফরম্যাটে সার্টিফিকেটের একটি ডাইজেস্ট। ফিঙ্গারপ্রিন্টের ধরন নির্ভর করে এটি তৈরি করতে ব্যবহৃত অ্যালগরিদমের উপর, যেমন SHA-1 বা SHA-256।

একটি X.509 সার্টিফিকেট থেকে SHA-256 ফিঙ্গারপ্রিন্ট তৈরি করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন (আপনার আসল সার্টিফিকেট .pem ফাইলের নামটি এখানে বসান):

openssl x509 -noout -fingerprint -sha256 -inform pem -in "GoogleIDPCertificate-domain.com.pem"

মাইক্রোসফট ভিজ্যুয়াল স্টুডিও ফর ডট নেট ব্যবহার করে

মাইক্রোসফট ভিজ্যুয়াল স্টুডিও ২০০৫-এ ( Common7ToolsBin ডিরেক্টরিতে) এমন কিছু ইউটিলিটি রয়েছে যা ব্যবহার করে গুগল ওয়ার্কস্পেস-এর জন্য একটি সার্টিফিকেট তৈরি করা যায়। .NET-এ পাবলিক ও প্রাইভেট কী পেয়ার এবং সার্টিফিকেট তৈরি করতে নিচের ধাপগুলো অনুসরণ করুন:

  1. makecert -r -pe -n "CN=Test Certificate" -sky exchange -sv testcert.pvk testcert.cer
  2. pvk2pfx -pvk testcert.pvk -spc testcert.cer -pfx testcert.pfx

উপরের কমান্ডগুলোতে ডিফল্টভাবে RSA অ্যালগরিদম ব্যবহার করা হয়। ধাপ ১-এ সার্টিফিকেট ক্রিয়েশন টুল ( makecert.exe ) ব্যবহার করে testcert.cer নামের একটি সেলফ-সাইন্ড X.509 সার্টিফিকেট এবং এর সংশ্লিষ্ট প্রাইভেট কী তৈরি করা হয়।

ধাপ ২-এ pvk2pfx টুল ( pvk2pfx.exe ) ব্যবহার করে একটি CER এবং PVK ফাইল থেকে একটি পার্সোনাল ইনফরমেশন এক্সচেঞ্জ (PFX) ফাইল তৈরি করা হয়। এই PFX ফাইলে আপনার পাবলিক এবং প্রাইভেট কী উভয়ই থাকে।

ধাপ ১-এ তৈরি করা testcert.cer ফাইলটি কন্ট্রোল প্যানেল ব্যবহার করে গুগল ওয়ার্কস্পেসে আপলোড করা যাবে; এবং, ধাপ ২-এর testcert.pfx ফাইলটি ব্যবহার করে SAML রেসপন্সটি সাইন করার জন্য একটি X509Certificate2 (.NET 2.0+) ইনস্ট্যান্স তৈরি করা যাবে।

জাভাতে Keytool ব্যবহার করা

জাভা ডেভেলপাররা স্ট্যান্ডার্ড জেডিকে (JDK)-তে থাকা keytool ইউটিলিটি ব্যবহার করে পাবলিক/প্রাইভেট কী পেয়ার এবং X.509 সার্টিফিকেট তৈরি করতে পারেন। keytool হলো একটি কী এবং সার্টিফিকেট ম্যানেজমেন্ট ইউটিলিটি, যা ব্যবহারকারীদের ডিজিটাল সিগনেচার প্রয়োজন এমন অথেনটিকেশন স্কিমে ব্যবহারের জন্য তাদের নিজস্ব পাবলিক/প্রাইভেট কী পেয়ার এবং সংশ্লিষ্ট সার্টিফিকেটগুলো পরিচালনা করতে দেয়। keytool কী এবং সার্টিফিকেটগুলোকে একটি 'কীস্টোর'-এ সংরক্ষণ করে, যা ডিফল্ট ইমপ্লিমেন্টেশনের ক্ষেত্রে ব্যবহারকারীর হোম ডিরেক্টরিতে থাকা একটি সাধারণ ফাইল ( .keystore )। প্রাইভেট কীগুলো পাসওয়ার্ড দিয়ে সুরক্ষিত থাকে।

ডিএসএ কী পেয়ার তৈরি করুন

  1. keytool -genkey -alias dsassokey -keyalg "DSA" -keysize 2048 -validity 180 -sigalg "SHA256withDSA"
  2. keytool -export -alias dsassokey -file dsasso.cer

ধাপ ১-এ DSA অ্যালগরিদম ব্যবহার করে ২০৪৮ সাইজের এবং ১৮০ দিন মেয়াদের একটি পাবলিক/প্রাইভেট কী পেয়ার তৈরি করা হয়।

ধাপ ২ পাবলিক কী থেকে একটি X.509 সার্টিফিকেট ( dsasso.cer ) তৈরি করে। এরপর আপনি কন্ট্রোল প্যানেল ব্যবহার করে dsasso.cer গুগল ওয়ার্কস্পেসে আপলোড করবেন।

RSA কী পেয়ার তৈরি করুন

  1. keytool -genkey -alias rsassokey -keyalg "RSA" -keysize 2048 -validity 180
  2. keytool -export -alias rsassokey -file rsasso.cer

ধাপ ১-এ RSA অ্যালগরিদম ব্যবহার করে ২০৪৮ সাইজের এবং ১৮০ দিন মেয়াদের একটি পাবলিক/প্রাইভেট কী পেয়ার তৈরি করা হয়।

ধাপ ২ পাবলিক কী থেকে একটি X.509 সার্টিফিকেট ( rsasso.cer ) তৈরি করে। এরপর আপনি কন্ট্রোল প্যানেল ব্যবহার করে rsasso.cer গুগল ওয়ার্কস্পেসে আপলোড করবেন

জাভা ক্রিপ্টোগ্রাফি আর্কিটেকচার ব্যবহার করে

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

পাবলিক এবং প্রাইভেট কী পেয়ার তৈরি করুন

import java.io.*;
import java.security.*;

public class KeyGenDSA {

  public static void main(String[] args) {
        try {
          KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA");
          SecureRandom random = SecureRandom.getInstanceStrong();
          keyGen.initialize(2048, random);

          KeyPair pair = keyGen.generateKeyPair();
          PrivateKey priv = pair.getPrivate();
          PublicKey pub = pair.getPublic();

          byte[] encPriv = priv.getEncoded();
          FileOutputStream privfos = new FileOutputStream("DSAPrivateKey.key");
          privfos.write(encPriv);
          privfos.close();

          byte[] encPub = pub.getEncoded();
          FileOutputStream pubfos = new FileOutputStream("DSAPublicKey.key");
          pubfos.write(encPub);
          pubfos.close();

   } catch (Exception e) {
         e.printStackTrace();
   }
  }
}

উপরের কোডটি KeyPairGenerator ব্যবহার করে একজোড়া DSA কী তৈরি করে। তৈরি হওয়া কী-গুলো বাইনারি ফরম্যাটে থাকবে এবং আলাদা আলাদা ফাইলে আউটপুট হবে। কী-গুলো পেয়ে গেলে, আপনি পাবলিক কী-টি Google Workspace-এ রেজিস্টার করতে পারবেন এবং প্রাইভেট কী-টি ব্যবহার করে আপনার SAMLResponse স্বাক্ষর করতে পারবেন। DSA-এর পরিবর্তে একজোড়া RSA কী তৈরি করতে চাইলে, আপনাকে শুধু কোডে থাকা "DSA" জায়গায় "RSA" ' বসাতে হবে।

গুগল ওয়ার্কস্পেসে আপনার সার্টিফিকেট বা পাবলিক কী নিবন্ধন করুন।

একবার আপনি কী এবং সার্টিফিকেট তৈরি করার কঠিন অংশটি করে ফেললে, পরবর্তী ধাপটি সত্যিই সহজ। গুগল ওয়ার্কস্পেসে আপনার সার্টিফিকেট বা পাবলিক কী রেজিস্টার করতে, আপনাকে অ্যাডমিন কনসোলে গিয়ে একজন অ্যাডমিনিস্ট্রেটর হিসেবে লগ ইন করতে হবে। সিকিউরিটি (Security) নির্বাচন করুন, তারপর সেট আপ সিঙ্গেল সাইন-অন (SSO) (Set up single sign-on (SSO)) নির্বাচন করুন এবং থার্ড পার্টি আইডেন্টিটি প্রোভাইডারের সাথে এসএসও (SSO) সেট আপ (Setup SSO with third party identity provider) এর অধীনে পৃষ্ঠার সমস্ত ফিল্ড পূরণ করুন।