অ্যাক্সেস টোকেন এবং অনুমোদন কোড অনুরোধ

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

এই অধ্যায়ে আমরা আপনাকে দেখাবো কিভাবে অ্যাক্সেস টোকেন এবং অথরাইজেশন কোডের জন্য অনুরোধ করতে হয়, OAuth 2.0 এন্ডপয়েন্ট কনফিগার করতে হয় এবং প্রতিটি সমর্থিত গ্রান্ট টাইপের জন্য পলিসি কনফিগার করতে হয়।

নমুনা কোড

আপনার সুবিধার জন্য, এই টপিকে আলোচিত পলিসি এবং এন্ডপয়েন্টগুলো গিটহাবের Apigee api-platform-samples রিপোজিটরির অন্তর্গত oauth-doc-examples প্রজেক্টে পাওয়া যাচ্ছে। আপনি স্যাম্পল কোডটি ডিপ্লয় করে এই টপিকে দেখানো স্যাম্পল রিকোয়েস্টগুলো পরীক্ষা করে দেখতে পারেন। বিস্তারিত জানতে প্রজেক্টের README দেখুন।

অ্যাক্সেস টোকেনের জন্য অনুরোধ: অনুমোদন কোড অনুদানের ধরণ

এই বিভাগে অথরাইজেশন কোড গ্রান্ট টাইপ ফ্লো ব্যবহার করে কীভাবে একটি অ্যাক্সেস টোকেনের জন্য অনুরোধ করতে হয় তা ব্যাখ্যা করা হয়েছে। OAuth 2.0 গ্রান্ট টাইপগুলির পরিচিতির জন্য, "OAuth 2.0-এর পরিচিতি" দেখুন।

নমুনা অনুরোধ

$ curl -i -H 'Content-Type: application/x-www-form-urlencoded' \
   -H 'Authorization: Basic c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ' \
   -X POST 'https://docs-test.apigee.net/oauth/accesstoken' \
   -d 'code=I9dMGHAN&grant_type=authorization_code&redirect_uri=http://example-callback.com'

প্রয়োজনীয় প্যারামিটার

ডিফল্টরূপে, এই প্যারামিটারগুলো অবশ্যই x-www-form-urlencoded হতে হবে এবং রিকোয়েস্ট বডিতে উল্লেখ করতে হবে (যেমনটি উপরের নমুনায় দেখানো হয়েছে); তবে, এই /accesstoken এন্ডপয়েন্টের সাথে সংযুক্ত OAuthV2 পলিসিতে <GrantType> , <Code> , এবং <RedirectUri> এলিমেন্টগুলো কনফিগার করার মাধ্যমে এই ডিফল্টটি পরিবর্তন করা সম্ভব। বিস্তারিত জানতে, OAuthV2 পলিসি দেখুন।

  • grant_type - এর মান অবশ্যই authorization_code হতে হবে।
  • কোড - /authorize এন্ডপয়েন্ট (বা আপনি যে নামেই এটি নামকরণ করুন না কেন) থেকে প্রাপ্ত অনুমোদন কোড। অনুমোদন কোড গ্রান্ট টাইপ ফ্লো-তে একটি অ্যাক্সেস টোকেনের জন্য অনুরোধ করতে, আপনাকে প্রথমে একটি অনুমোদন কোড সংগ্রহ করতে হবে। নিচে 'অনুমোদন কোডের জন্য অনুরোধ' দেখুন। আরও দেখুন 'অনুমোদন কোড গ্রান্ট টাইপ বাস্তবায়ন '।
  • redirect_uri - যদি পূর্ববর্তী অথরাইজেশন কোড অনুরোধে redirect_uri প্যারামিটারটি অন্তর্ভুক্ত থাকে, তবে আপনাকে অবশ্যই এই প্যারামিটারটি প্রদান করতে হবে। যদি অথরাইজেশন কোড অনুরোধে redirect_uri প্যারামিটারটি অন্তর্ভুক্ত না থাকে এবং আপনি এই প্যারামিটারটি প্রদান না করেন, তাহলে এই পলিসিটি ডেভেলপার অ্যাপ নিবন্ধনের সময় প্রদত্ত কলব্যাক ইউআরএল (Callback URL)-এর মান ব্যবহার করবে।

ঐচ্ছিক পরামিতি

  • স্টেট - একটি স্ট্রিং যা রেসপন্সের সাথে ফেরত পাঠানো হবে। সাধারণত ক্রস-সাইট রিকোয়েস্ট ফোরজারি আক্রমণ প্রতিরোধ করতে ব্যবহৃত হয়।
  • স্কোপ - এটি আপনাকে সেইসব এপিআই প্রোডাক্টের তালিকা ফিল্টার করার সুযোগ দেয়, যেগুলোর সাথে তৈরি করা টোকেনটি ব্যবহার করা যাবে। স্কোপ সম্পর্কে বিস্তারিত তথ্যের জন্য, “OAuth2 স্কোপ নিয়ে কাজ করা” দেখুন।

প্রমাণীকরণ

আপনাকে অবশ্যই ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট হয় বেসিক অথেনটিকেশন হেডার (বেস৬৪-এনকোডেড) হিসেবে অথবা ফর্ম প্যারামিটার client_id এবং client_secret হিসেবে প্রদান করতে হবে। আপনি এই মানগুলো একটি নিবন্ধিত ডেভেলপার অ্যাপ থেকে পাবেন। আরও দেখুন " বেসিক অথেনটিকেশন ক্রেডেনশিয়াল এনকোডিং "।

নমুনা শেষবিন্দু

অ্যাক্সেস টোকেন তৈরি করার জন্য এখানে একটি নমুনা এন্ডপয়েন্ট কনফিগারেশন দেওয়া হলো। এটি GenerateAccessToken পলিসিটি কার্যকর করবে, যা অবশ্যই authorization_code গ্রান্ট টাইপ সমর্থন করার জন্য কনফিগার করা থাকতে হবে।

...
       <Flow name="generate-access-token">
            <Description>Generate a token</Description>
            <Request>
                <Step>
                    <Name>GenerateAccessToken</Name>
                </Step>
            </Request>
            <Response/>
            <Condition>(proxy.pathsuffix MatchesPath "/token") and (request.verb = "POST")</Condition>
        </Flow>
...

নমুনা নীতি

এটি একটি মৌলিক GenerateAccessToken পলিসি যা authorization_code গ্রান্ট টাইপ গ্রহণ করার জন্য কনফিগার করা হয়েছে। এই পলিসির সাথে আপনি যে ঐচ্ছিক কনফিগারেশন উপাদানগুলো কনফিগার করতে পারেন, সে সম্পর্কে তথ্যের জন্য OAuthV2 পলিসি দেখুন।

<OAuthV2 name="GenerateAccessToken">
    <Operation>GenerateAccessToken</Operation>
    <ExpiresIn>1800000</ExpiresIn>
    <RefreshTokenExpiresIn>86400000</RefreshTokenExpiresIn>
    <SupportedGrantTypes>
      <GrantType>authorization_code</GrantType>
    </SupportedGrantTypes>
    <GenerateResponse enabled="true"/>
</OAuthV2>

ফেরত

<GenerateResponse> সক্রিয় থাকলে, পলিসিটি একটি JSON রেসপন্স ফেরত দেয়, যাতে অ্যাক্সেস টোকেন অন্তর্ভুক্ত থাকে, যেমনটি নিচে দেখানো হয়েছে। authorization_code গ্রান্ট টাইপটি একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন তৈরি করে, তাই একটি রেসপন্স দেখতে এইরকম হতে পারে:

{
    "issued_at": "1420262924658",
    "scope": "READ",
    "application_name": "ce1e94a2-9c3e-42fa-a2c6-1ee01815476b",
    "refresh_token_issued_at": "1420262924658",
    "status": "approved",
    "refresh_token_status": "approved",
    "api_product_list": "[PremiumWeatherAPI]",
    "expires_in": "1799", //--in seconds
    "developer.email": "tesla@weathersample.com",
    "organization_id": "0",
    "token_type": "BearerToken",
    "refresh_token": "fYACGW7OCPtCNDEnRSnqFlEgogboFPMm",
    "client_id": "5jUAdGv9pBouF0wOH5keAVI35GBtx3dT",
    "access_token": "2l4IQtZXbn5WBJdL6EF7uenOWRsi",
    "organization_name": "docs",
    "refresh_token_expires_in": "86399", //--in seconds
    "refresh_count": "0"
}

যদি <GenerateResponse> মান false সেট করা থাকে, তাহলে পলিসিটি কোনো প্রতিক্রিয়া ফেরত দেয় না। এর পরিবর্তে, এটি অ্যাক্সেস টোকেন মঞ্জুরি সম্পর্কিত ডেটা দিয়ে নিম্নলিখিত ফ্লো ভেরিয়েবলগুলো পূরণ করে।

oauthv2accesstoken.{policy-name}.access_token
oauthv2accesstoken.{policy-name}.expires_in //--in seconds
oauthv2accesstoken.{policy-name}.refresh_token
oauthv2accesstoken.{policy-name}.refresh_token_expires_in //--in seconds
oauthv2accesstoken.{policy-name}.refresh_token_issued_at
oauthv2accesstoken.{policy-name}.refresh_token_status

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

oauthv2accesstoken.GenerateAccessToken.access_token
oauthv2accesstoken.GenerateAccessToken.expires_in
oauthv2accesstoken.GenerateAccessToken.refresh_token
oauthv2accesstoken.GenerateAccessToken.refresh_token_expires_in
oauthv2accesstoken.GenerateAccessToken.refresh_token_issued_at
oauthv2accesstoken.GenerateAccessToken.refresh_token_status

অ্যাক্সেস টোকেনের জন্য অনুরোধ: ক্লায়েন্ট ক্রেডেনশিয়াল অনুদান প্রকার

এই বিভাগে ক্লায়েন্ট ক্রেডেনশিয়ালস গ্রান্ট টাইপ ফ্লো ব্যবহার করে কীভাবে একটি অ্যাক্সেস টোকেনের জন্য অনুরোধ করতে হয় তা ব্যাখ্যা করা হয়েছে। OAuth 2.0 গ্রান্ট টাইপগুলির পরিচিতির জন্য, "OAuth 2.0-এর পরিচিতি" দেখুন।

নমুনা অনুরোধ

নিম্নলিখিত কলে বেসিক অথেন্টিকেশন হেডার এনকোড করার তথ্যের জন্য, " বেসিক অথেন্টিকেশন ক্রেডেনশিয়াল এনকোড করা " দেখুন।

$ curl -i -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Authorization: Basic c3FIOG9vSGV4VHoAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ' \
  -X POST 'https://docs-test.apigee.net/oauth/accesstoken' \
  -d 'grant_type=client_credentials'

প্রয়োজনীয় প্যারামিটার

ডিফল্টরূপে, প্রয়োজনীয় grant_type প্যারামিটারটি অবশ্যই x-www-form-urlencoded হতে হবে এবং রিকোয়েস্ট বডিতে উল্লেখ করতে হবে (যেমনটি উপরের নমুনায় দেখানো হয়েছে); তবে, এই /accesstoken এন্ডপয়েন্টের সাথে সংযুক্ত OAuthV2 পলিসিতে <GrantType> এলিমেন্টটি কনফিগার করার মাধ্যমে এই ডিফল্টটি পরিবর্তন করা সম্ভব। উদাহরণস্বরূপ, আপনি প্যারামিটারটি একটি কোয়েরি প্যারামিটার হিসেবে পাস করতে পারেন। বিস্তারিত জানতে, OAuthV2 পলিসি দেখুন।

  • grant_type - এর মান অবশ্যই client_credentials হতে হবে।

ঐচ্ছিক পরামিতি

  • স্টেট - একটি স্ট্রিং যা রেসপন্সের সাথে ফেরত পাঠানো হবে। সাধারণত ক্রস-সাইট রিকোয়েস্ট ফোরজারি আক্রমণ প্রতিরোধ করতে ব্যবহৃত হয়।
  • স্কোপ - এটি আপনাকে সেইসব এপিআই প্রোডাক্টের তালিকা ফিল্টার করার সুযোগ দেয়, যেগুলোর সাথে তৈরি করা টোকেনটি ব্যবহার করা যাবে। স্কোপ সম্পর্কে বিস্তারিত তথ্যের জন্য, “OAuth2 স্কোপ নিয়ে কাজ করা” দেখুন।

প্রমাণীকরণ

আপনাকে অবশ্যই ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট হয় বেসিক অথেনটিকেশন হেডার (বেস৬৪-এনকোডেড) হিসেবে অথবা ফর্ম প্যারামিটার client_id এবং client_secret হিসেবে প্রদান করতে হবে। আপনি অনুরোধটির সাথে যুক্ত নিবন্ধিত ডেভেলপার অ্যাপ থেকে এই মানগুলি পাবেন। আরও দেখুন " বেসিক অথেনটিকেশন ক্রেডেনশিয়াল এনকোডিং "।

নমুনা শেষবিন্দু

অ্যাক্সেস টোকেন তৈরি করার জন্য এখানে একটি নমুনা এন্ডপয়েন্ট কনফিগারেশন দেওয়া হলো। এটি GenerateAccessToken পলিসিটি কার্যকর করবে, যা অবশ্যই client_credentials গ্রান্ট টাইপ সমর্থন করার জন্য কনফিগার করা থাকতে হবে।

...
       <Flow name="generate-access-token">
            <Request>
                <Step>
                    <Name>GenerateAccessToken</Name>
                </Step>
            </Request>
            <Response/>
            <Condition>(proxy.pathsuffix MatchesPath "/token") and (request.verb = "POST")</Condition>
        </Flow>
...

নমুনা নীতি

এটি একটি মৌলিক GenerateAccessToken পলিসি যা client_credentials গ্রান্ট টাইপ গ্রহণ করার জন্য কনফিগার করা হয়েছে। এই পলিসির সাথে আপনি যে ঐচ্ছিক কনফিগারেশন উপাদানগুলো কনফিগার করতে পারেন, সে সম্পর্কে তথ্যের জন্য OAuthV2 পলিসি দেখুন।

<OAuthV2 name="GenerateAccessToken">
    <Operation>GenerateAccessToken</Operation>
    <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
    <SupportedGrantTypes>
      <GrantType>client_credentials</GrantType>
    </SupportedGrantTypes>
    <GenerateResponse enabled="true"/>
</OAuthV2>

ফেরত

<GenerateResponse> সক্রিয় থাকলে, পলিসিটি একটি JSON রেসপন্স ফেরত দেয়। উল্লেখ্য যে, client_credentials গ্রান্ট টাইপের ক্ষেত্রে রিফ্রেশ টোকেন সমর্থিত নয়। শুধুমাত্র একটি অ্যাক্সেস টোকেন তৈরি করা হয়। উদাহরণস্বরূপ:

{
    "issued_at": "1420260525643",
    "application_name": "ce1e94a2-9c3e-42fa-a2c6-1ee01815476b",
    "scope": "READ",
    "status": "approved",
    "api_product_list": "[PremiumWeatherAPI]",
    "expires_in": "1799", //--in seconds
    "developer.email": "tesla@weathersample.com",
    "organization_id": "0",
    "token_type": "BearerToken",
    "client_id": "5jUAdGv9pBouF0wOH5keAVI35GBtx3dT",
    "access_token": "XkhU2DFnMGIVL2hvsRHLM00hRWav",
    "organization_name": "docs"
}

যদি <GenerateResponse> মান false সেট করা থাকে, তাহলে পলিসিটি কোনো প্রতিক্রিয়া ফেরত দেয় না। এর পরিবর্তে, এটি অ্যাক্সেস টোকেন মঞ্জুরি সম্পর্কিত ডেটা দিয়ে নিম্নলিখিত ফ্লো ভেরিয়েবলগুলো পূরণ করে।

oauthv2accesstoken.{policy-name}.access_token
oauthv2accesstoken.{policy-name}.expires_in //--in seconds

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

oauthv2accesstoken.GenerateAccessToken.access_token
oauthv2accesstoken.GenerateAccessToken.expires_in     //--in seconds

অ্যাক্সেস টোকেনের জন্য অনুরোধ: পাসওয়ার্ড মঞ্জুর করার ধরণ

এই বিভাগে রিসোর্স ওনার পাসওয়ার্ড ক্রেডেনশিয়ালস (পাসওয়ার্ড) গ্রান্ট টাইপ ফ্লো ব্যবহার করে কীভাবে একটি অ্যাক্সেস টোকেনের জন্য অনুরোধ করতে হয় তা ব্যাখ্যা করা হয়েছে। OAuth 2.0 গ্রান্ট টাইপগুলির পরিচিতির জন্য, "Introduction to OAuth 2.0" দেখুন।

পাসওয়ার্ড গ্রান্ট টাইপ সম্পর্কে আরও বিস্তারিত জানতে, যার মধ্যে এটি কীভাবে প্রয়োগ করতে হয় তা দেখানো একটি ৪-মিনিটের ভিডিও রয়েছে, “পাসওয়ার্ড গ্রান্ট টাইপ বাস্তবায়ন” দেখুন।

নমুনা অনুরোধ

নিম্নলিখিত কলে বেসিক অথেন্টিকেশন হেডার এনকোড করার তথ্যের জন্য, " বেসিক অথেন্টিকেশন ক্রেডেনশিয়াল এনকোড করা " দেখুন।

$ curl -i -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Authorization: Basic c3FIOG9vSGV4VHo4QzAySVg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ' \
  -X POST https://docs-test.apigee.net/oauth/token \
  -d 'grant_type=password&username=the-user-name&password=the-users-password'

প্রয়োজনীয় প্যারামিটার

ডিফল্টরূপে, এই প্যারামিটারগুলো অবশ্যই x-www-form-urlencoded হতে হবে এবং রিকোয়েস্ট বডিতে উল্লেখ করতে হবে (যেমনটি উপরের নমুনায় দেখানো হয়েছে); তবে, এই /token এন্ডপয়েন্টের সাথে সংযুক্ত OAuthV2 পলিসিতে <GrantType> , <Username> , এবং <Password> এলিমেন্টগুলো কনফিগার করার মাধ্যমে এই ডিফল্টটি পরিবর্তন করা সম্ভব। বিস্তারিত জানতে, OAuthV2 পলিসি দেখুন।

সাধারণত LDAP বা জাভাস্ক্রিপ্ট পলিসি ব্যবহার করে ক্রেডেনশিয়াল স্টোরের মাধ্যমে ব্যবহারকারীর পরিচয়পত্র যাচাই করা হয়।

  • grant_type - এর মান অবশ্যই password হতে হবে।
  • ব্যবহারকারীর নাম - রিসোর্স মালিকের ব্যবহারকারীর নাম।
  • পাসওয়ার্ড - রিসোর্স মালিকের পাসওয়ার্ড।

ঐচ্ছিক পরামিতি

  • স্টেট - একটি স্ট্রিং যা রেসপন্সের সাথে ফেরত পাঠানো হবে। সাধারণত ক্রস-সাইট রিকোয়েস্ট ফোরজারি আক্রমণ প্রতিরোধ করতে ব্যবহৃত হয়।
  • স্কোপ - এটি আপনাকে সেইসব এপিআই প্রোডাক্টের তালিকা ফিল্টার করার সুযোগ দেয়, যেগুলোর সাথে তৈরি করা টোকেনটি ব্যবহার করা যাবে। স্কোপ সম্পর্কে বিস্তারিত তথ্যের জন্য, “OAuth2 স্কোপ নিয়ে কাজ করা” দেখুন।

প্রমাণীকরণ

আপনাকে অবশ্যই ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট হয় বেসিক অথেনটিকেশন হেডার (বেস৬৪-এনকোডেড) হিসেবে অথবা ফর্ম প্যারামিটার client_id এবং client_secret হিসেবে প্রদান করতে হবে। আপনি অনুরোধটির সাথে যুক্ত নিবন্ধিত ডেভেলপার অ্যাপ থেকে এই মানগুলি পাবেন। আরও দেখুন " বেসিক অথেনটিকেশন ক্রেডেনশিয়াল এনকোডিং "।

নমুনা শেষবিন্দু

অ্যাক্সেস টোকেন তৈরি করার জন্য এখানে একটি নমুনা এন্ডপয়েন্ট কনফিগারেশন দেওয়া হলো। এটি GenerateAccessToken পলিসিটি কার্যকর করবে, যা অবশ্যই পাসওয়ার্ড গ্রান্ট টাইপ সমর্থন করার জন্য কনফিগার করা থাকতে হবে।

...
       <Flow name="generate-access-token">
            <Request>
                <Step>
                    <Name>GenerateAccessToken</Name>
                </Step>
            </Request>
            <Response/>
            <Condition>(proxy.pathsuffix MatchesPath "/token") and (request.verb = "POST")</Condition>
        </Flow>
...

নমুনা নীতি

এটি একটি মৌলিক GenerateAccessToken পলিসি যা পাসওয়ার্ড গ্রান্ট টাইপ গ্রহণ করার জন্য কনফিগার করা হয়েছে। এই পলিসির সাথে আপনি যে ঐচ্ছিক কনফিগারেশন উপাদানগুলো কনফিগার করতে পারেন, সে সম্পর্কে তথ্যের জন্য OAuthV2 পলিসি দেখুন।

<OAuthV2 name="GenerateAccessToken">
    <Operation>GenerateAccessToken</Operation>
    <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
    <RefreshTokenExpiresIn>28800000</RefreshTokenExpiresIn> <!-- 8 hours -->
    <SupportedGrantTypes>
      <GrantType>password</GrantType>
    </SupportedGrantTypes>
    <GenerateResponse enabled="true"/>
</OAuthV2>

ফেরত

<GenerateResponse> সক্রিয় থাকলে, পলিসিটি একটি JSON রেসপন্স ফেরত দেয়। উল্লেখ্য যে, পাসওয়ার্ড গ্রান্ট টাইপের ক্ষেত্রে একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন উভয়ই তৈরি করা হয়। উদাহরণস্বরূপ:

{
    "issued_at": "1420258685042",
    "scope": "READ",
    "application_name": "ce1e94a2-9c3e-42fa-a2c6-1ee01815476b",
    "refresh_token_issued_at": "1420258685042",
    "status": "approved",
    "refresh_token_status": "approved",
    "api_product_list": "[PremiumWeatherAPI]",
    "expires_in": "1799", //--in seconds
    "developer.email": "tesla@weathersample.com",
    "organization_id": "0",
    "token_type": "BearerToken",
    "refresh_token": "IFl7jlijYuexu6XVSSjLMJq8SVXGOAAq",
    "client_id": "5jUAdGv9pBouF0wOH5keAVI35GBtx3dT",
    "access_token": "I6daIgMSiUgYX1K2qgQWPi37ztS6",
    "organization_name": "docs",
    "refresh_token_expires_in": "28799", //--in seconds
    "refresh_count": "0"
}

যদি <GenerateResponse> মান false সেট করা থাকে, তাহলে পলিসিটি কোনো প্রতিক্রিয়া ফেরত দেয় না। এর পরিবর্তে, এটি অ্যাক্সেস টোকেন মঞ্জুরি সম্পর্কিত ডেটা দিয়ে নিম্নলিখিত ফ্লো ভেরিয়েবলগুলো পূরণ করে।

oauthv2accesstoken.{policy-name}.access_token
oauthv2accesstoken.{policy-name}.expires_in   //--in seconds
oauthv2accesstoken.{policy-name}.refresh_token
oauthv2accesstoken.{policy-name}.refresh_token_expires_in  //--in seconds
oauthv2accesstoken.{policy-name}.refresh_token_issued_at
oauthv2accesstoken.{policy-name}.refresh_token_status

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

oauthv2accesstoken.GenerateAccessToken.access_token
oauthv2accesstoken.GenerateAccessToken.expires_in
oauthv2accesstoken.GenerateAccessToken.refresh_token
oauthv2accesstoken.GenerateAccessToken.refresh_token_expires_in
oauthv2accesstoken.GenerateAccessToken.refresh_token_issued_at
oauthv2accesstoken.GenerateAccessToken.refresh_token_status

অ্যাক্সেস টোকেনের জন্য অনুরোধ: অন্তর্নিহিত অনুদান প্রকার

এই বিভাগে ইমপ্লিসিট গ্র্যান্ট টাইপ ফ্লো ব্যবহার করে কীভাবে একটি অ্যাক্সেস টোকেনের জন্য অনুরোধ করতে হয় তা ব্যাখ্যা করা হয়েছে। OAuth 2.0 গ্র্যান্ট টাইপ সম্পর্কে প্রাথমিক ধারণা পেতে, “Introduction to OAuth 2.0” দেখুন।

নমুনা অনুরোধ

$ curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \
  'https://docs-test.apigee.net/oauth/implicit?response_type=token&client_id=ABC123&redirect_uri=http://callback-example.com'

প্রয়োজনীয় প্যারামিটার

ডিফল্টরূপে, এই প্যারামিটারগুলো অবশ্যই কোয়েরি প্যারামিটার হতে হবে (যেমনটি উপরের নমুনায় দেখানো হয়েছে); তবে, এই /token এন্ডপয়েন্টের সাথে সংযুক্ত OAuthV2 পলিসিতে <ResponseType> , <ClientId> , এবং <RedirectUri> এলিমেন্টগুলো কনফিগার করার মাধ্যমে এই ডিফল্টটি পরিবর্তন করা সম্ভব। বিস্তারিত জানতে, OAuthV2 পলিসি দেখুন।

ব্যবহারকারীর পরিচয়পত্র সাধারণত একটি LDAP সার্ভিস কলআউট অথবা জাভাস্ক্রিপ্ট পলিসি ব্যবহার করে ক্রেডেনশিয়াল স্টোরের বিপরীতে যাচাই করা হয়।

  • response_type - এর মান অবশ্যই token হতে হবে।
  • client_id - একটি নিবন্ধিত ডেভেলপার অ্যাপের ক্লায়েন্ট আইডি।
  • redirect_uri - ক্লায়েন্ট ডেভেলপার অ্যাপটি নিবন্ধন করার সময় যদি কোনো কলব্যাক ইউআরআই (Callback URI) প্রদান করা না হয়ে থাকে, তাহলে এই প্যারামিটারটি বাধ্যতামূলক। ক্লায়েন্ট নিবন্ধনের সময় যদি একটি কলব্যাক ইউআরএল প্রদান করা হয়ে থাকে, তবে সেটিকে এই মানের সাথে তুলনা করা হবে এবং তা অবশ্যই হুবহু মিলতে হবে।

ঐচ্ছিক পরামিতি

  • স্টেট - একটি স্ট্রিং যা রেসপন্সের সাথে ফেরত পাঠানো হবে। সাধারণত ক্রস-সাইট রিকোয়েস্ট ফোরজারি আক্রমণ প্রতিরোধ করতে ব্যবহৃত হয়।
  • স্কোপ - এটি আপনাকে সেইসব এপিআই প্রোডাক্টের তালিকা ফিল্টার করার সুযোগ দেয়, যেগুলোর সাথে তৈরি করা টোকেনটি ব্যবহার করা যাবে। স্কোপ সম্পর্কে বিস্তারিত তথ্যের জন্য, “OAuth2 স্কোপ নিয়ে কাজ করা” দেখুন।

প্রমাণীকরণ

অন্তর্নিহিত অনুমোদনের জন্য বেসিক অথেনটিকেশনের প্রয়োজন হয় না। তবে, এখানে ব্যাখ্যা করা অনুযায়ী, আপনাকে অনুরোধ প্যারামিটার হিসেবে একটি ক্লায়েন্ট আইডি পাস করতে হবে।

নমুনা শেষবিন্দু

অ্যাক্সেস টোকেন তৈরি করার জন্য এখানে একটি নমুনা এন্ডপয়েন্ট কনফিগারেশন দেওয়া হলো। এটি GenerateAccessTokenImplicitGrant পলিসিটি কার্যকর করবে।

...
       <Flow name="generate-access-token-implicit">
            <Request>
                <Step>
                    <Name>GenerateAccessTokenImplicitGrant</Name>
                </Step>
            </Request>
            <Response/>
            <Condition>(proxy.pathsuffix MatchesPath "/implicit") and (request.verb = "POST")</Condition>
        </Flow>
...

নমুনা নীতি

এটি একটি মৌলিক GenerateAccessTokenImplicitGrant পলিসি যা ইমপ্লিসিট গ্রান্ট টাইপ ফ্লো-এর জন্য টোকেন অনুরোধগুলি প্রক্রিয়া করে। এই পলিসির সাথে আপনি যে ঐচ্ছিক কনফিগারেশন উপাদানগুলি কনফিগার করতে পারেন সে সম্পর্কে তথ্যের জন্য, OAuthV2 পলিসি দেখুন।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OAuthV2 name="GenerateAccessTokenImplicit">
    <DisplayName>GenerateAccessTokenImplicit</DisplayName>
    <Operation>GenerateAccessTokenImplicitGrant</Operation>
    <GenerateResponse enabled="true"/>
</OAuthV2>

ফেরত

<GenerateResponse> সক্রিয় থাকলে, পলিসিটি রেসপন্স হেডারে একটি 302 লোকেশন রিডাইরেক্ট রিটার্ন করে। এই রিডাইরেক্টটি redirect_uri প্যারামিটারে নির্দিষ্ট করা URL-এ নির্দেশ করে এবং এর সাথে অ্যাক্সেস টোকেন ও টোকেনের মেয়াদ শেষ হওয়ার সময় যুক্ত থাকে। উল্লেখ্য যে, ইমপ্লিসিট গ্রান্ট টাইপ রিফ্রেশ টোকেন সমর্থন করে না। উদাহরণস্বরূপ:

https://callback-example.com#expires_in=1799&access_token=In4dKm4ueoGZRbIYJhC9yZCmTFw5

যদি <GenerateResponse> মান false সেট করা থাকে, তাহলে পলিসিটি কোনো প্রতিক্রিয়া ফেরত দেয় না। এর পরিবর্তে, এটি অ্যাক্সেস টোকেন মঞ্জুরি সম্পর্কিত ডেটা দিয়ে নিম্নলিখিত ফ্লো ভেরিয়েবলগুলো পূরণ করে।

oauthv2accesstoken.{policy-name}.access_token
oauthv2accesstoken.{policy-name}.expires_in  //--in seconds

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

oauthv2accesstoken.GenerateAccessToken.access_token
oauthv2accesstoken.GenerateAccessToken.expires_in   //--in seconds

অনুমোদন কোডের জন্য অনুরোধ করা হচ্ছে

আপনি যদি অথরাইজেশন কোড গ্রান্ট টাইপ ফ্লো ব্যবহার করেন, তাহলে অ্যাক্সেস টোকেনের জন্য অনুরোধ করার আগে আপনাকে একটি অথরাইজেশন কোড সংগ্রহ করতে হবে।

নমুনা অনুরোধ

$ curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \
  'http://myorg-test.apigee.net/oauth/authorize?client_id={consumer_key}&response_type=code'

যেখানে /oauth/authorize প্রক্সি এন্ডপয়েন্টে একটি OAuthV2 GenerateAuthorizationCode পলিসি সংযুক্ত করা থাকে (নীচের নমুনা এন্ডপয়েন্টটি দেখুন)।

প্রয়োজনীয় প্যারামিটার

ডিফল্টরূপে, এই প্যারামিটারগুলো অবশ্যই কোয়েরি প্যারামিটার হতে হবে (যেমনটি উপরের নমুনায় দেখানো হয়েছে); তবে, এই /authorize এন্ডপয়েন্টের সাথে সংযুক্ত OAuthV2 পলিসিতে <ResponseType> , <ClientId> , এবং <RedirectUri> এলিমেন্টগুলো কনফিগার করার মাধ্যমে এই ডিফল্টটি পরিবর্তন করা সম্ভব। বিস্তারিত জানতে, OAuthV2 পলিসি দেখুন।

  • response_type - এর মান অবশ্যই code হতে হবে।
  • client_id - একটি নিবন্ধিত ডেভেলপার অ্যাপের ক্লায়েন্ট আইডি।

ঐচ্ছিক পরামিতি

  • redirect_uri - নিবন্ধিত ক্লায়েন্ট অ্যাপে যদি একটি সম্পূর্ণ (আংশিক নয়) কলব্যাক ইউআরআই নির্দিষ্ট করা থাকে, তাহলে এই প্যারামিটারটি ঐচ্ছিক; অন্যথায়, এটি আবশ্যক। কলব্যাক হলো সেই ইউআরএল যেখানে Edge নতুন তৈরি হওয়া অথোরাইজেশন কোডটি পাঠায়। আরও দেখুন অ্যাপ নিবন্ধন এবং এপিআই কী পরিচালনা
  • স্টেট - একটি স্ট্রিং যা রেসপন্সের সাথে ফেরত পাঠানো হবে। সাধারণত ক্রস-সাইট রিকোয়েস্ট ফোরজারি আক্রমণ প্রতিরোধ করতে ব্যবহৃত হয়।
  • স্কোপ - এটি আপনাকে সেইসব এপিআই প্রোডাক্টের তালিকা ফিল্টার করার সুযোগ দেয়, যেগুলোর সাথে তৈরি করা টোকেনটি ব্যবহার করা যাবে। স্কোপ সম্পর্কে বিস্তারিত তথ্যের জন্য, “OAuth2 স্কোপ নিয়ে কাজ করা” দেখুন।

প্রমাণীকরণ

বেসিক অথেনটিকেশনের প্রয়োজন নেই, তবে অনুরোধে নিবন্ধিত ক্লায়েন্ট অ্যাপের ক্লায়েন্ট আইডি অবশ্যই সরবরাহ করতে হবে।

নমুনা শেষবিন্দু

অনুমোদন কোড তৈরি করার জন্য এখানে একটি নমুনা এন্ডপয়েন্ট কনফিগারেশন দেওয়া হলো:

<OAuthV2 name="GenerateAuthorizationCode">
  <Operation>GenerateAuthorizationCode</Operation>
    <!--
    ExpiresIn, in milliseconds. The ref is optional. The explicitly specified
    value is the default, when the variable reference cannot be resolved.
        60000 = 1 minute
       120000 = 2 minutes
    -->
  <ExpiresIn>60000</ExpiresIn>
  <GenerateResponse enabled="true"/>
</OAuthV2>

নমুনা নীতি

এটি একটি মৌলিক GenerateAuthorizationCode পলিসি। এই পলিসির সাথে আপনি যে ঐচ্ছিক কনফিগারেশন উপাদানগুলো কনফিগার করতে পারেন, সে সম্পর্কে তথ্যের জন্য OAuthV2 পলিসি দেখুন।

<OAuthV2 name="GenerateAuthorizationCode">
    <Operation>GenerateAuthorizationCode</Operation>
    <GenerateResponse enabled="true"/>
</OAuthV2>

ফেরত

<GenerateResponse> সক্রিয় থাকলে, পলিসিটি অথরাইজেশন কোড সহ ?code কোয়েরি প্যারামিটারটি redirect_uri (কলব্যাক ইউআরআই) লোকেশনে ফেরত পাঠায়। এটি রেসপন্সের Location হেডারে ইউআরএল সহ একটি 302 ব্রাউজার রিডাইরেক্টের মাধ্যমে পাঠানো হয়। উদাহরণস্বরূপ: ?code=123456

যদি <GenerateResponse> মান false সেট করা থাকে, তাহলে পলিসিটি কোনো রেসপন্স ফেরত দেয় না। এর পরিবর্তে, এটি অথরাইজেশন কোড সম্পর্কিত ডেটা দিয়ে নিম্নলিখিত ফ্লো ভেরিয়েবলগুলো পূরণ করে।

oauthv2authcode.{policy-name}.code
oauthv2authcode.{policy-name}.scope
oauthv2authcode.{policy-name}.redirect_uri
oauthv2authcode.{policy-name}.client_id

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

oauthv2authcode.GenerateAuthorizationCode.code
oauthv2authcode.GenerateAuthorizationCode.scope
oauthv2authcode.GenerateAuthorizationCode.redirect_uri
oauthv2authcode.GenerateAuthorizationCode.client_id

অ্যাক্সেস টোকেন রিফ্রেশ করা

রিফ্রেশ টোকেন হলো এমন একটি ক্রেডেনশিয়াল যা আপনি একটি অ্যাক্সেস টোকেন পেতে ব্যবহার করেন, সাধারণত অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে বা এটি অবৈধ হয়ে গেলে। আপনি যখন একটি অ্যাক্সেস টোকেন পান, তখন রেসপন্সের সাথে একটি রিফ্রেশ টোকেনও ফেরত আসে।

রিফ্রেশ টোকেন ব্যবহার করে নতুন অ্যাক্সেস টোকেনের অনুরোধ করতে:

নমুনা অনুরোধ

নিম্নলিখিত কলে বেসিক অথেন্টিকেশন হেডার এনকোড করার তথ্যের জন্য, " বেসিক অথেন্টিকেশন ক্রেডেনশিয়াল এনকোড করা " দেখুন।

$ curl -X POST \
  -H "Content-type: application/x-www-form-urlencoded" \
  -H 'Authorization: Basic c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ' \
  https://myorg-test.apigee.net/my_oauth_endpoint/refresh_accesstoken \
  -d 'grant_type=refresh_token&refresh_token=my-refresh-token'

প্রয়োজনীয় প্যারামিটার

  • grant_type - এর মান অবশ্যই refresh_token হতে হবে।
  • refresh_token - যে অ্যাক্সেস টোকেনটি আপনি নবায়ন করতে চান, তার সাথে যুক্ত রিফ্রেশ টোকেন।

ডিফল্টরূপে, পলিসিটি উপরের উদাহরণে দেখানো অনুযায়ী রিকোয়েস্ট বডিতে নির্দিষ্ট করা x-www-form-urlencoded প্যারামিটার হিসেবে এগুলি খুঁজে থাকে। এই ইনপুটগুলির জন্য একটি বিকল্প অবস্থান কনফিগার করতে, আপনি OAuthV2 পলিসিতে <GrantType> এবং <RefreshToken> এলিমেন্টগুলি ব্যবহার করতে পারেন। বিস্তারিত জানতে, OAuthV2 পলিসি দেখুন।

ঐচ্ছিক পরামিতি

  • স্টেট - একটি স্ট্রিং যা রেসপন্সের সাথে ফেরত পাঠানো হবে। সাধারণত ক্রস-সাইট রিকোয়েস্ট ফোরজারি আক্রমণ প্রতিরোধ করতে ব্যবহৃত হয়।
  • স্কোপ - এটি আপনাকে সেইসব এপিআই প্রোডাক্টের তালিকা ফিল্টার করার সুযোগ দেয়, যেগুলোর সাথে তৈরি করা টোকেনটি ব্যবহার করা যাবে। স্কোপ সম্পর্কে বিস্তারিত তথ্যের জন্য, “OAuth2 স্কোপ নিয়ে কাজ করা” দেখুন।

প্রমাণীকরণ

  • ক্লায়েন্ট_আইডি
  • ক্লায়েন্ট_গোপনীয়

আপনাকে অবশ্যই ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট হয় বেসিক অথেনটিকেশন হেডার (বেস৬৪-এনকোডেড) হিসেবে অথবা ফর্ম প্যারামিটার client_id এবং client_secret হিসেবে প্রদান করতে হবে। " বেসিক অথেনটিকেশন ক্রেডেনশিয়াল এনকোডিং " অংশটিও দেখুন।

অ্যাক্সেস টোকেন রিফ্রেশ করার সময় ব্যবহারকারীকে পুনরায় প্রমাণীকরণ করা হয় না।

রিফ্রেশ টোকেন ব্যবহার করে অ্যাক্সেস টোকেন তৈরি করার জন্য এখানে একটি নমুনা এন্ডপয়েন্ট কনফিগারেশন দেওয়া হলো। এটি RefreshAccessToken পলিসিটি কার্যকর করবে।

 ...
       <Flow name="generate-refresh-token">
            <Request>
                <Step>
                    <Name>RefreshAccessToken</Name>
                </Step>
            </Request>
            <Response/>
            <Condition>(proxy.pathsuffix MatchesPath "/refresh") and (request.verb = "POST")</Condition>
       </Flow>
...

নমুনা নীতি

এটি একটি মৌলিক RefreshAccessToken পলিসি যা refresh_token গ্রান্ট টাইপ গ্রহণ করার জন্য কনফিগার করা হয়েছে। এই পলিসির সাথে আপনি যে ঐচ্ছিক কনফিগারেশন উপাদানগুলো কনফিগার করতে পারেন, সে সম্পর্কে তথ্যের জন্য OAuthV2 পলিসি দেখুন।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OAuthV2 name="RefreshAccessToken">
    <Operation>RefreshAccessToken</Operation>
    <GenerateResponse enabled="true"/>
    <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
    <RefreshTokenExpiresIn>28800000</RefreshTokenExpiresIn> <!-- 8 hours -->
</OAuthV2>

ফেরত

<GenerateResponse> সক্রিয় থাকলে, পলিসিটি নতুন অ্যাক্সেস টোকেন সম্বলিত একটি JSON রেসপন্স ফেরত দেয়। refresh_token গ্রান্ট টাইপটি অ্যাক্সেস এবং নতুন রিফ্রেশ টোকেন উভয়ই তৈরি করা সমর্থন করে। উদাহরণস্বরূপ:

{
    "issued_at": "1420301470489",
    "application_name": "ce1e94a2-9c3e-42fa-a2c6-1ee01815476b",
    "scope": "READ",
    "refresh_token_issued_at": "1420301470489",
    "status": "approved",
    "refresh_token_status": "approved",
    "api_product_list": "[PremiumWeatherAPI]",
    "expires_in": "1799", //--in seconds
    "developer.email": "tesla@weathersample.com",
    "token_type": "BearerToken",
    "refresh_token": "8fKDHLryAD9KFBsrpixlq3qPJnG2fdZ5",
    "client_id": "5jUAdGv9pBouF0wOH5keAVI35GBtx3dT",
    "access_token": "jmZ2Hqv3iNsABUtAAsfWR3QGNctw",
    "organization_name": "docs",
    "refresh_token_expires_in": "28799", //--in seconds
    "refresh_count": "2"
}

আপনার জানা উচিত যে, একটি নতুন রিফ্রেশ টোকেন তৈরি হয়ে গেলে আসলটি আর বৈধ থাকে না।

<GenerateResponse> কে true সেট করা হলে উপরের প্রতিক্রিয়াটি পাওয়া যায়। যদি <GenerateResponse> কে false সেট করা হয়, তাহলে পলিসিটি কোনো প্রতিক্রিয়া ফেরত দেয় না। এর পরিবর্তে, এটি অ্যাক্সেস টোকেন মঞ্জুরি সম্পর্কিত ডেটা দিয়ে নিম্নলিখিত কনটেক্সট (ফ্লো) ভেরিয়েবলগুলো পূরণ করে।

oauthv2accesstoken.{policy-name}.access_token
oauthv2accesstoken.{policy-name}.expires_in   //--in seconds
oauthv2accesstoken.{policy-name}.refresh_token
oauthv2accesstoken.{policy-name}.refresh_token_expires_in  //--in seconds
oauthv2accesstoken.{policy-name}.refresh_token_issued_at
oauthv2accesstoken.{policy-name}.refresh_token_status

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

oauthv2accesstoken.RefreshAccessToken.access_token
oauthv2accesstoken.RefreshAccessToken.expires_in
oauthv2accesstoken.RefreshAccessToken.refresh_token
oauthv2accesstoken.RefreshAccessToken.refresh_token_expires_in
oauthv2accesstoken.RefreshAccessToken.refresh_token_issued_at
oauthv2accesstoken.RefreshAccessToken.refresh_token_status

মৌলিক প্রমাণীকরণ শংসাপত্র এনকোড করা

যখন আপনি টোকেন বা অথ কোডের অনুরোধ করতে একটি এপিআই কল করেন, তখন IETF RFC 2617- এ বর্ণিত পদ্ধতি অনুযায়ী client_id এবং client_secret ভ্যালু দুটিকে একটি HTTP-Basic Authentication হেডার হিসেবে পাস করা একটি উত্তম অভ্যাস এবং OAuth 2.0 স্পেসিফিকেশন দ্বারাও এটি সুপারিশকৃত। এটি করার জন্য, আপনাকে অবশ্যই কোলন দিয়ে দুটি ভ্যালুকে একত্রিত করে প্রাপ্ত ফলাফলকে base64-এনকোড করতে হবে।

ছদ্ম-কোডে:

result = Base64Encode(concat('ns4fQc14Zg4hKFCNaSzArVuwszX95X', ':', 'ZIjFyTsNgQNyxI'))

এই উদাহরণে, ns4fQc14Zg4hKFCNaSzArVuwszX95X হলো ক্লায়েন্ট আইডি এবং ZIjFyTsNgQNyxI হলো ক্লায়েন্ট সিক্রেট।

বেস৬৪-এনকোডেড মান গণনা করার জন্য আপনি যে প্রোগ্রামিং ভাষাই ব্যবহার করুন না কেন, যাদের ক্লায়েন্ট ক্রেডেনশিয়াল দেওয়া হয়েছে, তাদের জন্য বেস৬৪-এনকোডেড ফলাফলটি হলো: bnM0ZlFjMTRaZzRoS0ZDTmFTekFyVnV3c3pYOTVYOlpJakZ5VHNOZ1FOeXhJOg==

তারপর, আপনি নিম্নোক্তভাবে টোকেনের জন্য অনুরোধ করতে পারেন:

$ curl -i -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Authorization: Basic bnM0ZlFjMTRaZzRoS0ZDTmFTekFyVnV3c3pYOTVYOlpJakZ5VHNOZ1FOeXhJOg==' \
  -X POST 'https://docs-test.apigee.net/oauth/accesstoken' \
  -d 'grant_type=client_credentials'

আপনি যদি -u অপশনটি ব্যবহার করেন, তাহলে curl ইউটিলিটিটি আপনার জন্য HTTP Basic হেডারটি তৈরি করে দেবে। নিম্নলিখিতটি উপরেরটির সমতুল্য:

$ curl -i -H 'Content-Type: application/x-www-form-urlencoded' \
  -u 'ns4fQc14Zg4hKFCNaSzArVuwszX95X:ZIjFyTsNgQNyxI' \
  -X POST 'https://docs-test.apigee.net/oauth/accesstoken' \
  -d 'grant_type=client_credentials'

অন্যান্য প্রোগ্রামিং পরিবেশেও অনুরূপ শর্টকাট থাকতে পারে, যা স্বয়ংক্রিয়ভাবে বেস৬৪-এনকোডেড হেডার তৈরি করে।

ডাটাবেসে টোকেন হ্যাশ করা

ডাটাবেস নিরাপত্তা লঙ্ঘনের ঘটনায় OAuth অ্যাক্সেস এবং রিফ্রেশ টোকেন সুরক্ষিত রাখতে, আপনি আপনার Edge অর্গানাইজেশনে স্বয়ংক্রিয় টোকেন হ্যাশিং চালু করতে পারেন। যখন এই ফিচারটি চালু করা হয়, Edge আপনার নির্দিষ্ট করা অ্যালগরিদম ব্যবহার করে নতুন তৈরি হওয়া OAuth অ্যাক্সেস এবং রিফ্রেশ টোকেনগুলোর একটি হ্যাশ করা সংস্করণ স্বয়ংক্রিয়ভাবে তৈরি করে। (বিদ্যমান টোকেনগুলো একসাথে হ্যাশ করার তথ্য নিচে দেওয়া হলো।) হ্যাশ না করা টোকেনগুলো API কলে ব্যবহৃত হয়, এবং Edge ডাটাবেসে থাকা হ্যাশ করা সংস্করণগুলোর সাথে সেগুলোকে যাচাই করে।

নিম্নলিখিত সংস্থা-স্তরের বৈশিষ্ট্যগুলি OAuth টোকেন হ্যাশিং নিয়ন্ত্রণ করে।

features.isOAuthTokenHashingEnabled = true
features.OAuthTokenHashingAlgorithm = SHA1 | SHA256 | SHA384 | SHA512 | PLAIN

আপনার কাছে যদি বিদ্যমান হ্যাশ করা টোকেন থাকে এবং আপনি সেগুলোর মেয়াদ শেষ না হওয়া পর্যন্ত ধরে রাখতে চান, তাহলে আপনার প্রতিষ্ঠানে নিম্নলিখিত প্রোপার্টিগুলো সেট করুন, যেখানে হ্যাশিং অ্যালগরিদমটি বিদ্যমান অ্যালগরিদমের সাথে মেলে (উদাহরণস্বরূপ, SHA1, যা Edge-এর পূর্ববর্তী ডিফল্ট ছিল)। টোকেনগুলো যদি হ্যাশ করা না থাকে, তাহলে PLAIN ব্যবহার করুন।

features.isOAuthTokenFallbackHashingEnabled = true
features.OAuthTokenFallbackHashingAlgorithm = SHA1 | SHA256 | SHA384 | SHA512 | PLAIN

আপনি যদি এজ ক্লাউডের গ্রাহক হন, তাহলে আপনার প্রতিষ্ঠানে এই বৈশিষ্ট্যগুলো সেট করতে এবং ঐচ্ছিকভাবে বিদ্যমান টোকেনগুলোকে একত্রে হ্যাশ করতে Apigee Edge Support-এর সাথে যোগাযোগ করুন।

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