APIKey নীতি যাচাই করুন

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

কী

‘ভেরিফাই এপিআই কী’ পলিসি আপনাকে রানটাইমে এপিআই কী যাচাইকরণ বাধ্যতামূলক করার সুযোগ দেয়, যার ফলে শুধুমাত্র অনুমোদিত এপিআই কী-যুক্ত অ্যাপগুলোই আপনার এপিআই অ্যাক্সেস করতে পারে। এই পলিসি নিশ্চিত করে যে এপিআই কীগুলো বৈধ, বাতিল করা হয়নি এবং আপনার এপিআই প্রোডাক্টের সাথে যুক্ত নির্দিষ্ট রিসোর্সগুলো ব্যবহারের জন্য অনুমোদিত।

নমুনা

কোয়েরি প্যারামিটারে কী লিখুন

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

এই উদাহরণে, পলিসিটি request.queryparam.apikey নামক একটি ফ্লো ভেরিয়েবলে এপিআই কী (API key) খুঁজে পাওয়ার প্রত্যাশা করে request.queryparam.{name} ভেরিয়েবলটি একটি স্ট্যান্ডার্ড এজ (Edge) ফ্লো ভেরিয়েবল, যা ক্লায়েন্ট রিকোয়েস্টে পাঠানো কোয়েরি প্যারামের (query param) মান দিয়ে পূরণ করা হয়।

নিম্নলিখিত curl কমান্ডটি একটি query param-এ API key পাস করে:

curl http://myorg-test.apigee.net/mocktarget?apikey=IEYRtW2cb7A5Gs54A1wKElECBL65GVls

হেডারে কী লিখুন

<VerifyAPIKey name="APIKeyVerifier">
    <APIKey ref="request.header.x-apikey" />
</VerifyAPIKey>

এই উদাহরণে, পলিসিটি request.header.x-apikey নামের একটি ফ্লো ভেরিয়েবলে এপিআই কী (API key) খুঁজে পাওয়ার প্রত্যাশা করে। ` request.header.{name} ভেরিয়েবলটি একটি স্ট্যান্ডার্ড এজ (Edge) ফ্লো ভেরিয়েবল, যা ক্লায়েন্ট রিকোয়েস্টে পাঠানো হেডারের মান দিয়ে পূরণ করা হয়।

নিম্নলিখিত cURL-টি দেখায় কিভাবে হেডারে API কী পাস করতে হয়:

curl "http://myorg-test.apigee.net/mocktarget" -H "x-apikey:IEYRtW2cb7A5Gs54A1wKElECBL65GVls"

ভেরিয়েবল কী করুন

<VerifyAPIKey name="APIKeyVerifier">
    <APIKey ref="requestAPIKey.key"/>
</VerifyAPIKey>

পলিসিটি কী-টি ধারণকারী যেকোনো ভেরিয়েবলকে রেফারেন্স করতে পারে। এই উদাহরণে, পলিসিটি requestAPIKey.key নামের একটি ভেরিয়েবল থেকে API কী-টি এক্সট্র্যাক্ট করে।

ওই ভেরিয়েবলটি কীভাবে পূরণ করা হবে তা আপনার উপর নির্ভর করে। উদাহরণস্বরূপ, আপনি এক্সট্র্যাক্ট ভেরিয়েবলস পলিসি ব্যবহার করে myKey নামের একটি কোয়েরি প্যারামিটার থেকে requestAPIKey.key-কে পূরণ করতে পারেন, যেমনটি নিচে দেখানো হয়েছে:

<ExtractVariables async="false" continueOnError="false" enabled="true" name="SetAPIKeyVar">
    <Source>request</Source>
    <QueryParam name="myKey">
        <Pattern ignoreCase="true">{key}</Pattern>
    </QueryParam>
    <VariablePrefix>requestAPIKey</VariablePrefix>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

অ্যাক্সেস নীতি প্রবাহ ভেরিয়েবল

<AssignMessage async="false" continueOnError="false" enabled="true" name="accessverifyvars">
    <AssignVariable>
        <Name>devFirstName</Name>
        <Ref>verifyapikey.verify-api-key.developer.firstName</Ref>
        <Value>ErrorOnCopy</Value>
    </AssignVariable>
    <AssignVariable>
        <Name>devLastName</Name>
        <Ref>verifyapikey.verify-api-key.developer.lastName</Ref>
        <Value>ErrorOnCopy</Value>
    </AssignVariable>
    <AssignVariable>
        <Name>devEmail</Name>
        <Ref>verifyapikey.verify-api-key.developer.email</Ref>
        <Value>ErrorOnCopy</Value>
    </AssignVariable>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

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

এই ভেরিয়েবলগুলোর সবগুলোর শুরুতে রয়েছে:

verifyapikey.{policy_name}

এই উদাহরণে, ভেরিফাই এপিআই কী পলিসির নাম হলো ' verify-api-key '। সুতরাং, আপনি verifyapikey.verify-api-key.developer.firstName.

লার্ন এজ


এপিআই কী যাচাইকরণ নীতি সম্পর্কে

যখন কোনো ডেভেলপার Edge-এ একটি অ্যাপ রেজিস্টার করেন, তখন Edge স্বয়ংক্রিয়ভাবে একটি কনজিউমার কী এবং সিক্রেট পেয়ার তৈরি করে। আপনি Edge UI-তে অ্যাপটির কনজিউমার কী এবং সিক্রেট পেয়ার দেখতে পারেন অথবা Edge API থেকে সেগুলো অ্যাক্সেস করতে পারেন।

অ্যাপ নিবন্ধনের সময়, ডেভেলপার অ্যাপটির সাথে যুক্ত করার জন্য এক বা একাধিক এপিআই প্রোডাক্ট নির্বাচন করেন, যেখানে এপিআই প্রোডাক্ট হলো এপিআই প্রক্সির মাধ্যমে অ্যাক্সেসযোগ্য রিসোর্সসমূহের একটি সংগ্রহ। এরপর ডেভেলপার অ্যাপটির সাথে যুক্ত এপিআই প্রোডাক্টের অন্তর্ভুক্ত কোনো এপিআই-তে করা প্রতিটি অনুরোধের অংশ হিসেবে এপিআই কী (কনজিউমার কী) প্রদান করেন। আরও বিস্তারিত জানতে পাবলিশিং ওভারভিউ দেখুন।

এপিআই কী (API key) অথেনটিকেশন টোকেন হিসেবে ব্যবহার করা যায়, অথবা এটি ব্যবহার করে OAuth অ্যাক্সেস টোকেনও পাওয়া যায়। OAuth-এ, এপিআই কী-কে 'ক্লায়েন্ট আইডি' বলা হয়। এই নাম দুটি একে অপরের পরিবর্তে ব্যবহার করা যায়। আরও তথ্যের জন্য OAuth হোম দেখুন।

'Verify API Key' পলিসিটি কার্যকর করার সময় Edge স্বয়ংক্রিয়ভাবে এক সেট ফ্লো ভেরিয়েবল পূরণ করে। আরও তথ্যের জন্য নিচে 'Flow variables' দেখুন।

উপাদান রেফারেন্স

নিম্নলিখিত উপাদান এবং বৈশিষ্ট্যগুলি আপনি এই পলিসিতে কনফিগার করতে পারেন:

<VerifyAPIKey async="false" continueOnError="false" enabled="true" name="Verify-API-Key-1">
    <DisplayName>Custom label used in UI</DisplayName>
    <APIKey ref="variable_containing_api_key"/>
</VerifyAPIKey>

<VerifyAPIKey> অ্যাট্রিবিউট

নিম্নলিখিত উদাহরণটি <VerifyAPIKey> ট্যাগের অ্যাট্রিবিউটগুলো দেখায়:

<VerifyAPIKey async="false" continueOnError="false" enabled="true" name="Verify-API-Key-1">

নিম্নলিখিত সারণী সমস্ত নীতির মূল উপাদানগুলির জন্য সাধারণ বৈশিষ্ট্যগুলি বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
name

নীতির অভ্যন্তরীণ নাম। name বৈশিষ্ট্যের মানটিতে অক্ষর, সংখ্যা, স্পেস, হাইফেন, আন্ডারস্কোর এবং পিরিয়ড থাকতে পারে। এই মান 255 অক্ষরের বেশি হতে পারে না।

ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে <DisplayName> উপাদানটি ব্যবহার করুন।

N/A প্রয়োজন
continueOnError

একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে false সেট করুন৷ এটি বেশিরভাগ নীতির জন্য প্রত্যাশিত আচরণ।

একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে true সেট করুন৷

মিথ্যা ঐচ্ছিক
enabled

নীতি প্রয়োগ করতে true সেট করুন৷

নীতি বন্ধ করতে false সেট করুন। নীতিটি প্রবাহের সাথে সংযুক্ত থাকলেও তা কার্যকর করা হবে না।

সত্য ঐচ্ছিক
async

এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷

মিথ্যা অবচয়

<DisplayName> উপাদান

ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে name বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।

<DisplayName>Policy Display Name</DisplayName>
ডিফল্ট

N/A

আপনি এই উপাদানটি বাদ দিলে, নীতির name বৈশিষ্ট্যের মান ব্যবহার করা হবে।

উপস্থিতি ঐচ্ছিক
টাইপ স্ট্রিং

<APIKey> উপাদান

এই এলিমেন্টটি সেই ফ্লো ভেরিয়েবলকে নির্দিষ্ট করে, যেখানে এপিআই কী (API key) থাকে। সাধারণত, ক্লায়েন্ট একটি কোয়েরি প্যারামিটার, এইচটিটিপি হেডার বা ফর্ম প্যারামিটারের মাধ্যমে এপিআই কী পাঠিয়ে থাকে। উদাহরণস্বরূপ, যদি x-apikey নামক কোনো হেডারে কী-টি পাঠানো হয়, তাহলে কী-টি request.header.x-apikey ভেরিয়েবলটিতে পাওয়া যাবে।

ডিফল্ট না
উপস্থিতি প্রয়োজনীয়
প্রকার স্ট্রিং

বৈশিষ্ট্য

নিম্নলিখিত সারণিতে <APIKey> উপাদানের অ্যাট্রিবিউটগুলো বর্ণনা করা হয়েছে।

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
রেফারেন্স

যে ভেরিয়েবলে এপিআই কী থাকে, তার একটি রেফারেন্স। প্রতি পলিসিতে কেবল একটি অবস্থান অনুমোদিত।

প্রযোজ্য নয় প্রয়োজনীয়

উদাহরণ

এই উদাহরণগুলিতে, কী-টি প্যারামিটার এবং x-apikey নামক একটি হেডারের মাধ্যমে পাস করা হয়।

কোয়েরি প্যারামিটার হিসাবে:

<VerifyAPIKey name="APIKeyVerifier">
    <APIKey ref="request.queryparam.x-apikey"/>
</VerifyAPIKey>

একটি HTTP হেডার হিসাবে:

<VerifyAPIKey name="APIKeyVerifier">
    <APIKey ref="request.header.x-apikey"/>
</VerifyAPIKey>

HTTP ফর্ম প্যারামিটার হিসাবে:

<VerifyAPIKey name="APIKeyVerifier">
    <APIKey ref="request.formparam.x-apikey"/>
</VerifyAPIKey>

স্কিমা

প্রবাহ পরিবর্তনশীল

যখন একটি বৈধ API কী-এর উপর 'ভেরিফাই এপিআই কী' পলিসি প্রয়োগ করা হয়, তখন Edge এক সেট ফ্লো ভ্যারিয়েবল তৈরি করে। এই ভ্যারিয়েবলগুলো ফ্লো-এর পরবর্তী পর্যায়ে এক্সিকিউট হওয়া পলিসি বা কোডের জন্য উপলব্ধ থাকে এবং প্রায়শই এপিআই কী-এর অ্যাট্রিবিউট, যেমন অ্যাপের নাম, কী-টিকে অথরাইজ করতে ব্যবহৃত এপিআই প্রোডাক্ট, বা এপিআই কী-এর নিজস্ব অ্যাট্রিবিউটের উপর ভিত্তি করে কাস্টম প্রসেসিং করার জন্য ব্যবহৃত হয়।

নীতিমালাটি বিভিন্ন ধরনের প্রবাহ চলক পূরণ করে, যার মধ্যে রয়েছে:

  • সাধারণ
  • অ্যাপ
  • ডেভেলপার
  • কোম্পানি
  • বিশ্লেষণ

প্রতিটি ধরণের ফ্লো ভেরিয়েবলের একটি ভিন্ন প্রিফিক্স থাকে। বিশেষভাবে অ্যারে হিসাবে নির্দেশিত ভেরিয়েবলগুলি ছাড়া বাকি সব ভেরিয়েবলই স্কেলার।

সাধারণ প্রবাহ চলক

নিম্নলিখিত সারণীতে ভেরিফাই এপিআই কী পলিসি দ্বারা পূরণ করা সাধারণ ফ্লো ভেরিয়েবলগুলো তালিকাভুক্ত করা হয়েছে। এই ভেরিয়েবলগুলোর সবগুলোর শুরুতে নিম্নলিখিত উপসর্গটি রয়েছে:

verifyapikey.{policy_name}

উদাহরণস্বরূপ: verifyapikey.{policy_name}.client_id

উপলব্ধ ভেরিয়েবলগুলো হলো:

পরিবর্তনশীল বর্ণনা
client_id অনুরোধকারী অ্যাপ কর্তৃক সরবরাহকৃত কনজিউমার কী (যা এপিআই কী বা অ্যাপ কী নামেও পরিচিত)।
client_secret কনজিউমার কী-এর সাথে যুক্ত কনজিউমার সিক্রেট।
redirection_uris অনুরোধে থাকা যেকোনো পুনঃনির্দেশ URI।
developer.app.id

অনুরোধকারী ডেভেলপার অ্যাপের আইডি।

developer.app.name অনুরোধকারী ডেভেলপার অ্যাপটির নাম।
developer.id

অনুরোধকারী অ্যাপটির মালিক হিসেবে নিবন্ধিত ডেভেলপারের আইডি।

developer.{custom_attrib_name} অ্যাপ কী প্রোফাইল থেকে প্রাপ্ত যেকোনো কাস্টম অ্যাট্রিবিউট
DisplayName পলিসিটির <DisplayName> অ্যাট্রিবিউটের মান।
failed এপিআই কী যাচাইকরণ ব্যর্থ হলে 'true' সেট করুন।
{custom_app_attrib}

অ্যাপ প্রোফাইল থেকে উদ্ভূত যেকোনো কাস্টম অ্যাট্রিবিউট। কাস্টম অ্যাট্রিবিউটের নাম উল্লেখ করুন।

apiproduct.name* অনুরোধটি যাচাই করতে ব্যবহৃত এপিআই প্রোডাক্টের নাম।
apiproduct.{custom_attrib_name}* এপিআই প্রোডাক্ট প্রোফাইল থেকে প্রাপ্ত যেকোনো কাস্টম অ্যাট্রিবিউট।
apiproduct.developer.quota.limit* এপিআই পণ্যের উপর নির্ধারিত কোটা সীমা, যদি থাকে।
apiproduct.developer.quota.interval* এপিআই প্রোডাক্টে নির্ধারিত কোটার ব্যবধান, যদি থাকে।
apiproduct.developer.quota.timeunit* এপিআই পণ্যে নির্ধারিত কোটা সময়ের একক, যদি থাকে।
যদি এপিআই প্রোডাক্টগুলো বৈধ এনভায়রনমেন্ট, প্রক্সি এবং রিসোর্স (যা proxy.pathsuffix থেকে প্রাপ্ত) দিয়ে কনফিগার করা থাকে, তাহলে এপিআই প্রোডাক্ট ভ্যারিয়েবলগুলো স্বয়ংক্রিয়ভাবে পূরণ হয়ে যায়। এপিআই প্রোডাক্ট সেট আপ করার নির্দেশাবলীর জন্য, “Using the Edge management API to Publish APIs” দেখুন।

অ্যাপ প্রবাহ ভেরিয়েবল

অ্যাপ সম্পর্কিত তথ্য ধারণকারী নিম্নলিখিত ফ্লো ভেরিয়েবলগুলো পলিসি দ্বারা পূরণ করা হয়। এই ভেরিয়েবলগুলোর সবগুলোর শুরুতে একটি উপসর্গ থাকে:

verifyapikey.{policy_name}.app .

উদাহরণস্বরূপ:

verifyapikey.{policy_name}.app.name

উপলব্ধ ভেরিয়েবলগুলো হলো:

পরিবর্তনশীল বর্ণনা
name অ্যাপটির নাম।
id অ্যাপটির আইডি।
accessType Apigee দ্বারা অব্যবহৃত।
callbackUrl অ্যাপটির কলব্যাক ইউআরএল। সাধারণত শুধু OAuth-এর জন্য ব্যবহৃত হয়।
DisplayName অ্যাপটির প্রদর্শিত নাম।
status অ্যাপের অবস্থা, যেমন 'অনুমোদিত' বা 'বাতিল'।
apiproducts অ্যাপটির সাথে সংশ্লিষ্ট এপিআই প্রোডাক্টগুলোর তালিকা সম্বলিত একটি অ্যারে।
appFamily অ্যাপটি ধারণকারী যেকোনো অ্যাপ ফ্যামিলি, অথবা 'ডিফল্ট'।
appParentStatus অ্যাপটির প্যারেন্টের স্ট্যাটাস, যেমন 'সক্রিয়' বা 'নিষ্ক্রিয়'।
appType অ্যাপের ধরণ, যা "কোম্পানি" অথবা "ডেভেলপার" হতে হবে।
appParentId মূল অ্যাপের আইডি।
created_at অ্যাপটি তৈরি করার তারিখ ও সময়ের বিবরণ।
created_by অ্যাপটির নির্মাতার ইমেইল ঠিকানা।
last_modified_at অ্যাপটি সর্বশেষ আপডেট করার তারিখ ও সময়ের তথ্য।
last_modified_by যে ডেভেলপার সর্বশেষ অ্যাপটি আপডেট করেছেন, তাঁর ইমেইল ঠিকানা।
{app_custom_attributes} যেকোনো কাস্টম অ্যাপ অ্যাট্রিবিউট। কাস্টম অ্যাট্রিবিউটের নাম উল্লেখ করুন।

ডেভেলপার ফ্লো ভেরিয়েবল

ডেভেলপার সম্পর্কিত তথ্য ধারণকারী নিম্নলিখিত ফ্লো ভেরিয়েবলগুলো পলিসি দ্বারা পূরণ করা হয়। এই ভেরিয়েবলগুলোর সবগুলোর শুরুতে একটি উপসর্গ থাকে:

verifyapikey.{policy_name}.developer

উদাহরণস্বরূপ:

verifyapikey.{policy_name}.developer.id

উপলব্ধ ভেরিয়েবলগুলো হলো:

পরিবর্তনশীল বর্ণনা
id {org_name}@@@{developer_id} ফেরত দেয়
userName ডেভেলপারের ব্যবহারকারীর নাম।
firstName ডেভেলপারের প্রথম নাম।
lastName ডেভেলপারের শেষ নাম।
email ডেভেলপারের ইমেইল ঠিকানা।
status ডেভেলপারের স্ট্যাটাস, যা সক্রিয়, নিষ্ক্রিয় বা লগইন_লক হিসেবে দেখানো হয়।
apps ডেভেলপারের সাথে সংশ্লিষ্ট অ্যাপগুলোর একটি সমাহার।
created_at ডেভেলপার তৈরির তারিখ/সময়ের স্ট্যাম্প।
created_by যে ব্যবহারকারী ডেভেলপারটি তৈরি করেছেন, তাঁর ইমেইল ঠিকানা।
last_modified_at ডেভেলপারকে সর্বশেষ পরিবর্তন করার তারিখ/সময়ের স্ট্যাম্প।
last_modified_by যে ব্যবহারকারী ডেভেলপারকে পরিবর্তন করেছেন, তার ইমেল ঠিকানা।
{developer_custom_attributes} যেকোনো কাস্টম ডেভেলপার অ্যাট্রিবিউট। কাস্টম অ্যাট্রিবিউটের নাম উল্লেখ করুন।
Company ডেভেলপারের সাথে সংশ্লিষ্ট কোম্পানির নাম (যদি থাকে)।

কোম্পানির প্রবাহ ভেরিয়েবল

কোম্পানি সম্পর্কিত তথ্য ধারণকারী নিম্নলিখিত ফ্লো ভেরিয়েবলগুলো পলিসি দ্বারা পূরণ করা হয়। এই ভেরিয়েবলগুলোর সবগুলোর শুরুতে একটি উপসর্গ (prefix) যুক্ত থাকে:

verifyapikey.{policy_name}.company

উদাহরণস্বরূপ:

verifyapikey.{policy_name}.company.name

উপলব্ধ ভেরিয়েবলগুলো হলো:

পরিবর্তনশীল বর্ণনা
name কোম্পানির নাম।
displayName কোম্পানির প্রদর্শিত নাম।
id

কোম্পানির আইডি।

apps কোম্পানির অ্যাপগুলোর তালিকা সম্বলিত একটি অ্যারে।
appOwnerStatus
অ্যাপ মালিকের অবস্থা সক্রিয়, নিষ্ক্রিয়, অথবা লগইন_লক।
created_at কোম্পানিটি তৈরির তারিখ ও সময়ের বিবরণ।
created_by যে ব্যবহারকারী কোম্পানিটি তৈরি করেছেন, তাঁর ইমেইল ঠিকানা।
last_modified_at কোম্পানিটি সর্বশেষ কখন পরিবর্তন করা হয়েছিল তার তারিখ ও সময়ের বিবরণ।
last_modified_by যে ব্যবহারকারী সর্বশেষ কোম্পানিটি পরিবর্তন করেছেন, তার ইমেইল ঠিকানা।
{company_custom_attributes} যেকোনো কাস্টম কোম্পানি অ্যাট্রিবিউট। কাস্টম অ্যাট্রিবিউটের নাম উল্লেখ করুন।

অ্যানালিটিক্স ভেরিয়েবল

যখন একটি বৈধ API কী-এর জন্য 'ভেরিফাই এপিআই কী' পলিসি প্রয়োগ করা হয়, তখন অ্যানালিটিক্সে নিম্নলিখিত ভেরিয়েবলগুলি স্বয়ংক্রিয়ভাবে পূরণ হয়ে যায়। এই ভেরিয়েবলগুলি শুধুমাত্র 'ভেরিফাই এপিআই কী' পলিসি এবং 'OAuth' পলিসি দ্বারাই পূরণ করা হয়।

ডেভেলপার এবং অ্যাপগুলোর ব্যবহারের ধরণ সম্পর্কে ধারণা পেতে, ভেরিয়েবল ও ভ্যালুগুলোকে ডাইমেনশন হিসেবে ব্যবহার করে অ্যানালিটিক্স রিপোর্ট তৈরি করা যেতে পারে।

  • apiproduct.name
  • ডেভেলপার.অ্যাপ.নাম
  • ক্লায়েন্ট_আইডি
  • ডেভেলপার.আইডি

ত্রুটির রেফারেন্স

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause
keymanagement.service.CompanyStatusNotActive 401 The Company associated with the Developer App that has the API key you are using has an inactive status. When a Company's status is set to inactive, you cannot access the developers or apps associated with that Company. An org admin can change a Company's status using the management API. See Set the Status of a Company.
keymanagement.service.DeveloperStatusNotActive 401

The developer who created the Developer App that has the API key you are using has an inactive status. When an App Developer's status is set to inactive, any Developer Apps created by that developer are deactivated. An admin user with appropriate permissions (such as Organization Administrator) can change a developer's status in the following ways:

keymanagement.service.invalid_client-app_not_approved 401 The Developer App associated with the API key is revoked. A revoked app cannot access any API products and cannot invoke any API managed by Apigee Edge. An org admin can change the status of a Developer App using the management API. See Approve or Revoke Developer App.
oauth.v2.FailedToResolveAPIKey 401 The policy expects to find the API key in a variable that is specified in the policy's <APIKey> element. This error arises when the expected variable does not exist (it cannot be resolved).
oauth.v2.InvalidApiKey 401 An API key was received by Edge, but it is invalid. When Edge looks up the key in its database, it must exactly match the on that was sent in the request. If the API worked previously, make sure the key was not regenerated. If the key was regenerated, you will see this error if you try to use the old key. For details, see Register apps and manage API keys.
oauth.v2.InvalidApiKeyForGivenResource 401 An API key was received by Edge, and it is valid; however, it does not match an approved key in the Developer App associated with your API proxy through a Product.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause
SpecifyValueOrRefApiKey The <APIKey> element does not have a value or key specified.

Fault variables

These variables are set when a runtime error occurs. For more information, see What you need to know about policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name Matches "FailedToResolveAPIKey"
oauthV2.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. oauthV2.VK-VerifyAPIKey.failed = true

Example error responses

{
   "fault":{
      "faultstring":"Invalid ApiKey",
      "detail":{
         "errorcode":"oauth.v2.InvalidApiKey"
      }
   }
}
{
   "fault":{
      "detail":{
         "errorcode":"keymanagement.service.DeveloperStatusNotActive"
      },
      "faultstring":"Developer Status is not Active"
   }
}

Example fault rule

<FaultRule name="FailedToResolveAPIKey">
    <Step>
        <Name>AM-FailedToResolveAPIKey</Name>
    </Step>
    <Condition>(fault.name Matches "FailedToResolveAPIKey") </Condition>
</FaultRule>

সম্পর্কিত বিষয়