API-এর মাধ্যমে ভূমিকা তৈরি করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

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

অনুমতি সেটিং সম্পর্কে

ম্যানেজমেন্ট API URI-তে (ম্যানেজমেন্ট UI URI-তে নয়) ভূমিকা সংক্রান্ত অনুমতি সেট করা হয়। যেমন, আপনি যদি নিজের Edge সংস্থায় অ্যাপ ডেভেলপার এন্টিটিতে PUT, GET এবং/অথবা DELETE অনুমতি সেট করতে চান, তাহলে আপনাকে /developers রিসোর্সে অনুমতি সেট করতে হবে, কারণ ডেভেলপারদের ম্যানেজমেন্ট API পাথ হল https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers। (অনুমতি নির্ধারণ করার সময় আপনাকে পাথের সাংগঠনিক অংশ অন্তর্ভুক্ত করতে হবে না, কারণ অনুমতি নির্দিষ্ট কোনও সংস্থার জন্য স্কোপ করা হয়, যেমন এই টপিকের ম্যানেজমেন্ট API কল থেকে বোঝা যায়।)

এছাড়াও, আপনি নির্দিষ্ট এন্টিটির উপর অনুমতি সেট করতে পারবেন। যেমন:

  • আপনি যদি কোনও একজন ডেভেলপারের জন্য অনুমতি সেট করতে চান, তাহলে /developers/steve@example.com-এ সেট করুন
  • free-api-product-এর মতো নির্দিষ্ট API প্রোডাক্টের জন্য, সেগুলি /apiproducts/free-api-product-এ সেট করুন
  • নির্দিষ্ট এনভায়রনমেন্টে কী-ভ্যালু ম্যাপের জন্য, আপনি এই ধরনের কিছুতে অনুমতি সেট করবেন /environments/test/keyvaluemaps/fooMap অথবা টেস্ট এনভায়রনমেন্টে সব কী-ভ্যালু ম্যাপের জন্য /environments/test/keyvaluemaps/*।

API ব্যবহার করে আপনার সেট করা অনুমতি:

  • কাস্টম রোলে থাকা ব্যবহারকারীদের তাদের অনুমতি অনুযায়ী ম্যানেজমেন্ট API কল করার অনুমতি দিন। যেমন, কোনও ভূমিকা যদি সব API প্রক্সি রিড-অনলি অ্যাক্সেস দেয়, তাহলে সেই ভূমিকার কোনও ব্যবহারকারী API প্রক্সি তালিকাভুক্ত করুন API ব্যবহার করতে পারবেন, কিন্তু API প্রক্সি তৈরি করুন API ব্যবহার করতে পারবেন না।
  • ম্যানেজমেন্ট UI-তে কাস্টম রোলে থাকা ব্যবহারকারীরা কী দেখতে ও করতে পারবেন তা নির্ধারণ করুন। যেমন, API প্রক্সিগুলিতে শুধু-পঠনযোগ্য অ্যাক্সেস থাকলে, API প্রক্সি পৃষ্ঠায় +API প্রক্সি ও মুছে দিন বোতামে অ্যাক্সেস বন্ধ হয়ে যায়।

আপনি যেসব রিসোর্স ও পাথে অনুমতি সেট করতে পারবেন সেগুলি দেখতে, বিভিন্ন রিসোর্স URL-এ ম্যানেজমেন্ট API রেফারেন্স দেখুন।

ভূমিকা ম্যানেজমেন্টের ব্যাপারে সম্পূর্ণ রেফারেন্স সংক্রান্ত তথ্য পেতে ব্যবহারকারীর ভূমিকা API দেখুন।

সিনট্যাক্স ও অগ্রাধিকার

অনুমতি সেটিংয়ে "এর পরে সবকিছু" বোঝাতে আপনি ওয়াইল্ড কার্ড হিসেবে অ্যাস্টেরিক্স (*) ব্যবহার করতে পারেন। তবে, আপনি যদি শুধুমাত্র একটি পেরেন্ট রিসোর্সে (যেমন /developers-এ) অনুমতি সেট করেন এবং আরও নির্দিষ্ট কোনও অনুমতি (যেমন /developers/*) সেট না করেন, তাহলে অনুমতিটি /developers-এর এবং তার পরের সবকিছুর উপর প্রযোজ্য হবে।

অনুমতির ক্ষেত্রে PUT, POST হিসেবেও কাজ করে।

আপনি রিসোর্সে সাধারণ অনুমতির সাথে আরও সূক্ষ্ম অনুমতি মিশিয়ে দিতে পারেন। যেখানে অনুমতি ওভারল্যাপ করে, সেখানে আরও গ্র্যানুলার সেটিংস অগ্রাধিকার পায়। যেমন, ধরে নিন যে নিম্নলিখিত অনুমতি "developeradmin" ভূমিকার জন্য সেট করা আছে:

  • /developers-এ PUT
  • GET on /developers/*

এর অর্থ হল, developeradmin এগুলি করতে পারবেন:

  • ডেভেলপার তৈরি করুন, কিন্তু কোনও নির্দিষ্ট ডেভেলপার বা কোনও সাব-এন্টিটি আপডেট করবেন না (কারণ সেই পাথে আরও নির্দিষ্ট GET অনুমতি আছে)।
  • যেকোনও ডেভেলপার বা সাব-এনটিটি পাওয়া যায়, কিন্তু সব ডেভেলপারদের তালিকা পাওয়া যায় না।

API-এর মাধ্যমে আপনি যেসব অনুমতি সেট করতে পারবেন তার সম্পূর্ণ তালিকা পেতে অনুমতি সংক্রান্ত রেফারেন্স দেখুন।

"development" নামের নতুন কাস্টম ভূমিকা তৈরি করুন

API প্রক্সি দেখতে, তৈরি করতে ও আপডেট করতে ডেভেলপারদের সাহায্য করার জন্য 'ডেভেলপমেন্ট' রোল তৈরি করুন।

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles -H "Content-type:application/json" -X POST -d'{ "role" : [ { "name" : "development" } ] }'

ডেভেলপমেন্ট রোলে অনুমতি যোগ করা

Edge আর্টিফ্যাক্টের সম্পূর্ণ গ্রুপে (যেমন, সব /অ্যাপ, /এপিআই, /এপিআইপ্রোডাক্ট ইত্যাদি) এবং স্বতন্ত্র আর্টিফ্যাক্টে (যেমন, নির্দিষ্ট অ্যাপ, API প্রক্সি বা API প্রোডাক্ট) যে অনুমতি সেট করা যেতে পারে সেগুলি হল GET, PUT এবং DELETE।

GET ব্যবহার করে ব্যবহারকারীরা API প্রক্সি কনফিগারেশন ফাইল, সংশ্লিষ্ট নীতি, JavaScript, XSLT ফাইল ইত্যাদি সহ যেকোনও API দেখতে পান। API-তে PUT অনুমতি থাকলে, ডেভেলপাররা API প্রক্সি তৈরি, পরিবর্তন, ইমপোর্ট, এক্সপোর্ট, ডেপ্লয় ও আনডেপ্লয় করতে পারেন।

পাথ অ্যাট্রিবিউট সেই আর্টিফ্যাক্ট নির্দিষ্ট করে যার উপর আপনি অনুমতি সেট করেন। যেমন, /applications, /apps, /apiproducts, /developers, বা /reports.

curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles/development/permissions -H "Content-type:application/json" -X POST -d'{"path" : "/applications","permissions" : [ "put", "get" ]}'

একটি ভূমিকা তৈরি করুন: টেস্টিং

API প্রক্সি ও তার কন্টেন্ট (যেমন, নীতি) দেখার জন্য কোয়ালিটি ইঞ্জিনিয়ারদের অনুমতি দিতে 'টেস্টিং' রোল তৈরি করুন ।

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles -H "Content-type:application/json" -X POST -d'{ "role" : [ { "name" : "testing" } ] }'

টেস্টিং রোলে অনুমতি যোগ করা

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

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles/testing/permissions -H "Content-type:application/json" -X POST -d'{"path" : "/applications","permissions" : [ "get" ]}'

Edge-এর অন-প্রাঙ্গণে ইনস্টলেশনের জন্য, Edge UI-তে ব্যবহারকারীকে লগ-ইন করার অনুমতি দিতে পারমিশনের ন্যূনতম সেট সেট করতে হবে:

{"path" : "/","permissions" : [ "get" ]}
{"path" : "/*","permissions" : [ ]}
{"path" : "/environments","permissions" : [ "get" ]}
{"path" : "/userroles","permissions" : [ "get" ]}

এইসব অনুমতি সেট করতে, নিম্নলিখিত cURL কমান্ড ব্যবহার করুন:

curl -H "Content-Type:application/json" -u email:password \
-X POST \
http://<ms-IP>:8080/v1/organizations/{org_name}/userroles/testing/resourcepermissions  \
-d '{
 "resourcePermission" : [ 
   {
    "path" : "/",
    "permissions" : [ "get" ]
   }, 
{
    "path" : "/*",
    "permissions" : []
   },
{
    "path" : "/environments",
    "permissions" : [ "get" ]
   },
   {
    "path" : "/userroles",
    "permissions" : [ "get"]
   }
  ]
}'

যেখানে <ms-IP> হল Edge ম্যানেজমেন্ট সার্ভারের IP অ্যাড্রেস বা DNS নাম।

টেস্টিং রোলে ব্যবহারকারীকে যোগ করা

ব্যবহারকারীর ভূমিকা সহ ব্যবহারকারীকে প্রোভিশন করতে:

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/users/justauser@apigee.com/userroles -H "Content-type:application/json" -X POST -d'{"role" : [ {"name" : "testing"} ] }'

ব্যবহারকারী হিসেবে API দেখা

ব্যবহারকারীর ছদ্মবেশে API পরিষেবার কাছে API প্রক্সি দেখার অনুরোধ করুন। ব্যবহারকারীকে API ও তার কন্টেন্ট দেখতে পেতে হবে।
$ curl -u justauser@apigee.com:secret https://api.enterprise.apigee.com/v1/o/{org_name}/apis
$ curl -u justauser@apigee.com:secret https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/policies

টেস্টিং রোলে ব্যবহারকারী হিসেবে API তৈরি করা

ব্যবহারকারীর ছদ্মবেশে API পরিষেবায় API প্রক্সি তৈরি করার অনুরোধ করুন। API পরিষেবা অনুরোধটি বাতিল করে দেবে, কারণ 'testing' রোলে ব্যবহারকারীকে API তৈরি করার অনুমতি দেওয়া হয় না।

$ curl -u justauser@apigee.com:secret -H "Content-Type: application/json" https://api.enterprise.apigee.com/v1/o/{org_name}/apis -X POST -d'{"name" : "rbacTestApi"}'

ডেভেলপমেন্ট রোলে ব্যবহারকারীকে যোগ করা

এখন ব্যবহারকারীকে 'ডেভেলপমেন্ট' ভূমিকা প্রদান করুন।

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/users/justauser@apigee.com/userroles -H "Content-type:application/json" -X POST -d'{"role" : [ {"name" : "development"} ] }'

ডেভেলপমেন্ট রোলে ব্যবহারকারী হিসেবে API তৈরি করা

ব্যবহারকারীর ছদ্মবেশে API প্রক্সি তৈরি করার জন্য API প্ল্যাটফর্মকে অনুরোধটি আবার করুন। অনুরোধটি সফল হবে, কারণ 'development' রোল ব্যবহারকারীকে API তৈরি করার অনুমতি দেয়।

$ curl -u justauser@apigee.com:secret -H "Content-Type: application/json" https://api.enterprise.apigee.com/v1/o/{org_name}/apis -X POST -d'{"name" : "rbacTestApi"}'

কোনও ব্যবহারকারীর জন্য ব্যবহারকারীর ভূমিকা পাওয়া

সংস্থার অ্যাডমিনিস্ট্রেটর হিসেবে, আপনি যেকোনও সময় কোনও ব্যবহারকারীর জন্য ব্যবহারকারীর ভূমিকার তালিকা (সব সংস্থা জুড়ে) চেক করতে পারবেন:

$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles