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

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

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

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

  • روتر 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 استفاده می‌کنید، به درستی تنظیم شده‌اند.

  • Edge for the Cloud : Apigee اندازه های هدر را به طور مناسب تنظیم می کند.
  • Edge برای Private Cloud : ویژگی در دسترس نیست.

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

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

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

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