دسترسی به اطلاعات اتصال «امنیت لایه انتقال» در پراکسی API

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

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

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

  • «مسیریاب لبه» گواهینامه‌اش را به کارخواه «امنیت لایه انتقال» ارائه می‌دهد تا اصالتش را اصالت‌سنجی کند. سپس مشتری هویت سرور را قبل‌از ارسال گواهی‌اش به سرور درستی‌سنجی می‌کند.
  • کارخواه «امنیت لایه انتقال» گواهینامه‌اش را به Edge ارائه می‌دهد تا هویتش را اصالت‌سنجی کند.

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

درحال ضبط اطلاعات اتصال «امنیت لایه انتقال»

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

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

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

ضبط اطلاعات برای هر دو «امنیت لایه انتقال» یک‌طرفه و دوطرفه

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

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

شناسه جلسه.

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

ضبط اطلاعات تکمیلی «امنیت لایه انتقال» درطول «امنیت لایه انتقال» دوطرفه

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

متغیر جریان شرح
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> را روی درست تنظیم کنید.

پیکربندی میزبان مجازی برای ضبط اطلاعات «امنیت لایه انتقال»

برای پیکربندی میزبان مجازی برای ضبط اطلاعات «امنیت لایه انتقال»، ویژگی‌های زیر را در <PropagateTLSInformation> روی true تنظیم کنید.

  • <ConnectionProperties>: فعال کردن ضبط اطلاعات اتصال «امنیت لایه انتقال» برای «امنیت لایه انتقال» یک‌طرفه و دوطرفه. مقدار پیش‌فرض false است.
  • ‫<ClientProperties>: فعال کردن ضبط اطلاعات تکمیلی برای «امنیت لایه انتقال» دوطرفه. مقدار پیش‌فرض false است.

برای مثال، تعریف میزبان مجازی زیر از «امنیت لایه انتقال» دوطرفه استفاده می‌کند و ضبط هر دو نوع اطلاعات «امنیت لایه انتقال» را فعال می‌کند:

<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 for the Cloud: Apigee اندازه‌های سرایند را به‌طور مناسب تنظیم می‌کند.
  • Edge for the Private Cloud: ویژگی دردسترس نیست.

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

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

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

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