دسترسی به اطلاعات اتصال TLS در یک پروکسی API

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

Edge به شما امکان می‌دهد میزبان‌های مجازی ایجاد کنید که از TLS یک‌طرفه و دوطرفه پشتیبانی می‌کنند. با TLS یک‌طرفه، کلاینت یک درخواست جلسه به یک میزبان مجازی مستقر در یک روتر Edge ارسال می‌کند و روتر با یک گواهی که حاوی کلید عمومی میزبان مجازی است پاسخ می‌دهد. برای یک گواهی امضا شده، کلاینت می‌تواند درخواستی را به مرجع صدور گواهی (CA) برای تأیید اعتبار گواهی ارسال کند.

در TLS دوطرفه، هم کلاینت و هم Edge گواهی‌هایی را که به عنوان بخشی از یک درخواست اعتبارسنجی می‌شوند، قبول می‌کنند:

  • روتر لبه، گواهی خود را برای احراز هویت به کلاینت TLS ارائه می‌دهد. سپس کلاینت قبل از ارسال گواهی خود به سرور، هویت سرور را تأیید می‌کند.
  • کلاینت TLS گواهی خود را برای احراز هویت به Edge ارائه می‌دهد.

برای اطلاعات بیشتر به «درباره میزبان‌های مجازی» مراجعه کنید.

ضبط اطلاعات اتصال TLS

در طول درخواست به یک پروکسی API از طریق یک میزبان مجازی که از TLS پشتیبانی می‌کند، Edge می‌تواند اطلاعات مربوط به اتصال TLS را ضبط کند. پروکسی API شما سپس می‌تواند از طریق متغیرهای جریان به آن اطلاعات دسترسی پیدا کند تا تجزیه و تحلیل و اعتبارسنجی بیشتری انجام دهد.

نوع اطلاعات TLS ضبط شده توسط Edge بستگی به این دارد که آیا میزبان مجازی از TLS یک طرفه یا دو طرفه پشتیبانی می‌کند. به عنوان مثال، برای TLS یک طرفه، Edge می‌تواند اطلاعات مربوط به رمز TLS یا پروتکل TLS مورد استفاده در اتصال TLS را ضبط کند.

برای TLS دوطرفه، Edge می‌تواند تمام اطلاعات مشابه TLS یک‌طرفه را ضبط کند، و همچنین اطلاعات مربوط به گواهی کلاینت را نیز ضبط کند. به عنوان مثال، Edge می‌تواند اثر انگشت SHA1 گواهی کلاینت و گواهی کلاینت را با فرمت PEM ضبط کند.

ثبت اطلاعات برای TLS یک‌طرفه و دوطرفه

جدول زیر متغیرهای جریانی را فهرست می‌کند که حاوی اطلاعات اتصال TLS هستند که توسط Edge ضبط شده و برای دسترسی در پروکسی API در دسترس هستند. این اطلاعات برای TLS یک طرفه و دو طرفه با تنظیم <ConnectionProperties> روی true در تعریف میزبان مجازی ضبط می‌شود:

متغیر جریان توضیحات
tls.cipher رمزی که توسط اتصال TLS استفاده می‌شود.
tls.protocol پروتکلی که توسط اتصال TLS استفاده می‌شود.
tls.server.name نام سرور SNI درخواستی.
tls.session.id

شناسه جلسه.

این متغیر جریان زمانی در دسترس است که <ConnectionProperties> یا <ClientProperties> یا روی true تنظیم کنید.

ثبت اطلاعات اضافی TLS در طول TLS دوطرفه

جدول زیر متغیرهای جریانی را فهرست می‌کند که حاوی جزئیات گواهی کلاینت هستند که توسط Edge در TLS دوطرفه ضبط شده‌اند. این اطلاعات برای TLS دوطرفه با تنظیم <ClientProperties> روی true در تعریف میزبان مجازی ضبط می‌شود:

متغیر جریان توضیحات
tls.client.s.dn نام برجسته (DN) موضوع گواهی مشتری.
tls.client.i.dn نام برجسته صادرکننده (DN) گواهی مشتری.
tls.client.raw.cert گواهی مشتری در قالب PEM.
tls.client.cert.serial شماره سریال گواهی مشتری.
tls.client.cert.fingerprint اثر انگشت 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 برای Cloud یا Edge برای Private Cloud استفاده می‌کنید، تنظیم شده است:

  • لبه برای ابر : Apigee اندازه هدر را به طور مناسب تنظیم می‌کند.
  • اج برای فضای ابری خصوصی : این ویژگی در دسترس نیست.

دسترسی به متغیرهای جریان در یک پروکسی API

از درون پروکسی API خود، می‌توانید به متغیرهای جریان TLS دسترسی پیدا کرده و آنها را بررسی کنید. برای مثال، می‌توانید از سیاست AssignMessage برای دسترسی به آنها استفاده کنید، و با سیاست جاوا اسکریپت به آنها در جاوا اسکریپت دسترسی پیدا کنید.

همچنین می‌توانید متغیرهای جریان را در عنصر <Condition> از یک جریان پروکسی یا هدف، یا در <Step> یا <RouteRule> ارجاع دهید. برای مثال، می‌توانید یک درخواست را بر اساس SN کلاینت به اهداف مختلف مسیریابی کنید.

برای اطلاعات بیشتر، ببینید: