API প্রক্সিতে TLS কানেকশন সংক্রান্ত তথ্য অ্যাক্সেস করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

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

টু-ওয়ে TLS-এ, ক্লায়েন্ট ও Edge, দুটিই অনুরোধের অংশ হিসেবে যাচাই করা সার্টিফিকেট পাস করে:

  • Edge রাউটার নিজেকে যাচাই করার জন্য TLS ক্লায়েন্টের কাছে নিজের সার্টিফিকেট উপস্থাপন করে। ক্লায়েন্ট তারপরে সার্ভারে নিজের সার্টিফিকেট পাঠানোর আগে সার্ভারের পরিচয় যাচাই করে নেয়।
  • TLS ক্লায়েন্ট নিজেকে যাচাই করার জন্য Edge-এর কাছে নিজের সার্টিফিকেট জমা দেয়।

আরও তথ্যের জন্য ভার্চুয়াল হোস্ট সম্পর্কে দেখুন।

TLS কানেকশন সংক্রান্ত তথ্য ক্যাপচার করা

TLS কাজ করে এমন ভার্চুয়াল হোস্টের মাধ্যমে API প্রক্সি করার অনুরোধের সময়, Edge TLS কানেকশন সংক্রান্ত তথ্য ক্যাপচার করতে পারে। আপনার API প্রক্সি তারপরে অতিরিক্ত বিশ্লেষণ ও যাচাইকরণ করতে ফ্লো ভেরিয়েবলের মাধ্যমে সেই তথ্য অ্যাক্সেস করতে পারে।

Edge-এর ক্যাপচার করা TLS তথ্যের ধরন নির্ভর করে ভার্চুয়াল হোস্ট একমুখী বা দ্বিমুখী TLS-এ কাজ করে কিনা তার উপর। যেমন, একমুখী TLS-এর জন্য, TLS কানেকশনে ব্যবহৃত TLS সাইফার বা TLS প্রোটোকল সম্পর্কে Edge তথ্য ক্যাপচার করতে পারে।

টু-ওয়ে TLS-এর ক্ষেত্রে, Edge সেইসব তথ্য ক্যাপচার করতে পারে যা ওয়ান-ওয়ে TLS-এর ক্ষেত্রে ক্যাপচার করা হয়, এছাড়াও, এটি ক্লায়েন্টের সার্টিফিকেট সংক্রান্ত তথ্যও ক্যাপচার করতে পারে। যেমন, Edge, ক্লায়েন্ট cert-এর SHA1 ফিঙ্গারপ্রিন্ট এবং PEM ফর্ম্যাটে ক্লায়েন্ট cert ক্যাপচার করতে পারে।

একমুখী ও দ্বিমুখী TLS, দুটির ক্ষেত্রেই তথ্য ক্যাপচার করা হয়

নিচের টেবিলে ফ্লো ভেরিয়েবল তালিকাভুক্ত করা হয়েছে যাতে Edge-এর দ্বারা ক্যাপচার করা TLS কানেকশন সংক্রান্ত তথ্য থাকে এবং API প্রক্সিতে অ্যাক্সেস করার জন্য উপলভ্য থাকে। ভার্চুয়াল হোস্টের সংজ্ঞায় <ConnectionProperties>-এর মান true সেট করে একমুখী ও দ্বিমুখী TLS, দু'টির জন্যই এই তথ্য ক্যাপচার করা হয়:

ফ্লো ভেরিয়েবল বিবরণ
tls.cipher TLS কানেকশন দ্বারা ব্যবহৃত সাইফার।
tls.protocol TLS কানেকশন যে প্রোটোকল ব্যবহার করে।
tls.server.name অনুরোধ করা SNI সার্ভারের নাম।
tls.session.id

সেশন শনাক্তকারী।

আপনি <ConnectionProperties> অথবা <ClientProperties> বা true সেট করলে এই ফ্লো ভেরিয়েবল উপলভ্য হয়।

টু-ওয়ে TLS চলাকালীন অতিরিক্ত TLS তথ্য ক্যাপচার করা

নিম্নলিখিত সারণীতে ফ্লো ভেরিয়েবল তালিকাভুক্ত করা হয়েছে যাতে Edge-এর দ্বিমুখী TLS-এর মাধ্যমে ক্যাপচার করা ক্লায়েন্ট সার্টিফিকেট সংক্রান্ত বিবরণ থাকে। ভার্চুয়াল হোস্ট ডেফিনিশনে <ClientProperties> true হিসেবে সেট করে এই তথ্য টু-ওয়ে TLS-এর জন্য ক্যাপচার করা হয়:

ফ্লো ভেরিয়েবল বিবরণ
tls.client.s.dn ক্লায়েন্ট সার্টিফিকেটের স্বতন্ত্র নাম (DN) সংক্রান্ত বিষয়।
tls.client.i.dn ক্লায়েন্ট সার্টিফিকেটের ইসুকারীর স্বতন্ত্র নাম (DN)।
tls.client.raw.cert PEM ফর্ম্যাটে ক্লায়েন্ট cert.
tls.client.cert.serial ক্লায়েন্ট cert-এর সিরিয়াল নম্বর।
tls.client.cert.fingerprint ক্লায়েন্ট cert-এর SHA1 ফিঙ্গারপ্রিন্ট।
tls.session.id

সেশন শনাক্তকারী।

আপনি <ConnectionProperties> বা <ClientProperties>-এর মধ্যে যেকোনও একটিকে true হিসেবে সেট করলে এই ফ্লো ভেরিয়েবল উপলভ্য হয়।

TLS তথ্য ক্যাপচার করার জন্য ভার্চুয়াল হোস্ট কনফিগার করা

TLS তথ্য ক্যাপচার করার জন্য ভার্চুয়াল হোস্ট কনফিগার করতে, <PropagateTLSInformation> থেকে true-এর মধ্যে নিচে উল্লেখ করা প্রপার্টি সেট করুন।

  • <ConnectionProperties>: একমুখী ও দ্বিমুখী TLS, দু'টির ক্ষেত্রেই TLS কানেকশন সংক্রান্ত তথ্য ক্যাপচার করার সুবিধা চালু করুন। ডিফল্ট ভ্যালু হল false।
  • <ClientProperties>: টু-ওয়ে TLS-এর জন্য অতিরিক্ত তথ্য ক্যাপচার করার সুবিধা চালু করুন। ডিফল্ট ভ্যালু হল false।

যেমন, নিম্নলিখিত ভার্চুয়াল হোস্টের সংজ্ঞা টু-ওয়ে TLS ব্যবহার করে এবং দুই ধরনের TLS তথ্যই ক্যাপচার করার সুযোগ দেয়:

<VirtualHost name="secure">
    ....
    <SSLInfo>
        <Enabled>true</Enabled>
        # Enable two-way TLS.
        <ClientAuthEnabled>true</ClientAuthEnabled>
        <IgnoreValidationErrors>false</IgnoreValidationErrors>
        <KeyAlias>ks-alias</KeyAlias>
        <KeyStore>ref://ks-ref</KeyStore>
        <TrustStore>ref://ts-ref</TrustStore>
    </SSLInfo>
    <PropagateTLSInformation>
        <ConnectionProperties>true</ConnectionProperties>
        <ClientProperties>true</ClientProperties>
    </PropagateTLSInformation>
</VirtualHost>

আপনি JSON বডি পাস করলে, প্রপার্টিগুলি এইভাবে সেট করুন:

  "propagateTLSInformation" : {
    "connectionProperties" : true,
    "clientProperties" : true
  }

হেডার সাইজের সীমা সেট করা

আপনি কোনও ভার্চুয়াল হোস্টে TLS তথ্য ক্যাপচার করার সুবিধা চালু করলে, Edge HTTP হেডার ব্যবহার করে সেই তথ্য পাস করে। তাই, আপনি Edge for the Cloud বা Edge for the Private Cloud ব্যবহার করছেন কিনা তার উপর ভিত্তি করে আপনাকে অবশ্যই নিশ্চিত করতে হবে যে হেডার সাইজ সীমা সঠিকভাবে সেট করা হয়েছে:

  • ক্লাউডের জন্য Edge: Apigee হেডার সাইজ যথাযথভাবে সেট করে।
  • প্রাইভেট ক্লাউডের জন্য Edge: ফিচার উপলভ্য নেই।

API প্রক্সিতে ফ্লো ভেরিয়েবল অ্যাক্সেস করা

আপনার API প্রক্সি থেকে, আপনি TLS ফ্লো ভেরিয়েবল অ্যাক্সেস ও পরিদর্শন করতে পারবেন। যেমন, আপনি AssignMessage নীতি ব্যবহার করে সেগুলি অ্যাক্সেস করতে পারেন, জাভাস্ক্রিপ্ট নীতি সহ জাভাস্ক্রিপ্টে সেগুলি অ্যাক্সেস করতে পারেন।

এছাড়াও, আপনি কোনও প্রক্সি বা টার্গেট ফ্লোয়ের <Condition> এলিমেন্টে, অথবা <Step> বা <RouteRule>-এ ফ্লো ভেরিয়েবল রেফার করতে পারবেন। যেমন, আপনি ক্লায়েন্টের SN-এর উপর ভিত্তি করে বিভিন্ন টার্গেটে অনুরোধ রাউট করতে পারেন।

আরও জানতে, দেখুন: