API এর সাথে ভূমিকা তৈরি করা

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

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

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

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

আপনি নির্দিষ্ট সত্তাগুলোর উপর অনুমতিও নির্ধারণ করতে পারেন। উদাহরণস্বরূপ:

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

এপিআই ব্যবহার করে আপনি যে অনুমতিগুলো নির্ধারণ করেছেন:

  • কাস্টম রোলের ব্যবহারকারীদের তাদের অনুমতি অনুযায়ী ম্যানেজমেন্ট এপিআই কল করার সুযোগ দিন। উদাহরণস্বরূপ, যদি কোনো রোল সমস্ত এপিআই প্রক্সিতে শুধুমাত্র-পঠ্য (read-only) অ্যাক্সেস দেয়, তাহলে সেই রোলের একজন ব্যবহারকারী ‘List API Proxies’ এপিআই ব্যবহার করতে পারবেন, কিন্তু ‘Create an API Proxy’ এপিআই ব্যবহার করতে পারবেন না।
  • কাস্টম রোলের ব্যবহারকারীরা ম্যানেজমেন্ট UI-তে কী দেখতে ও করতে পারবে তা নির্ধারণ করুন। উদাহরণস্বরূপ, API প্রক্সিতে শুধুমাত্র-পঠ্য (read-only) অ্যাক্সেস থাকলে, API প্রক্সি পেজের +API Proxy এবং Delete বাটনগুলোতে অ্যাক্সেস নিষ্ক্রিয় হয়ে যায়।

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

ভূমিকা ব্যবস্থাপনা সংক্রান্ত সম্পূর্ণ তথ্যের জন্য ব্যবহারকারীর ভূমিকা এপিআই (User roles API) দেখুন।

সিনট্যাক্স এবং অগ্রাধিকার

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

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

আপনি রিসোর্সের ক্ষেত্রে সাধারণ অনুমতির সাথে আরও সূক্ষ্ম অনুমতি মিশ্রিত করতে পারেন। যেখানে অনুমতির মধ্যে ওভারল্যাপ থাকে, সেখানে আরও সূক্ষ্ম সেটিংস অগ্রাধিকার পায়। উদাহরণস্বরূপ, ধরে নিন একটি 'ডেভেলপারঅ্যাডমিন' রোলে নিম্নলিখিত অনুমতিগুলি সেট করা আছে:

  • /ডেভেলপারদের উপর রাখুন
  • /developers/* এ GET

এর মানে হলো ডেভেলপারঅ্যাডমিন যা করতে পারেন:

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

এপিআই (API) ব্যবহার করে আপনি যে সকল অনুমতি সেট করতে পারেন, তার সম্পূর্ণ তালিকার জন্য অনুমতি নির্দেশিকা (Permissions reference) দেখুন।

"ডেভেলপমেন্ট" নামে একটি নতুন কাস্টম রোল তৈরি করুন

ডেভেলপারদের এপিআই প্রক্সি দেখা, তৈরি করা এবং আপডেট করার সুবিধা দিতে একটি 'ডেভেলপমেন্ট' রোল তৈরি করুন।

$ 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 আর্টিফ্যাক্টের একটি সম্পূর্ণ গ্রুপের (যেমন সমস্ত /apps, /apis, /apiproducts, ইত্যাদি) পাশাপাশি স্বতন্ত্র আর্টিফ্যাক্টের (যেমন একটি নির্দিষ্ট অ্যাপ, এপিআই প্রক্সি, বা এপিআই প্রোডাক্ট) উপর যে অনুমতিগুলো সেট করা যায়, সেগুলো হলো GET, PUT, এবং DELETE।

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

`path` অ্যাট্রিবিউটটি সেই আর্টিফ্যাক্টকে নির্দিষ্ট করে, যার উপর আপনি অনুমতি সেট করেন। উদাহরণস্বরূপ, `/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" ]}'

একটি ভূমিকা তৈরি করুন: পরীক্ষা

কোয়ালিটি ইঞ্জিনিয়ারদের এপিআই প্রক্সি এবং এর বিষয়বস্তু (যেমন, পলিসি সহ) দেখার সুযোগ দিতে একটি 'টেস্টিং' রোল তৈরি করুন।

$ 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, তার কনফিগারেশন ফাইল, সেইসাথে সংশ্লিষ্ট পলিসি, জাভাস্ক্রিপ্ট, 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> হলো এজ ম্যানেজমেন্ট সার্ভারের আইপি অ্যাড্রেস বা ডিএনএস নেম।

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

একজন ব্যবহারকারীকে একটি ব্যবহারকারী ভূমিকা প্রদান করতে:

$ 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"} ] }'

ব্যবহারকারী হিসেবে এপিআইগুলো দেখুন

ব্যবহারকারীর ছদ্মবেশ ধারণ করে এপিআই প্রক্সিগুলো দেখার জন্য এপিআই সার্ভিসে একটি অনুরোধ পাঠান। ব্যবহারকারী যেন এপিআইগুলো এবং সেগুলোর বিষয়বস্তু দেখতে পারেন।
$ 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

টেস্টিং রোলে ব্যবহারকারী হিসেবে এপিআই তৈরি করুন

ব্যবহারকারীর ছদ্মবেশ ধারণ করে একটি এপিআই প্রক্সি তৈরি করার জন্য এপিআই সার্ভিসেস-এর কাছে অনুরোধ করুন। এপিআই সার্ভিসেস এই অনুরোধটি প্রত্যাখ্যান করবে, কারণ 'টেস্টিং' রোলটি ব্যবহারকারীকে এপিআই তৈরি করার অনুমতি দেয় না।

$ 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"} ] }'

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

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

$ 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