আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
কী
অ্যাক্সেস টোকেন, রিফ্রেশ টোকেন, অথরাইজেশন কোড এবং ক্লায়েন্ট অ্যাপের অ্যাট্রিবিউটগুলো সংগ্রহ করে এবং সেই অ্যাট্রিবিউটগুলোর মান দিয়ে ভেরিয়েবলগুলো পূরণ করে।
যখন কোনো টোকেন বা অথ কোডের মানের উপর ভিত্তি করে ডাইনামিক, শর্তসাপেক্ষ আচরণ কনফিগার করার প্রয়োজন হয়, তখন এই পলিসিটি কার্যকর। যখনই টোকেন ভ্যালিডেশন সম্পন্ন হয়, ভ্যারিয়েবলগুলো স্বয়ংক্রিয়ভাবে টোকেন অ্যাট্রিবিউটের মান দিয়ে পূরণ হয়ে যায়। তবে, যেসব ক্ষেত্রে টোকেন ভ্যালিডেশন সম্পন্ন হয়নি, সেসব ক্ষেত্রে আপনি এই ফিচারটি ব্যবহার করে টোকেনের অ্যাট্রিবিউটের মান দিয়ে ভ্যারিয়েবলগুলো স্পষ্টভাবে পূরণ করতে পারেন। আরও দেখুন টোকেন এবং অথরাইজেশন কোড কাস্টমাইজ করা ।
এই পলিসিতে আপনি যে অ্যাক্সেস টোকেনটি দেবেন তা অবশ্যই বৈধ হতে হবে, অন্যথায় পলিসিটি একটি invalid_access_token ত্রুটি দেখাবে।
নমুনা
নিম্নলিখিত নমুনাগুলি OAuth2 ওয়ার্কফ্লো-এর বিভিন্ন উপাদান সম্পর্কে তথ্য পুনরুদ্ধার করতে এবং তারপর কোডের মধ্যে সেই তথ্য অ্যাক্সেস করতে Get OAuth V2 Info পলিসি ব্যবহার করে।
অ্যাক্সেস টোকেন
অ্যাক্সেস টোকেনের রেফারেন্স পেতে, আপনার পলিসিতে <AccessToken> এলিমেন্টটি ব্যবহার করুন।
নিম্নলিখিত উদাহরণটিতে 'access_token' নামের একটি কোয়েরি প্যারামিটারে অ্যাক্সেস টোকেনটি খুঁজে পাওয়ার কথা বলা হয়েছে (এর প্রকৃত বাস্তবায়নের খুঁটিনাটি আপনার উপর নির্ভর করছে):
<GetOAuthV2Info name="MyTokenAttrsPolicy"> <AccessToken ref="request.queryparam.access_token"></AccessToken> </GetOAuthV2Info>
অ্যাক্সেস টোকেনটি পাওয়ার পর, পলিসিটি টোকেনটির প্রোফাইল খুঁজে বের করে এবং সেই প্রোফাইলের তথ্য দিয়ে এক সেট ভেরিয়েবল পূরণ করে।
এরপর আপনি জাভাস্ক্রিপ্ট বা অন্য কোনো উপায়ে ভেরিয়েবলগুলো অ্যাক্সেস করতে পারবেন। নিচের উদাহরণটি জাভাস্ক্রিপ্ট ব্যবহার করে অ্যাক্সেস টোকেনের সাথে যুক্ত স্কোপগুলো পুনরুদ্ধার করে:
var scope = context.getVariable('oauthv2accesstoken.MyTokenAttrsPolicy.scope');
মনে রাখবেন যে কোডে সেই ভেরিয়েবলগুলো অ্যাক্সেস করতে হলে, সেগুলোর আগে অবশ্যই "oauthv2accesstoken" যুক্ত করতে হবে। অ্যাক্সেস টোকেনের মাধ্যমে উপলব্ধ ভেরিয়েবলগুলোর সম্পূর্ণ তালিকার জন্য, অ্যাক্সেস টোকেন ভেরিয়েবল দেখুন।
প্রমাণীকরণ কোড
অনুমোদন কোড অ্যাট্রিবিউটগুলো পেতে, আপনার পলিসিতে <AuthorizationCode> এলিমেন্টটি ব্যবহার করুন।
নিম্নলিখিত উদাহরণটিতে 'code' নামের একটি ফর্ম প্যারামিটারে অ্যাক্সেস টোকেনটি খুঁজে পাওয়ার কথা বলা হয়েছে (এর প্রকৃত বাস্তবায়নের বিস্তারিত বিবরণ আপনার উপর নির্ভর করছে):
<GetOAuthV2Info name="MyAuthCodeAttrsPolicy"> <AuthorizationCode ref="request.formparam.code"></AuthorizationCode> </GetOAuthV2Info>
প্রদত্ত অথ কোডটির ভিত্তিতে, পলিসিটি কোডটির তথ্য খুঁজে বের করে এবং সেই অথ কোডের ডেটা দিয়ে এক সেট ভ্যারিয়েবল পূরণ করে।
এরপর আপনি জাভাস্ক্রিপ্ট বা অন্য কোনো উপায়ে ভেরিয়েবলগুলো অ্যাক্সেস করতে পারবেন। নিচের উদাহরণটি জাভাস্ক্রিপ্ট ব্যবহার করে অথরাইজেশন কোডের সাথে যুক্ত একটি কাস্টম অ্যাট্রিবিউট পুনরুদ্ধার করে:
var attr = context.getVariable(‘oauthv2authcode.MyAuthCodeAttrsPolicy.custom_attribute_name’);
মনে রাখবেন যে কোডে এই ভেরিয়েবলগুলো অ্যাক্সেস করতে হলে, সেগুলোর আগে অবশ্যই "oauthv2authcode" যোগ করতে হবে। অথ কোডের মাধ্যমে উপলব্ধ ভেরিয়েবলগুলোর সম্পূর্ণ তালিকার জন্য, অথরাইজেশন কোড ভেরিয়েবলস দেখুন।
টোকেন রিফ্রেশ করুন
রিফ্রেশ টোকেন অ্যাট্রিবিউটগুলো পেতে আপনার পলিসিতে <RefreshToken> এলিমেন্টটি ব্যবহার করুন।
নিম্নলিখিত উদাহরণটিতে 'refresh_token' নামের একটি কোয়েরি প্যারামিটারে অ্যাক্সেস টোকেনটি খুঁজে পাওয়ার কথা বলা হয়েছে (এর প্রকৃত বাস্তবায়নের বিস্তারিত বিবরণ আপনার উপর নির্ভর করছে):
<GetOAuthV2Info name="MyRefreshTokenAttrsPolicy"> <RefreshToken ref="request.queryparam.refresh_token"/> </GetOAuthV2Info>
রিফ্রেশ টোকেনটি পেলে, পলিসিটি টোকেনটির তথ্য খুঁজে বের করে এবং সেই টোকেনের ডেটা দিয়ে এক সেট ভেরিয়েবল পূরণ করে।
এরপর আপনি জাভাস্ক্রিপ্ট বা অন্য কোনো উপায়ে সেই ভেরিয়েবলগুলো অ্যাক্সেস করতে পারবেন। নিচের উদাহরণটি জাভাস্ক্রিপ্ট ব্যবহার করে রিফ্রেশ টোকেনের সাথে যুক্ত একটি কাস্টম অ্যাট্রিবিউট পুনরুদ্ধার করে:
var attr = context.getVariable(‘oauthv2refreshtoken.MyRefreshTokenAttrsPolicy.accesstoken.custom_attribute_name’);
মনে রাখবেন যে কোডে ভেরিয়েবলগুলো অ্যাক্সেস করতে হলে, সেগুলোর আগে অবশ্যই "oauthv2refreshtoken" যুক্ত করতে হবে। রিফ্রেশ টোকেনের মাধ্যমে উপলব্ধ ভেরিয়েবলগুলোর সম্পূর্ণ তালিকার জন্য, রিফ্রেশ টোকেন ভেরিয়েবল দেখুন।
স্থির
কিছু বিরল ক্ষেত্রে আপনার একটি স্ট্যাটিক্যালি কনফিগার করা টোকেনের (যা কোনো ভেরিয়েবলের মাধ্যমে অ্যাক্সেসযোগ্য নয়) প্রোফাইল পাওয়ার প্রয়োজন হতে পারে। আপনি অ্যাক্সেস টোকেনের মানটিকে একটি এলিমেন্ট হিসেবে প্রদান করে এটি করতে পারেন।
<GetOAuthV2Info name="GetTokenAttributes"> <AccessToken>shTUmeI1geSKin0TODcGLXBNe9vp</AccessToken> </GetOAuthV2Info>
আপনি অন্যান্য সব ধরনের টোকেনের (ক্লায়েন্ট আইডি, অনুমোদন কোড এবং রিফ্রেশ টোকেন) ক্ষেত্রেও এটি করতে পারেন।
ক্লায়েন্ট আইডি
এই উদাহরণটি দেখায় কিভাবে ক্লায়েন্ট আইডি ব্যবহার করে ক্লায়েন্ট অ্যাপ সম্পর্কে তথ্য পুনরুদ্ধার করতে হয়। কার্যকর করার পর, পলিসিটি ক্লায়েন্টের তথ্য দিয়ে এক সেট ভেরিয়েবল পূরণ করে। এক্ষেত্রে, পলিসিটি client_id নামক একটি কোয়েরি প্যারামিটারে ক্লায়েন্ট আইডিটি খুঁজে পাওয়ার আশা করে। ক্লায়েন্ট আইডিটি পাওয়ার পর, পলিসিটি ক্লায়েন্টের প্রোফাইল খুঁজে বের করে এবং প্রোফাইলের ডেটা দিয়ে এক সেট ভেরিয়েবল পূরণ করে। ভেরিয়েবলগুলোর নামের শুরুতে oauthv2client.
<GetOAuthV2Info name="GetClientAttributes"> <ClientId ref="request.queryparam.client_id"></ClientId> </GetOAuthV2Info>
এরপর আপনি জাভাস্ক্রিপ্ট বা অন্য কোনো উপায়ে ভেরিয়েবলগুলো অ্যাক্সেস করতে পারবেন। উদাহরণস্বরূপ, জাভাস্ক্রিপ্ট ব্যবহার করে ক্লায়েন্ট অ্যাপের সাথে যুক্ত ডেভেলপার অ্যাপের নাম এবং ডেভেলপার ইমেল পেতে:
context.getVariable("oauthv2client.GetClientAttributes.developer.email");
context.getVariable("oauthv2client.GetClientAttributes.developer.app.name");উপাদান রেফারেন্স
এলিমেন্ট রেফারেন্সটি GetOAuthV2Info পলিসির উপাদান এবং অ্যাট্রিবিউটগুলো বর্ণনা করে।
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <GetOAuthV2Info async="false" continueOnError="false" enabled="true" name="GetOAuthV2Info-1" <DisplayName>Get OAuth v2.0 Info 1</DisplayName> <AccessToken ref="variable"></AccessToken> <AuthorizationCode ref="variable"></AuthorizationCode> <ClientId ref="variable"></ClientId> <RefreshToken ref="variable"></RefreshToken> </GetOAuthV2Info>
<GetOAuthV2Info> অ্যাট্রিবিউট
<GetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Get-OAuth-v20-Info-1">
নিম্নলিখিত সারণী সমস্ত নীতির মূল উপাদানগুলির জন্য সাধারণ বৈশিষ্ট্যগুলি বর্ণনা করে:
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
|---|---|---|---|
name | নীতির অভ্যন্তরীণ নাম। ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে | N/A | প্রয়োজন |
continueOnError | একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে | মিথ্যা | ঐচ্ছিক |
enabled | নীতি প্রয়োগ করতে নীতি বন্ধ করতে | সত্য | ঐচ্ছিক |
async | এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷ | মিথ্যা | অবচয় |
<DisplayName> উপাদান
ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে name বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।
<DisplayName>Policy Display Name</DisplayName>
| ডিফল্ট | N/A আপনি এই উপাদানটি বাদ দিলে, নীতির |
|---|---|
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং |
<অ্যাক্সেস টোকেন> উপাদান
একটি অ্যাক্সেস টোকেনের প্রোফাইল পুনরুদ্ধার করে। আপনি অ্যাক্সেস টোকেন স্ট্রিং ধারণকারী একটি ভেরিয়েবল অথবা একটি আক্ষরিক টোকেন স্ট্রিং (বিরল ক্ষেত্রে) পাস করতে পারেন। এই উদাহরণে, একটি অনুরোধে পাস করা কোয়েরি প্যারামিটার থেকে অ্যাক্সেস টোকেনটি পুনরুদ্ধার করা হয়েছে। যদি আপনি একটি বাতিল বা মেয়াদোত্তীর্ণ টোকেনের তথ্য ফেরত পেতে চান, তাহলে <IgnoreAccessTokenStatus> এলিমেন্টটি ব্যবহার করুন।
<AccessToken ref="request.queryparam.access_token"></AccessToken>
ডিফল্ট: | request.formparam.access_token (একটি x-www-form-urlencoded যা রিকোয়েস্ট বডিতে নির্দিষ্ট করা থাকে) |
উপস্থিতি: | ঐচ্ছিক |
| প্রকার: | স্ট্রিং |
| বৈধ মান: | হয় অ্যাক্সেস টোকেন স্ট্রিং ধারণকারী একটি ফ্লো ভেরিয়েবল, অথবা একটি লিটারাল স্ট্রিং। |
<AuthorizationCode> উপাদান
একটি অনুমোদন কোডের জন্য প্রোফাইলটি পুনরুদ্ধার করে। আপনি এখানে হয় একটি ভেরিয়েবল পাস করেন যাতে অথ কোড স্ট্রিংটি থাকে, অথবা একটি আক্ষরিক টোকেন স্ট্রিং (যা একটি বিরল ক্ষেত্র)। এই উদাহরণে, একটি অনুরোধে পাস করা কোয়েরি প্যারামিটার থেকে অথ কোডটি পুনরুদ্ধার করা হয়েছে। এই অপারেশন দ্বারা পূরণ করা ভেরিয়েবলগুলির তালিকার জন্য, " ফ্লো ভেরিয়েবল " দেখুন।
<AuthorizationCode ref="request.queryparam.authorization_code"></AuthorizationCode>
ডিফল্ট: | request.formparam.access_token (একটি x-www-form-urlencoded যা রিকোয়েস্ট বডিতে নির্দিষ্ট করা থাকে) |
উপস্থিতি: | ঐচ্ছিক |
| প্রকার: | স্ট্রিং |
| বৈধ মান: | হয় একটি ফ্লো ভেরিয়েবল যাতে একটি অথ কোড স্ট্রিং থাকে, অথবা একটি লিটারেল স্ট্রিং। |
<ক্লায়েন্ট আইডি> উপাদান
একটি ক্লায়েন্ট আইডি সম্পর্কিত তথ্য পুনরুদ্ধার করে। এই উদাহরণে, একটি অনুরোধে প্রেরিত কোয়েরি প্যারামিটার থেকে ক্লায়েন্ট আইডিটি পুনরুদ্ধার করা হয়। এই অপারেশন দ্বারা পূরণ করা ভেরিয়েবলগুলির তালিকার জন্য, " ফ্লো ভেরিয়েবল " দেখুন।
<ClientId ref="request.queryparam.client_id"></ClientId>ডিফল্ট: | request.formparam.access_token (একটি x-www-form-urlencoded যা রিকোয়েস্ট বডিতে নির্দিষ্ট করা থাকে) |
উপস্থিতি: | ঐচ্ছিক |
| প্রকার: | স্ট্রিং |
| বৈধ মান: | হয় একটি ফ্লো ভেরিয়েবল যাতে একটি অথ কোড স্ট্রিং থাকে, অথবা একটি লিটারেল স্ট্রিং। |
<অ্যাক্সেস টোকেন স্ট্যাটাস উপেক্ষা করুন> উপাদান
টোকেনের মেয়াদ শেষ হয়ে গেলেও বা তা বাতিল করা হলেও টোকেনের তথ্য ফেরত দেয়। এই এলিমেন্টটি শুধুমাত্র অ্যাক্সেস টোকেনের সাথেই ব্যবহার করা যায়। রিফ্রেশ টোকেন এবং অথরাইজেশন কোডের মতো অন্যান্য এনটিটির তথ্য ডিফল্টরূপে তাদের অবস্থা নির্বিশেষে ফেরত দেওয়া হয়।
<IgnoreAccessTokenStatus>true</IgnoreAccessTokenStatus>
ডিফল্ট: | মিথ্যা |
উপস্থিতি: | ঐচ্ছিক |
| প্রকার: | বুলিয়ান |
| বৈধ মান: | সত্য বা মিথ্যা |
<রিফ্রেশটোকেন> উপাদান
রিফ্রেশ টোকেনের জন্য প্রোফাইলটি পুনরুদ্ধার করে। আপনি হয় রিফ্রেশ টোকেন স্ট্রিং ধারণকারী একটি ভেরিয়েবল অথবা একটি আক্ষরিক টোকেন স্ট্রিং (বিরল ক্ষেত্রে) পাস করেন। এই উদাহরণে, একটি অনুরোধে পাস করা কোয়েরি প্যারামিটার থেকে রিফ্রেশ টোকেনটি পুনরুদ্ধার করা হয়। এই অপারেশন দ্বারা পূরণ করা ভেরিয়েবলগুলির তালিকার জন্য, " ফ্লো ভেরিয়েবল " দেখুন।
<RefreshToken ref="request.queryparam.refresh_token"></RefreshToken>
ডিফল্ট: | request.formparam.access_token (একটি x-www-form-urlencoded যা রিকোয়েস্ট বডিতে নির্দিষ্ট করা থাকে) |
উপস্থিতি: | ঐচ্ছিক |
| প্রকার: | স্ট্রিং |
| বৈধ মান: | হয় একটি ফ্লো ভেরিয়েবল যাতে একটি রিফ্রেশ টোকেন স্ট্রিং থাকে, অথবা একটি আক্ষরিক স্ট্রিং। |
প্রবাহ পরিবর্তনশীল
GetOAuthV2Info পলিসিটি এই ভেরিয়েবলগুলো পূরণ করে এবং এটি সাধারণত এমন ক্ষেত্রে ব্যবহৃত হয় যেখানে আপনার প্রোফাইল ডেটা প্রয়োজন, কিন্তু এখনও কোনো অনুমোদন বা যাচাইকরণ সম্পন্ন হয়নি।
ক্লায়েন্ট আইডি ভেরিয়েবল
ClientId এলিমেন্টটি সেট করা হলে এই ভেরিয়েবলগুলো পূরণ করা হয়:
oauthv2client.{policy_name}.client_id
oauthv2client.{policy_name}.client_secret
oauthv2client.{policy_name}.redirection_uris // Note the spelling -- 'redirection_uris'
oauthv2client.{policy_name}.developer.email
oauthv2client.{policy_name}.developer.app.name
oauthv2client.{policy_name}.developer.id
oauthv2client.{policy_name}.{developer_app_custom_attribute_name}টোকেন ভেরিয়েবল অ্যাক্সেস করুন
AccessToken এলিমেন্টটি সেট করা হলে এই ভেরিয়েবলগুলো পূরণ করা হয়:
oauthv2accesstoken.{policy_name}.developer.id oauthv2accesstoken.{policy_name}.developer.app.name oauthv2accesstoken.{policy_name}.developer.app.id oauthv2accesstoken.{policy_name}.developer.email oauthv2accesstoken.{policy_name}.organization_name oauthv2accesstoken.{policy_name}.api_product_list oauthv2accesstoken.{policy_name}.access_token oauthv2accesstoken.{policy_name}.scope oauthv2accesstoken.{policy_name}.expires_in //in seconds oauthv2accesstoken.{policy_name}.status oauthv2accesstoken.{policy_name}.client_id oauthv2accesstoken.{policy_name}.accesstoken.{custom_attribute_name} oauthv2accesstoken.{policy_name}.refresh_token oauthv2accesstoken.{policy_name}.refresh_token_status oauthv2accesstoken.{policy_name}.refresh_token_expires_in //in seconds oauthv2accesstoken.{policy_name}.refresh_count oauthv2accesstoken.{policy_name}.refresh_token_issued_at oauthv2accesstoken.{policy_name}.revoke_reason //Apigee hybrid only with value of REVOKED_BY_APP, REVOKED_BY_ENDUSER, REVOKED_BY_APP_ENDUSER, or TOKEN_REVOKED
অনুমোদন কোড ভেরিয়েবল
AuthorizationCode এলিমেন্টটি সেট করা হলে এই ভেরিয়েবলগুলো পূরণ করা হয়:
oauthv2authcode.{policy_name}.code
oauthv2authcode.{policy_name}.scope
oauthv2authcode.{policy_name}.redirect_uri
oauthv2authcode.{policy_name}.client_id
oauthv2authcode.{policy_name}.{auth_code_custom_attribute_name}টোকেন ভেরিয়েবল রিফ্রেশ করুন
RefreshToken এলিমেন্টটি সেট করা হলে এই ভেরিয়েবলগুলো পূরণ করা হয়:
oauthv2refreshtoken.{policy_name}.developer.id oauthv2refreshtoken.{policy_name}.developer.app.name oauthv2refreshtoken.{policy_name}.developer.app.id oauthv2refreshtoken.{policy_name}.developer.email oauthv2refreshtoken.{policy_name}.organization_name oauthv2refreshtoken.{policy_name}.api_product_list oauthv2refreshtoken.{policy_name}.access_token oauthv2refreshtoken.{policy_name}.scope oauthv2refreshtoken.{policy_name}.expires_in //in seconds oauthv2refreshtoken.{policy_name}.status oauthv2refreshtoken.{policy_name}.client_id oauthv2refreshtoken.{policy_name}.accesstoken.{custom_attribute_name} oauthv2refreshtoken.{policy_name}.refresh_token oauthv2refreshtoken.{policy_name}.refresh_token_status oauthv2refreshtoken.{policy_name}.refresh_token_expires_in //in seconds oauthv2refreshtoken.{policy_name}.refresh_count oauthv2refreshtoken.{policy_name}.refresh_token_issued_at oauthv2refreshtoken.{policy_name}.revoke_reason //Apigee hybrid only with value of REVOKED_BY_APP, REVOKED_BY_ENDUSER, REVOKED_BY_APP_ENDUSER, or TOKEN_REVOKED
স্কিমা
প্রতিটি পলিসি টাইপ একটি XML স্কিমা ( .xsd ) দ্বারা সংজ্ঞায়িত করা হয়। তথ্যের জন্য, পলিসি স্কিমাগুলো গিটহাবে পাওয়া যাবে।
ত্রুটির রেফারেন্স
এই বিভাগটি ফল্ট কোড এবং ত্রুটি বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷
রানটাইম ত্রুটি
নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷ নীচে দেখানো ত্রুটির নামগুলি হল সেই স্ট্রিংগুলি যা একটি ত্রুটি ঘটলে fault.name ভেরিয়েবলের জন্য নির্ধারিত হয়। আরও বিশদ বিবরণের জন্য নীচের ফল্ট ভেরিয়েবল বিভাগটি দেখুন।
| ফল্ট কোড | HTTP স্থিতি | কারণ |
|---|---|---|
steps.oauth.v2.access_token_expired | 500 | পলিসিতে পাঠানো অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেছে। |
steps.oauth.v2.authorization_code_expired | 500 | পলিসিতে পাঠানো অনুমোদন কোডের মেয়াদ শেষ হয়ে গেছে। |
steps.oauth.v2.invalid_access_token | 500 | নীতিতে পাঠানো অ্যাক্সেস টোকেনটি অবৈধ৷ |
steps.oauth.v2.invalid_client-invalid_client_id | 500 | পলিসিতে পাঠানো ক্লায়েন্ট আইডিটি অবৈধ। |
steps.oauth.v2.invalid_refresh_token | 500 | নীতিতে পাঠানো রিফ্রেশ টোকেনটি অবৈধ৷ |
steps.oauth.v2.invalid_request-authorization_code_invalid | 500 | নীতিতে পাঠানো অনুমোদন কোডটি অবৈধ। |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound | 401 | এই ত্রুটির সমস্যা সমাধান সম্পর্কে তথ্যের জন্য দয়া করে এই Apigee কমিউনিটি পোস্টটি দেখুন৷ |
steps.oauth.v2.refresh_token_expired | 500 | পলিসিতে পাঠানো রিফ্রেশ টোকেনের মেয়াদ শেষ হয়ে গেছে। |
স্থাপনার ত্রুটি
স্থাপনার ত্রুটি সম্পর্কে তথ্যের জন্য UI এ রিপোর্ট করা বার্তাটি পড়ুন।
ফল্ট ভেরিয়েবল
যখন এই নীতি রানটাইমে একটি ত্রুটি ট্রিগার করে তখন এই ভেরিয়েবলগুলি সেট করা হয়৷
| ভেরিয়েবল | যেখানে | উদাহরণ |
|---|---|---|
fault.name=" fault_name " | fault_name হল ফল্টের নাম, যা উপরে রানটাইম ত্রুটির সারণীতে তালিকাভুক্ত করা হয়েছে। ফল্ট নামটি ফল্ট কোডের শেষ অংশ। | fault.name Matches "IPDeniedAccess" |
oauthV2. policy_name .failed | policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যা ত্রুটিটি ফেলেছে। | oauthV2.GetTokenInfo.failed = true |
oauthV2. policy_name .fault.name | policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যা ত্রুটিটি ফেলেছে। | oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id |
oauthV2. policy_name .fault.cause | policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যা ত্রুটিটি ফেলেছে। | oauthV2.GetTokenInfo.cause = ClientID is Invalid |
উদাহরণ ত্রুটি প্রতিক্রিয়া
{ "fault":{ "faultstring":"ClientId is Invalid", "detail":{ "errorcode":"keymanagement.service.invalid_client-invalid_client_id" } } }
উদাহরণ দোষ নিয়ম
<FaultRule name="OAuthV2 Faults">
<Step>
<Name>AM-InvalidClientIdResponse</Name>
</Step>
<Condition>(fault.name = "invalid_client-invalid_client_id")</Condition>
</FaultRule>সম্পর্কিত বিষয়
, আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
কী
অ্যাক্সেস টোকেন, রিফ্রেশ টোকেন, অথরাইজেশন কোড এবং ক্লায়েন্ট অ্যাপের অ্যাট্রিবিউটগুলো সংগ্রহ করে এবং সেই অ্যাট্রিবিউটগুলোর মান দিয়ে ভেরিয়েবলগুলো পূরণ করে।
যখন কোনো টোকেন বা অথ কোডের মানের উপর ভিত্তি করে ডাইনামিক, শর্তসাপেক্ষ আচরণ কনফিগার করার প্রয়োজন হয়, তখন এই পলিসিটি কার্যকর। যখনই টোকেন ভ্যালিডেশন সম্পন্ন হয়, ভ্যারিয়েবলগুলো স্বয়ংক্রিয়ভাবে টোকেন অ্যাট্রিবিউটের মান দিয়ে পূরণ হয়ে যায়। তবে, যেসব ক্ষেত্রে টোকেন ভ্যালিডেশন সম্পন্ন হয়নি, সেসব ক্ষেত্রে আপনি এই ফিচারটি ব্যবহার করে টোকেনের অ্যাট্রিবিউটের মান দিয়ে ভ্যারিয়েবলগুলো স্পষ্টভাবে পূরণ করতে পারেন। আরও দেখুন টোকেন এবং অথরাইজেশন কোড কাস্টমাইজ করা ।
এই পলিসিতে আপনি যে অ্যাক্সেস টোকেনটি দেবেন তা অবশ্যই বৈধ হতে হবে, অন্যথায় পলিসিটি একটি invalid_access_token ত্রুটি দেখাবে।
নমুনা
নিম্নলিখিত নমুনাগুলি OAuth2 ওয়ার্কফ্লো-এর বিভিন্ন উপাদান সম্পর্কে তথ্য পুনরুদ্ধার করতে এবং তারপর কোডের মধ্যে সেই তথ্য অ্যাক্সেস করতে Get OAuth V2 Info পলিসি ব্যবহার করে।
অ্যাক্সেস টোকেন
অ্যাক্সেস টোকেনের রেফারেন্স পেতে, আপনার পলিসিতে <AccessToken> এলিমেন্টটি ব্যবহার করুন।
নিম্নলিখিত উদাহরণটিতে 'access_token' নামের একটি কোয়েরি প্যারামিটারে অ্যাক্সেস টোকেনটি খুঁজে পাওয়ার কথা বলা হয়েছে (এর প্রকৃত বাস্তবায়নের খুঁটিনাটি আপনার উপর নির্ভর করছে):
<GetOAuthV2Info name="MyTokenAttrsPolicy"> <AccessToken ref="request.queryparam.access_token"></AccessToken> </GetOAuthV2Info>
অ্যাক্সেস টোকেনটি পাওয়ার পর, পলিসিটি টোকেনটির প্রোফাইল খুঁজে বের করে এবং সেই প্রোফাইলের তথ্য দিয়ে এক সেট ভেরিয়েবল পূরণ করে।
এরপর আপনি জাভাস্ক্রিপ্ট বা অন্য কোনো উপায়ে ভেরিয়েবলগুলো অ্যাক্সেস করতে পারবেন। নিচের উদাহরণটি জাভাস্ক্রিপ্ট ব্যবহার করে অ্যাক্সেস টোকেনের সাথে যুক্ত স্কোপগুলো পুনরুদ্ধার করে:
var scope = context.getVariable('oauthv2accesstoken.MyTokenAttrsPolicy.scope');
মনে রাখবেন যে কোডে সেই ভেরিয়েবলগুলো অ্যাক্সেস করতে হলে, সেগুলোর আগে অবশ্যই "oauthv2accesstoken" যুক্ত করতে হবে। অ্যাক্সেস টোকেনের মাধ্যমে উপলব্ধ ভেরিয়েবলগুলোর সম্পূর্ণ তালিকার জন্য, অ্যাক্সেস টোকেন ভেরিয়েবল দেখুন।
প্রমাণীকরণ কোড
অনুমোদন কোড অ্যাট্রিবিউটগুলো পেতে, আপনার পলিসিতে <AuthorizationCode> এলিমেন্টটি ব্যবহার করুন।
নিম্নলিখিত উদাহরণটিতে 'code' নামের একটি ফর্ম প্যারামিটারে অ্যাক্সেস টোকেনটি খুঁজে পাওয়ার কথা বলা হয়েছে (এর প্রকৃত বাস্তবায়নের বিস্তারিত বিবরণ আপনার উপর নির্ভর করছে):
<GetOAuthV2Info name="MyAuthCodeAttrsPolicy"> <AuthorizationCode ref="request.formparam.code"></AuthorizationCode> </GetOAuthV2Info>
প্রদত্ত অথ কোডটির ভিত্তিতে, পলিসিটি কোডটির তথ্য খুঁজে বের করে এবং সেই অথ কোডের ডেটা দিয়ে এক সেট ভ্যারিয়েবল পূরণ করে।
এরপর আপনি জাভাস্ক্রিপ্ট বা অন্য কোনো উপায়ে ভেরিয়েবলগুলো অ্যাক্সেস করতে পারবেন। নিচের উদাহরণটি জাভাস্ক্রিপ্ট ব্যবহার করে অথরাইজেশন কোডের সাথে যুক্ত একটি কাস্টম অ্যাট্রিবিউট পুনরুদ্ধার করে:
var attr = context.getVariable(‘oauthv2authcode.MyAuthCodeAttrsPolicy.custom_attribute_name’);
মনে রাখবেন যে কোডে এই ভেরিয়েবলগুলো অ্যাক্সেস করতে হলে, সেগুলোর আগে অবশ্যই "oauthv2authcode" যোগ করতে হবে। অথ কোডের মাধ্যমে উপলব্ধ ভেরিয়েবলগুলোর সম্পূর্ণ তালিকার জন্য, অথরাইজেশন কোড ভেরিয়েবলস দেখুন।
টোকেন রিফ্রেশ করুন
রিফ্রেশ টোকেন অ্যাট্রিবিউটগুলো পেতে আপনার পলিসিতে <RefreshToken> এলিমেন্টটি ব্যবহার করুন।
নিম্নলিখিত উদাহরণটিতে 'refresh_token' নামের একটি কোয়েরি প্যারামিটারে অ্যাক্সেস টোকেনটি খুঁজে পাওয়ার কথা বলা হয়েছে (এর প্রকৃত বাস্তবায়নের বিস্তারিত বিবরণ আপনার উপর নির্ভর করছে):
<GetOAuthV2Info name="MyRefreshTokenAttrsPolicy"> <RefreshToken ref="request.queryparam.refresh_token"/> </GetOAuthV2Info>
রিফ্রেশ টোকেনটি পেলে, পলিসিটি টোকেনটির তথ্য খুঁজে বের করে এবং সেই টোকেনের ডেটা দিয়ে এক সেট ভেরিয়েবল পূরণ করে।
এরপর আপনি জাভাস্ক্রিপ্ট বা অন্য কোনো উপায়ে সেই ভেরিয়েবলগুলো অ্যাক্সেস করতে পারবেন। নিচের উদাহরণটি জাভাস্ক্রিপ্ট ব্যবহার করে রিফ্রেশ টোকেনের সাথে যুক্ত একটি কাস্টম অ্যাট্রিবিউট পুনরুদ্ধার করে:
var attr = context.getVariable(‘oauthv2refreshtoken.MyRefreshTokenAttrsPolicy.accesstoken.custom_attribute_name’);
মনে রাখবেন যে কোডে ভেরিয়েবলগুলো অ্যাক্সেস করতে হলে, সেগুলোর আগে অবশ্যই "oauthv2refreshtoken" যুক্ত করতে হবে। রিফ্রেশ টোকেনের মাধ্যমে উপলব্ধ ভেরিয়েবলগুলোর সম্পূর্ণ তালিকার জন্য, রিফ্রেশ টোকেন ভেরিয়েবল দেখুন।
স্থির
কিছু বিরল ক্ষেত্রে আপনার একটি স্ট্যাটিক্যালি কনফিগার করা টোকেনের (যা কোনো ভেরিয়েবলের মাধ্যমে অ্যাক্সেসযোগ্য নয়) প্রোফাইল পাওয়ার প্রয়োজন হতে পারে। আপনি অ্যাক্সেস টোকেনের মানটিকে একটি এলিমেন্ট হিসেবে প্রদান করে এটি করতে পারেন।
<GetOAuthV2Info name="GetTokenAttributes"> <AccessToken>shTUmeI1geSKin0TODcGLXBNe9vp</AccessToken> </GetOAuthV2Info>
আপনি অন্যান্য সব ধরনের টোকেনের (ক্লায়েন্ট আইডি, অনুমোদন কোড এবং রিফ্রেশ টোকেন) ক্ষেত্রেও এটি করতে পারেন।
ক্লায়েন্ট আইডি
এই উদাহরণটি দেখায় কিভাবে ক্লায়েন্ট আইডি ব্যবহার করে ক্লায়েন্ট অ্যাপ সম্পর্কে তথ্য পুনরুদ্ধার করতে হয়। কার্যকর করার পর, পলিসিটি ক্লায়েন্টের তথ্য দিয়ে এক সেট ভেরিয়েবল পূরণ করে। এক্ষেত্রে, পলিসিটি client_id নামক একটি কোয়েরি প্যারামিটারে ক্লায়েন্ট আইডিটি খুঁজে পাওয়ার আশা করে। ক্লায়েন্ট আইডিটি পাওয়ার পর, পলিসিটি ক্লায়েন্টের প্রোফাইল খুঁজে বের করে এবং প্রোফাইলের ডেটা দিয়ে এক সেট ভেরিয়েবল পূরণ করে। ভেরিয়েবলগুলোর নামের শুরুতে oauthv2client.
<GetOAuthV2Info name="GetClientAttributes"> <ClientId ref="request.queryparam.client_id"></ClientId> </GetOAuthV2Info>
এরপর আপনি জাভাস্ক্রিপ্ট বা অন্য কোনো উপায়ে ভেরিয়েবলগুলো অ্যাক্সেস করতে পারবেন। উদাহরণস্বরূপ, জাভাস্ক্রিপ্ট ব্যবহার করে ক্লায়েন্ট অ্যাপের সাথে যুক্ত ডেভেলপার অ্যাপের নাম এবং ডেভেলপার ইমেল পেতে:
context.getVariable("oauthv2client.GetClientAttributes.developer.email");
context.getVariable("oauthv2client.GetClientAttributes.developer.app.name");উপাদান রেফারেন্স
এলিমেন্ট রেফারেন্সটি GetOAuthV2Info পলিসির উপাদান এবং অ্যাট্রিবিউটগুলো বর্ণনা করে।
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <GetOAuthV2Info async="false" continueOnError="false" enabled="true" name="GetOAuthV2Info-1" <DisplayName>Get OAuth v2.0 Info 1</DisplayName> <AccessToken ref="variable"></AccessToken> <AuthorizationCode ref="variable"></AuthorizationCode> <ClientId ref="variable"></ClientId> <RefreshToken ref="variable"></RefreshToken> </GetOAuthV2Info>
<GetOAuthV2Info> অ্যাট্রিবিউট
<GetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Get-OAuth-v20-Info-1">
নিম্নলিখিত সারণী সমস্ত নীতির মূল উপাদানগুলির জন্য সাধারণ বৈশিষ্ট্যগুলি বর্ণনা করে:
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
|---|---|---|---|
name | নীতির অভ্যন্তরীণ নাম। ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে | N/A | প্রয়োজন |
continueOnError | একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে | মিথ্যা | ঐচ্ছিক |
enabled | নীতি প্রয়োগ করতে নীতি বন্ধ করতে | সত্য | ঐচ্ছিক |
async | এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷ | মিথ্যা | অবচয় |
<DisplayName> উপাদান
ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে name বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।
<DisplayName>Policy Display Name</DisplayName>
| ডিফল্ট | N/A আপনি এই উপাদানটি বাদ দিলে, নীতির |
|---|---|
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং |
<অ্যাক্সেস টোকেন> উপাদান
একটি অ্যাক্সেস টোকেনের প্রোফাইল পুনরুদ্ধার করে। আপনি অ্যাক্সেস টোকেন স্ট্রিং ধারণকারী একটি ভেরিয়েবল অথবা একটি আক্ষরিক টোকেন স্ট্রিং (বিরল ক্ষেত্রে) পাস করতে পারেন। এই উদাহরণে, একটি অনুরোধে পাস করা কোয়েরি প্যারামিটার থেকে অ্যাক্সেস টোকেনটি পুনরুদ্ধার করা হয়েছে। যদি আপনি একটি বাতিল বা মেয়াদোত্তীর্ণ টোকেনের তথ্য ফেরত পেতে চান, তাহলে <IgnoreAccessTokenStatus> এলিমেন্টটি ব্যবহার করুন।
<AccessToken ref="request.queryparam.access_token"></AccessToken>
ডিফল্ট: | request.formparam.access_token (একটি x-www-form-urlencoded যা রিকোয়েস্ট বডিতে নির্দিষ্ট করা থাকে) |
উপস্থিতি: | ঐচ্ছিক |
| প্রকার: | স্ট্রিং |
| বৈধ মান: | হয় অ্যাক্সেস টোকেন স্ট্রিং ধারণকারী একটি ফ্লো ভেরিয়েবল, অথবা একটি লিটারাল স্ট্রিং। |
<AuthorizationCode> উপাদান
একটি অনুমোদন কোডের জন্য প্রোফাইলটি পুনরুদ্ধার করে। আপনি এখানে হয় একটি ভেরিয়েবল পাস করেন যাতে অথ কোড স্ট্রিংটি থাকে, অথবা একটি আক্ষরিক টোকেন স্ট্রিং (যা একটি বিরল ক্ষেত্র)। এই উদাহরণে, একটি অনুরোধে পাস করা কোয়েরি প্যারামিটার থেকে অথ কোডটি পুনরুদ্ধার করা হয়েছে। এই অপারেশন দ্বারা পূরণ করা ভেরিয়েবলগুলির তালিকার জন্য, " ফ্লো ভেরিয়েবল " দেখুন।
<AuthorizationCode ref="request.queryparam.authorization_code"></AuthorizationCode>
ডিফল্ট: | request.formparam.access_token (একটি x-www-form-urlencoded যা রিকোয়েস্ট বডিতে নির্দিষ্ট করা থাকে) |
উপস্থিতি: | ঐচ্ছিক |
| প্রকার: | স্ট্রিং |
| বৈধ মান: | হয় একটি ফ্লো ভেরিয়েবল যাতে একটি অথ কোড স্ট্রিং থাকে, অথবা একটি লিটারেল স্ট্রিং। |
<ক্লায়েন্ট আইডি> উপাদান
একটি ক্লায়েন্ট আইডি সম্পর্কিত তথ্য পুনরুদ্ধার করে। এই উদাহরণে, একটি অনুরোধে প্রেরিত কোয়েরি প্যারামিটার থেকে ক্লায়েন্ট আইডিটি পুনরুদ্ধার করা হয়। এই অপারেশন দ্বারা পূরণ করা ভেরিয়েবলগুলির তালিকার জন্য, " ফ্লো ভেরিয়েবল " দেখুন।
<ClientId ref="request.queryparam.client_id"></ClientId>ডিফল্ট: | request.formparam.access_token (একটি x-www-form-urlencoded যা রিকোয়েস্ট বডিতে নির্দিষ্ট করা থাকে) |
উপস্থিতি: | ঐচ্ছিক |
| প্রকার: | স্ট্রিং |
| বৈধ মান: | হয় একটি ফ্লো ভেরিয়েবল যাতে একটি অথ কোড স্ট্রিং থাকে, অথবা একটি লিটারেল স্ট্রিং। |
<অ্যাক্সেস টোকেন স্ট্যাটাস উপেক্ষা করুন> উপাদান
টোকেনের মেয়াদ শেষ হয়ে গেলেও বা তা বাতিল করা হলেও টোকেনের তথ্য ফেরত দেয়। এই এলিমেন্টটি শুধুমাত্র অ্যাক্সেস টোকেনের সাথেই ব্যবহার করা যায়। রিফ্রেশ টোকেন এবং অথরাইজেশন কোডের মতো অন্যান্য এনটিটির তথ্য ডিফল্টরূপে তাদের অবস্থা নির্বিশেষে ফেরত দেওয়া হয়।
<IgnoreAccessTokenStatus>true</IgnoreAccessTokenStatus>
ডিফল্ট: | মিথ্যা |
উপস্থিতি: | ঐচ্ছিক |
| প্রকার: | বুলিয়ান |
| বৈধ মান: | সত্য বা মিথ্যা |
<রিফ্রেশটোকেন> উপাদান
রিফ্রেশ টোকেনের জন্য প্রোফাইলটি পুনরুদ্ধার করে। আপনি হয় রিফ্রেশ টোকেন স্ট্রিং ধারণকারী একটি ভেরিয়েবল অথবা একটি আক্ষরিক টোকেন স্ট্রিং (বিরল ক্ষেত্রে) পাস করেন। এই উদাহরণে, একটি অনুরোধে পাস করা কোয়েরি প্যারামিটার থেকে রিফ্রেশ টোকেনটি পুনরুদ্ধার করা হয়। এই অপারেশন দ্বারা পূরণ করা ভেরিয়েবলগুলির তালিকার জন্য, " ফ্লো ভেরিয়েবল " দেখুন।
<RefreshToken ref="request.queryparam.refresh_token"></RefreshToken>
ডিফল্ট: | request.formparam.access_token (একটি x-www-form-urlencoded যা রিকোয়েস্ট বডিতে নির্দিষ্ট করা থাকে) |
উপস্থিতি: | ঐচ্ছিক |
| প্রকার: | স্ট্রিং |
| বৈধ মান: | হয় একটি ফ্লো ভেরিয়েবল যাতে একটি রিফ্রেশ টোকেন স্ট্রিং থাকে, অথবা একটি আক্ষরিক স্ট্রিং। |
প্রবাহ পরিবর্তনশীল
GetOAuthV2Info পলিসিটি এই ভেরিয়েবলগুলো পূরণ করে এবং এটি সাধারণত এমন ক্ষেত্রে ব্যবহৃত হয় যেখানে আপনার প্রোফাইল ডেটা প্রয়োজন, কিন্তু এখনও কোনো অনুমোদন বা যাচাইকরণ সম্পন্ন হয়নি।
ক্লায়েন্ট আইডি ভেরিয়েবল
ClientId এলিমেন্টটি সেট করা হলে এই ভেরিয়েবলগুলো পূরণ করা হয়:
oauthv2client.{policy_name}.client_id
oauthv2client.{policy_name}.client_secret
oauthv2client.{policy_name}.redirection_uris // Note the spelling -- 'redirection_uris'
oauthv2client.{policy_name}.developer.email
oauthv2client.{policy_name}.developer.app.name
oauthv2client.{policy_name}.developer.id
oauthv2client.{policy_name}.{developer_app_custom_attribute_name}টোকেন ভেরিয়েবল অ্যাক্সেস করুন
AccessToken এলিমেন্টটি সেট করা হলে এই ভেরিয়েবলগুলো পূরণ করা হয়:
oauthv2accesstoken.{policy_name}.developer.id oauthv2accesstoken.{policy_name}.developer.app.name oauthv2accesstoken.{policy_name}.developer.app.id oauthv2accesstoken.{policy_name}.developer.email oauthv2accesstoken.{policy_name}.organization_name oauthv2accesstoken.{policy_name}.api_product_list oauthv2accesstoken.{policy_name}.access_token oauthv2accesstoken.{policy_name}.scope oauthv2accesstoken.{policy_name}.expires_in //in seconds oauthv2accesstoken.{policy_name}.status oauthv2accesstoken.{policy_name}.client_id oauthv2accesstoken.{policy_name}.accesstoken.{custom_attribute_name} oauthv2accesstoken.{policy_name}.refresh_token oauthv2accesstoken.{policy_name}.refresh_token_status oauthv2accesstoken.{policy_name}.refresh_token_expires_in //in seconds oauthv2accesstoken.{policy_name}.refresh_count oauthv2accesstoken.{policy_name}.refresh_token_issued_at oauthv2accesstoken.{policy_name}.revoke_reason //Apigee hybrid only with value of REVOKED_BY_APP, REVOKED_BY_ENDUSER, REVOKED_BY_APP_ENDUSER, or TOKEN_REVOKED
অনুমোদন কোড ভেরিয়েবল
AuthorizationCode এলিমেন্টটি সেট করা হলে এই ভেরিয়েবলগুলো পূরণ করা হয়:
oauthv2authcode.{policy_name}.code
oauthv2authcode.{policy_name}.scope
oauthv2authcode.{policy_name}.redirect_uri
oauthv2authcode.{policy_name}.client_id
oauthv2authcode.{policy_name}.{auth_code_custom_attribute_name}টোকেন ভেরিয়েবল রিফ্রেশ করুন
RefreshToken এলিমেন্টটি সেট করা হলে এই ভেরিয়েবলগুলো পূরণ করা হয়:
oauthv2refreshtoken.{policy_name}.developer.id oauthv2refreshtoken.{policy_name}.developer.app.name oauthv2refreshtoken.{policy_name}.developer.app.id oauthv2refreshtoken.{policy_name}.developer.email oauthv2refreshtoken.{policy_name}.organization_name oauthv2refreshtoken.{policy_name}.api_product_list oauthv2refreshtoken.{policy_name}.access_token oauthv2refreshtoken.{policy_name}.scope oauthv2refreshtoken.{policy_name}.expires_in //in seconds oauthv2refreshtoken.{policy_name}.status oauthv2refreshtoken.{policy_name}.client_id oauthv2refreshtoken.{policy_name}.accesstoken.{custom_attribute_name} oauthv2refreshtoken.{policy_name}.refresh_token oauthv2refreshtoken.{policy_name}.refresh_token_status oauthv2refreshtoken.{policy_name}.refresh_token_expires_in //in seconds oauthv2refreshtoken.{policy_name}.refresh_count oauthv2refreshtoken.{policy_name}.refresh_token_issued_at oauthv2refreshtoken.{policy_name}.revoke_reason //Apigee hybrid only with value of REVOKED_BY_APP, REVOKED_BY_ENDUSER, REVOKED_BY_APP_ENDUSER, or TOKEN_REVOKED
স্কিমা
প্রতিটি পলিসি টাইপ একটি XML স্কিমা ( .xsd ) দ্বারা সংজ্ঞায়িত করা হয়। তথ্যের জন্য, পলিসি স্কিমাগুলো গিটহাবে পাওয়া যাবে।
ত্রুটির রেফারেন্স
এই বিভাগটি ফল্ট কোড এবং ত্রুটি বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷
রানটাইম ত্রুটি
নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷ নীচে দেখানো ত্রুটির নামগুলি হল সেই স্ট্রিংগুলি যা একটি ত্রুটি ঘটলে fault.name ভেরিয়েবলের জন্য নির্ধারিত হয়। আরও বিশদ বিবরণের জন্য নীচের ফল্ট ভেরিয়েবল বিভাগটি দেখুন।
| ফল্ট কোড | HTTP স্থিতি | কারণ |
|---|---|---|
steps.oauth.v2.access_token_expired | 500 | পলিসিতে পাঠানো অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেছে। |
steps.oauth.v2.authorization_code_expired | 500 | পলিসিতে পাঠানো অনুমোদন কোডের মেয়াদ শেষ হয়ে গেছে। |
steps.oauth.v2.invalid_access_token | 500 | নীতিতে পাঠানো অ্যাক্সেস টোকেনটি অবৈধ৷ |
steps.oauth.v2.invalid_client-invalid_client_id | 500 | পলিসিতে পাঠানো ক্লায়েন্ট আইডিটি অবৈধ। |
steps.oauth.v2.invalid_refresh_token | 500 | নীতিতে পাঠানো রিফ্রেশ টোকেনটি অবৈধ৷ |
steps.oauth.v2.invalid_request-authorization_code_invalid | 500 | নীতিতে পাঠানো অনুমোদন কোডটি অবৈধ। |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound | 401 | এই ত্রুটির সমস্যা সমাধান সম্পর্কে তথ্যের জন্য দয়া করে এই Apigee কমিউনিটি পোস্টটি দেখুন৷ |
steps.oauth.v2.refresh_token_expired | 500 | পলিসিতে পাঠানো রিফ্রেশ টোকেনের মেয়াদ শেষ হয়ে গেছে। |
স্থাপনার ত্রুটি
স্থাপনার ত্রুটি সম্পর্কে তথ্যের জন্য UI এ রিপোর্ট করা বার্তাটি পড়ুন।
ফল্ট ভেরিয়েবল
যখন এই নীতি রানটাইমে একটি ত্রুটি ট্রিগার করে তখন এই ভেরিয়েবলগুলি সেট করা হয়৷
| ভেরিয়েবল | যেখানে | উদাহরণ |
|---|---|---|
fault.name=" fault_name " | fault_name হল ফল্টের নাম, যা উপরে রানটাইম ত্রুটির সারণীতে তালিকাভুক্ত করা হয়েছে। ফল্ট নামটি ফল্ট কোডের শেষ অংশ। | fault.name Matches "IPDeniedAccess" |
oauthV2. policy_name .failed | policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যা ত্রুটিটি ফেলেছে। | oauthV2.GetTokenInfo.failed = true |
oauthV2. policy_name .fault.name | policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যা ত্রুটিটি ফেলেছে। | oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id |
oauthV2. policy_name .fault.cause | policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যা ত্রুটিটি ফেলেছে। | oauthV2.GetTokenInfo.cause = ClientID is Invalid |
উদাহরণ ত্রুটি প্রতিক্রিয়া
{ "fault":{ "faultstring":"ClientId is Invalid", "detail":{ "errorcode":"keymanagement.service.invalid_client-invalid_client_id" } } }
উদাহরণ দোষ নিয়ম
<FaultRule name="OAuthV2 Faults">
<Step>
<Name>AM-InvalidClientIdResponse</Name>
</Step>
<Condition>(fault.name = "invalid_client-invalid_client_id")</Condition>
</FaultRule>