تنظیم اعتبار سنجی کلید API

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

می‌توانید با پیوست کردن یک خط‌مشی از نوع Verify API Key، اعتبارسنجی کلید API را برای یک API تنظیم کنید. تنها تنظیم مورد نیاز برای تأیید خط‌مشی کلید API، مکان مورد انتظار کلید API در درخواست مشتری است. پراکسی API مکانی را که شما مشخص کرده اید بررسی می کند و کلید API را استخراج می کند. اگر کلید API در محل مورد انتظار وجود نداشته باشد، خطا ایجاد می شود و درخواست رد می شود. کلیدهای API را می توان در یک پارامتر پرس و جو، یک پارامتر فرم یا یک هدر HTTP قرار داد.

به عنوان مثال، پیکربندی خط مشی زیر مکان کلید مورد انتظار را به عنوان یک پارامتر پرس و جو به نام apikey تعریف می کند. یک درخواست موفق باید کلید API را به عنوان پارامتر پرس و جو که به درخواست ضمیمه شده است ارائه کند، به عنوان مثال، ?apikey=Y7yeiuhcbKJHD790 .

برای تأیید کلیدهای API، خط مشی زیر را ایجاد کنید:

<VerifyAPIKey name="APIKeyValidation">
  <APIKey ref="request.queryparam.apikey"/>
</VerifyAPIKey>

این خط‌مشی را می‌توان به هر API که نیاز به محافظت از آن دارید پیوست کرد.

مستندات جامع این نوع خط‌مشی را می‌توان در مبحث مرجع خط‌مشی، Verify API Key Policy یافت.

پراکسی های API به طور خودکار از تمام هدرهای HTTP و پارامترهای پرس و جو که در درخواست موجود است عبور می کنند. بنابراین، پس از تأیید کلید API، بهتر است آن را از پیام حذف کنید تا کلید API از طریق سیم به سرویس Backend ارسال نشود. می توانید این کار را با استفاده از یک خط مشی از نوع AssignMessage به صورت زیر انجام دهید:

<AssignMessage name="StripApiKey">
    <DisplayName>Remove Query Param</DisplayName>
    <Remove>
        <QueryParams>
            <QueryParam name="apikey"/>
        </QueryParams>
    </Remove>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"></AssignTo>
</AssignMessage>

پیوست خط مشی

خط‌مشی‌ها باید به عنوان مراحل پردازش به یک پروکسی API متصل شوند. با اعمال خط مشی به درخواست PreFlow، کلیدهای API در هر درخواست دریافت شده توسط پروکسی API از یک برنامه مشتری تأیید می شوند. پس از تأیید، کلید API از درخواست خروجی حذف می شود.

خط‌مشی‌ها را به صورت زیر به ProxyEndpoint پروکسی API پیوست کنید تا از آن محافظت شود:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request>
      <Step><Name>APIKeyValidation</Name></Step>
      <Step><Name>StripApiKey</Name></Step>
    </Request>
  </PreFlow>

پس از پیوست کردن خط مشی، پروکسی API را مستقر کنید.

ارسال درخواست با یک کلید API معتبر

به عنوان یک سرپرست در سازمان خود، می توانید کلید API هر برنامه را به شرح زیر بازیابی کنید:

$ curl https://api.enterprise.apigee.com/v1/o/{myorg}/developers/{developer_email}/apps/{app_name} -u email:password 

نمایه برنامه ای که برای این تماس برگردانده می شود، کلید مصرف کننده (کلید API) و مخفی را ارائه می دهد. مقدار کلید مصرف کننده مقداری است که برای کلید API در درخواست خود به API محافظت شده استفاده می کنید.

به عنوان مثال، درخواستی که شامل کلید API نباشد منجر به عدم موفقیت مجوز می شود.

$ curl http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282

پیام شکست نشان می دهد که این خط مشی برای یک کلید API بررسی شده است اما کلید معتبری پیدا نکرده است:

OAuth Failure : Could not resolve the app key with variable request.queryparam.apikey

هنگامی که کلید مصرف کننده برای برنامه به عنوان پارامتر پرس و جو گنجانده می شود، نتیجه مورد انتظار مجوز موفقیت آمیز است:

$ curl http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282&"apikey=PulSCqMnXGchW0pC0s5o9ngHVTWMeLqk"

نتیجه مورد انتظار پاسخ موفقیت آمیز سرویس هواشناسی است.

تغییر مقدار مقدار کلید API در درخواست منجر به شکست مجوز می شود:

$ curl http://{org_name}-test.apigee.net/weather?forecastrss?w=12797282&"apikey=PulSCqMnXGchW0"

نتایج در:

OAuth Failure : Consumer Key is Invalid

به یاد داشته باشید، به عنوان یک سرپرست برای سازمان خود، می توانید کلید مصرف کننده را برای هر برنامه ثبت شده در یک سازمان بازیابی کنید:

$ curl https://api.enterprise.apigee.com/v1/o/{myorg}/developers/{developer_email}/apps/{app_name} -u email:password