আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
কী
এটি আপনাকে একটি অ্যাক্সেস টোকেনের সাথে যুক্ত কাস্টম অ্যাট্রিবিউট যোগ বা আপডেট করার সুযোগ দেয়। কাস্টম অ্যাট্রিবিউটের মধ্যে বিভাগের নাম, গ্রাহক আইডি বা সেশন আইডেন্টিফায়ারের মতো বিষয় অন্তর্ভুক্ত থাকতে পারে। আরও দেখুন টোকেন এবং অনুমোদন কোড কাস্টমাইজ করা ।
আপনি শুধুমাত্র কাস্টম অ্যাট্রিবিউট যোগ বা পরিবর্তন করতে পারবেন। আপনি এই পলিসি ব্যবহার করে scope, status, 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 আপনি এই উপাদানটি বাদ দিলে, নীতির |
|---|---|
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং |
<অ্যাক্সেস টোকেন> উপাদান
যে ভেরিয়েবলে অ্যাক্সেস টোকেনটি অবস্থিত, তা শনাক্ত করে। উদাহরণস্বরূপ, যদি অ্যাক্সেস টোকেনটি একটি কোয়েরি প্যারামিটার হিসেবে অনুরোধ বার্তার সাথে সংযুক্ত থাকে, তাহলে request.queryparam.access_token উল্লেখ করুন। আপনি টোকেনটিকে নির্দেশ করে এমন যেকোনো বৈধ ভেরিয়েবল ব্যবহার করতে পারেন। অথবা, আক্ষরিক টোকেন স্ট্রিংটিও পাস করতে পারেন (যা একটি বিরল ঘটনা)।
<AccessToken ref="request.queryparam.access_token"></AccessToken>
| ডিফল্ট: | প্রযোজ্য নয় |
| উপস্থিতি: | প্রয়োজনীয় |
| প্রকার: | স্ট্রিং |
বৈশিষ্ট্য
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
|---|---|---|---|
| রেফারেন্স | একটি অ্যাক্সেস টোকেন ভেরিয়েবল। সাধারণত, এটি একটি ফ্লো ভেরিয়েবল থেকে নেওয়া হয়। | প্রযোজ্য নয় | ঐচ্ছিক |
<Attributes> উপাদান
অ্যাক্সেস টোকেন প্রোফাইলের অন্তর্ভুক্ত একগুচ্ছ বৈশিষ্ট্য যা পরিবর্তন বা পরিবর্ধন করা হবে।
| ডিফল্ট: | প্রযোজ্য নয় |
| উপস্থিতি: | প্রয়োজনীয় |
| প্রকার: | প্রযোজ্য নয় |
<Attributes>/<Attribute> উপাদান
আপডেট করার জন্য একটি স্বতন্ত্র বৈশিষ্ট্য।
name অ্যাট্রিবিউটটি অ্যাক্সেস টোকেন প্রোফাইলের সেই কাস্টম প্রপার্টিকে শনাক্ত করে, যা আপডেট করা হবে। এই উদাহরণে দেখানো হয়েছে কীভাবে একটি রেফারেন্সড ভ্যারিয়েবল ভ্যালু এবং একটি স্ট্যাটিক ভ্যালু ব্যবহার করতে হয়।
<Attributes>
<Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
<Attribute name="foo">bar</Attribute>
</Attributes>| ডিফল্ট: | প্রযোজ্য নয় |
| উপস্থিতি: | ঐচ্ছিক |
| প্রকার: | প্রযোজ্য নয় |
বৈশিষ্ট্য
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
|---|---|---|---|
| নাম | যে প্রোফাইল অ্যাট্রিবিউটটি যোগ বা পরিবর্তন করতে চান, তার নাম। | প্রযোজ্য নয় | |
| রেফারেন্স | প্রোফাইল অ্যাট্রিবিউটে যে মানটি নির্ধারণ করতে হবে। | প্রযোজ্য নয় | ঐচ্ছিক |
প্রবাহ পরিবর্তনশীল
সফল হলে, নিম্নলিখিত ফ্লো ভেরিয়েবলগুলো সেট করা হবে:
-
oauthv2accesstoken.{policyName}.access_token -
oauthv2accesstoken.{policyName}.client_id -
oauthv2accesstoken.{policyName}.refresh_count -
oauthv2accesstoken.{policyName}.organization_name -
oauthv2accesstoken.{policyName}.expires_in //--in seconds -
oauthv2accesstoken.{policyName}.refresh_token_expires_in //--in seconds -
oauthv2accesstoken.{policyName}.issued_at -
oauthv2accesstoken.{policyName}.status -
oauthv2accesstoken.{policyName}.api_product_list -
oauthv2accesstoken.{policyName}.token_type -
oauthv2accesstoken.{policyName}.{custom_attribute_name}
স্কিমা
প্রতিটি পলিসি টাইপ একটি XML স্কিমা ( .xsd ) দ্বারা সংজ্ঞায়িত করা হয়। তথ্যের জন্য, পলিসি স্কিমাগুলো গিটহাবে পাওয়া যাবে।
ত্রুটির রেফারেন্স
এই বিভাগে ফল্ট কোড এবং ত্রুটি বার্তাগুলি বর্ণনা করা হয়েছে যা ফেরত পাঠানো হয় এবং ফল্ট ভেরিয়েবলগুলি যা এই নীতিটি যখন একটি ত্রুটি ট্রিগার করে তখন Edge দ্বারা সেট করা হয়। আপনি যদি ত্রুটিগুলি পরিচালনা করার জন্য ফল্ট নিয়ম তৈরি করছেন কিনা তা জানার জন্য এই তথ্যটি গুরুত্বপূর্ণ। আরও জানতে, নীতি ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার কী জানা দরকার তা দেখুন।
রানটাইম ত্রুটি
নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে।
| ফল্ট কোড | HTTP অবস্থা | কারণ |
|---|---|---|
steps.oauth.v2.access_token_expired | ৫০০ | নীতিমালায় পাঠানো অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেছে। |
steps.oauth.v2.invalid_access_token | ৫০০ | নীতিমালায় পাঠানো অ্যাক্সেস টোকেনটি অবৈধ। |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound | ৪০১ | এই ত্রুটির সমস্যা সমাধানের তথ্যের জন্য অনুগ্রহ করে এই 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>