আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন। তথ্য
কী
অ্যাক্সেস টোকেনের সাথে যুক্ত কাস্টম অ্যাট্রিবিউট যোগ বা আপডেট করতে দেয়। কাস্টম অ্যাট্রিবিউট বিভাগের নাম, গ্রাহক আইডি বা সেশন শনাক্তকারীর মতো বিষয় অন্তর্ভুক্ত করতে পারে। এছাড়াও, কাস্টমাইজ করা টোকেন এবং অনুমোদন কোড দেখুন।
আপনি শুধুমাত্র কাস্টম অ্যাট্রিবিউট যোগ বা পরিবর্তন করতে পারবেন। আপনি এই নীতি ব্যবহার করে স্কোপ, স্ট্যাটাস, expires_in, developer_email, client_id, org_name বা refresh_count-এর মতো ফিল্ড পরিবর্তন করতে পারবেন না। কোনও অ্যাট্রিবিউট আগে থেকেই থাকলে, এই নীতি সেটি আপডেট করে। সেটি না থাকলে, নীতি সেটি যোগ করে দেয়। উল্লেখ করা অ্যাক্সেস টোকেনটি অবশ্যই সঠিক হতে হবে এবং অনুমোদিত অবস্থায় থাকতে হবে।
নমুনা
প্রাথমিক উদাহরণ
OAuth 2.0 অ্যাক্সেস টোকেন আপডেট করার জন্য ব্যবহৃত নীতির একটি উদাহরণ নিচে দেওয়া হল। নিচের উদাহরণে
access_token নামের কোয়েরি প্যারামিটার খুঁজে অনুরোধ মেসেজ থেকে অ্যাক্সেস টোকেন
লোকেট করা হয়েছে। কোনও ক্লায়েন্ট অ্যাপ অ্যাক্সেস টোকেন দিলে, নিচে উল্লেখ করা নীতি
কোয়েরি প্যারামিটারে অ্যাক্সেস টোকেন খুঁজে নেবে। এটি অ্যাক্সেস
টোকেনের প্রোফাইল আপডেট করবে। এটি প্রোফাইলে department.id নামের একটি কাস্টম প্রপার্টি যোগ করে।
<SetOAuthV2Info name="SetOAuthV2Info">
<AccessToken ref="request.queryparam.access_token"></AccessToken>
<Attributes>
<Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
</Attributes>
</SetOAuthV2Info>এলিমেন্ট রেফারেন্স
এলিমেন্ট রেফারেন্সে SetOAuthV2 নীতির এলিমেন্ট ও অ্যাট্রিবিউট বর্ণনা করা আছে।
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="SetOAuthV2Info-1"> <DisplayName>Set OAuth v2.0 Info 1</DisplayName> <AccessToken ref={some-variable}></AccessToken> <Attributes/> </SetOAuthV2Info> </xml>
<SetOAuthV2Info> অ্যাট্রিবিউট
<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Set-OAuth-v20-Info-1">
নিম্নলিখিত সারণী সমস্ত নীতির মূল উপাদানগুলির জন্য সাধারণ বৈশিষ্ট্যগুলি বর্ণনা করে:
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
|---|---|---|---|
name | নীতির অভ্যন্তরীণ নাম। ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে | N/A | প্রয়োজন |
continueOnError | একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে | মিথ্যা | ঐচ্ছিক |
enabled | নীতি প্রয়োগ করতে নীতি বন্ধ করতে | সত্য | ঐচ্ছিক |
async | এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷ | মিথ্যা | অবচয় |
<DisplayName> উপাদান
ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে name বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।
<DisplayName>Policy Display Name</DisplayName>
| ডিফল্ট | N/A আপনি এই উপাদানটি বাদ দিলে, নীতির |
|---|---|
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং |
<AccessToken> এলিমেন্ট
অ্যাক্সেস টোকেন যেখানে আছে সেই ভেরিয়েবলকে শনাক্ত করে। যেমন, অ্যাক্সেস টোকেনটি যদি
কোয়েরি প্যারামিটার হিসেবে অনুরোধ মেসেজের সাথে যুক্ত থাকে, তাহলে
request.queryparam.access_token উল্লেখ করুন। আপনি টোকেনকে রেফারেন্স করে এমন যেকোনও সঠিক ভেরিয়েবল ব্যবহার করতে পারবেন।
অথবা, আক্ষরিক টোকেন স্ট্রিং পাস করতে পারে (বিরল ঘটনা)।
<AccessToken ref="request.queryparam.access_token"></AccessToken>
| ডিফল্ট: | প্রযোজ্য নয় |
| উপস্থিতি: | প্রয়োজনীয় |
| টাইপ: | স্ট্রিং |
অ্যাট্রিবিউট
| অ্যাট্রিবিউট | বিবরণ | ডিফল্ট | উপস্থিতি |
|---|---|---|---|
| ref |
অ্যাক্সেস টোকেন ভেরিয়েবল। সাধারণত, ফ্লো ভেরিয়েবল থেকে রিট্রিভ করা হয়। |
প্রযোজ্য নয় | ঐচ্ছিক |
<Attributes> এলিমেন্ট
অ্যাক্সেস টোকেন প্রোফাইলে অ্যাট্রিবিউটের একটি সেট যা পরিবর্তন বা বৃদ্ধি করা হবে।
| ডিফল্ট: | প্রযোজ্য নয় |
| উপস্থিতি: | প্রয়োজনীয় |
| টাইপ: | প্রযোজ্য নয় |
<Attributes>/<Attribute> এলিমেন্ট
আপডেট করার জন্য একটি স্বতন্ত্র অ্যাট্রিবিউট।
নাম অ্যাট্রিবিউট, আপডেট করা অ্যাক্সেস টোকেন প্রোফাইলের কাস্টম প্রপার্টিকে শনাক্ত করে। এই উদাহরণে কীভাবে রেফারেন্স করা ভেরিয়েবল ভ্যালু ও স্ট্যাটিক ভ্যালু ব্যবহার করতে হয় তা দেখানো হয়েছে।
<Attributes>
<Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
<Attribute name="foo">bar</Attribute>
</Attributes>| ডিফল্ট: | প্রযোজ্য নয় |
| উপস্থিতি: | ঐচ্ছিক |
| টাইপ: | প্রযোজ্য নয় |
অ্যাট্রিবিউট
| অ্যাট্রিবিউট | বিবরণ | ডিফল্ট | উপস্থিতি |
|---|---|---|---|
| নাম | যোগ বা পরিবর্তন করার জন্য প্রোফাইল অ্যাট্রিবিউটের নাম। | প্রযোজ্য নয় | |
| ref |
প্রোফাইল অ্যাট্রিবিউটে অ্যাসাইন করার ভ্যালু। |
প্রযোজ্য নয় | ঐচ্ছিক |
ফ্লো ভেরিয়েবল
সফল হলে, নিম্নলিখিত ফ্লো ভেরিয়েবল সেট করা হবে:
oauthv2accesstoken.{policyName}.access_tokenoauthv2accesstoken.{policyName}.client_idoauthv2accesstoken.{policyName}.refresh_countoauthv2accesstoken.{policyName}.organization_nameoauthv2accesstoken.{policyName}.expires_in //--in secondsoauthv2accesstoken.{policyName}.refresh_token_expires_in //--in secondsoauthv2accesstoken.{policyName}.issued_atoauthv2accesstoken.{policyName}.statusoauthv2accesstoken.{policyName}.api_product_listoauthv2accesstoken.{policyName}.token_typeoauthv2accesstoken.{policyName}.{custom_attribute_name}
স্কিমা
প্রতিটি নীতির ধরন XML স্কিমা (.xsd) দ্বারা সংজ্ঞায়িত করা হয়। রেফারেন্সের জন্য, নীতি স্কিমা
GitHub-এ উপলভ্য।
সমস্যার রেফারেন্স
এই নীতি কোনও সমস্যার কারণে ট্রিগার হলে, Edge-এর মাধ্যমে ফেরত আসা ফল্ট কোড ও সমস্যার মেসেজ এবং সেট করা ফল্ট ভেরিয়েবল সম্পর্কে এই বিভাগে বর্ণনা করা হয়েছে। সমস্যা সমাধানের জন্য আপনি যদি ফল্ট রুল ডেভেলপ করেন, তাহলে এই তথ্য জানা আপনার জন্য গুরুত্বপূর্ণ। আরও জানতে, নীতি সংক্রান্ত সমস্যা সম্পর্কে আপনার যা জানা প্রয়োজন এবং ত্রুটি মোকাবেলা করা দেখুন।
রানটাইম সমস্যা
নীতি এক্সিকিউট করার সময় এই সমস্যা হতে পারে।
| সমস্যার কোড | HTTP স্ট্যাটাস | কারণ |
|---|---|---|
steps.oauth.v2.access_token_expired |
500 | নীতিতে পাঠানো অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেছে। |
steps.oauth.v2.invalid_access_token |
500 | নীতিতে পাঠানো অ্যাক্সেস টোকেনটি সঠিক নয়। |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | এই সমস্যার সমাধান সম্পর্কে তথ্য পেতে, এই Apigee কমিউনিটি পোস্ট দেখুন। |
ডিপ্লয়মেন্ট সংক্রান্ত সমস্যা
ডেপ্লয়মেন্ট সংক্রান্ত সমস্যার ব্যাপারে তথ্য পেতে UI-তে রিপোর্ট করা মেসেজ দেখুন।
ফল্ট ভেরিয়েবল
এই নীতি রানটাইমে কোনও সমস্যা ট্রিগার করলে, এইসব ভেরিয়েবল সেট করা হয়।
| ভেরিয়েবল | কোথায় | উদাহরণ |
|---|---|---|
fault.name="fault_name" |
fault_name হল সমস্যার নাম, যা উপরে দেওয়া রানটাইম সংক্রান্ত সমস্যা সারণীতে তালিকাভুক্ত করা আছে। ফল্ট কোডের শেষ অংশটি হল ফল্টের নাম। | fault.name = "invalid_access_token" |
oauthV2.policy_name.failed |
policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যার কারণে সমস্যা হয়েছে। | oauthV2.SetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যার কারণে সমস্যা হয়েছে। | oauthV2.SetTokenInfo.fault.name = invalid_access_token |
oauthv2.policy_name.fault.cause |
policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যার কারণে সমস্যা হয়েছে। | oauthV2.SetTokenInfo.cause = Invalid Access Token |
সমস্যার উত্তরের উদাহরণ
{
"fault": {
"faultstring": "Invalid Access Token",
"detail": {
"errorcode": "keymanagement.service.invalid_access_token"
}
}
}ভুল নিয়মের উদাহরণ
<FaultRule name=SetOAuthV2Info Faults">
<Step>
<Name>AM-InvalidTokenResponse</Name>
<Condition>(fault.name = "invalid_access_token")</Condition>
</Step>
<Condition>(oauthV2.failed = true) </Condition>
</FaultRule>