আরএসজিআইএস সার্ভারের প্রোগ্রামেটিক প্রমাণীকরণ RESTful API এর মাধ্যমে স্তরগুলি সুরক্ষিত করে


16

আমার কাছে একটি আরকিজিআইএস 10.1 সার্ভারের উদাহরণ রয়েছে ইন্টারনেটে সুরক্ষিত মানচিত্রের প্রকাশ। আমার প্রয়োজন হ'ল একটি ক্লায়েন্ট অ্যাপ্লিকেশন কোড করা (যা আমি বর্তমানে আর্কজিআইএস জাভাস্ক্রিপ্ট এপিআইয়ের ৩.৩ সংস্করণ ব্যবহার করে তৈরি করছি) ব্যবহারকারীকে সেই সুরক্ষিত ওয়েবসার্চগুলি দেখতে সক্ষম করে:

আমি মনে করি এই অনলাইন ইএসআরআই উদাহরণটি একটি ভাল শুরু।

ব্যবহারকারীকে প্রতিটি মানচিত্রের প্রমাণীকরণের জন্য অনুরোধ জানানো হবে না কারণ আমি ইতিমধ্যে জানি যে সমস্ত মানচিত্রের মালিকানা তার এবং তাই তার / তার দ্বারা একই ব্যবহারকারীর নাম এবং পাসওয়ার্ডের অধীনে অ্যাক্সেসযোগ্য। আমার ধারণা অনুসারে, শংসাপত্রগুলির জন্য প্রম্পটটি কেবলমাত্র একবার প্রদর্শিত হবে এবং সেইজন্য জেএস কোডটি কোনও কোনও ধরণের আরএসএফুল লগইন কলের মাধ্যমে মানচিত্রের প্রতিটিটিতে শংসাপত্রগুলি খাওয়ানো উচিত। আমার কাছে দেখে মনে হয় না আরকিজিআইএস সার্ভার আরএসটি এপিআই এই জাতীয় কল সরবরাহ করছে ... সম্ভবত আমি ভুল হয়েছি।

আরকিজিআইএস সার্ভারের সাহায্যে সুরক্ষিত মানচিত্রগুলি লগইন করার ("প্রোগ্রামটিভভাবে সুরক্ষিত পরিষেবাগুলি অ্যাক্সেস করা সম্ভব করে তোলে)" এই "বিশ্রামের" উপায় কি? যদি তা হয়, তবে আপনারা কেউ কি এটির ব্যাখ্যা দিয়ে ওয়েব সংস্থাগুলির উদাহরণ বা লিঙ্ক সরবরাহ করতে পারেন?


দয়া করে আমাদের জানাবেন আর্কজিআইএস জিআইএস সার্ভার সংস্করণ (10.0 বা 10.1) ??
সুনীল

সুনীল, আমি এটি লিখতে ভুলে গেছি, এটি 10.1!
সিএস্পারপা

1
আপনি কি আরকিস সিকিউরিটি স্টোর ব্যবহার করছেন এবং উইন্ডোজ অথথ নয়?
ব্র্যাড নেসোম

@ ব্র্যাড নেসোম এই মুহুর্তের জন্য আমার আর্কজিআইএস সার্ভার উদাহরণটি একটি অন্তর্নির্মিত সুরক্ষা দোকান (ব্যবহারকারী এবং ভূমিকা সহ) ব্যবহার করছে, তবে আমি প্রমাণীকরণের উদ্দেশ্যে
উদাহরণটি

উত্তর:


11

অবশেষে আমি যা খুজছিলাম তা পেয়েছি: একটি সঠিক আরকজিআইএস সার্ভার ওয়েব শেষ পয়েন্ট যা আমি টোকেন উত্পন্ন করতে ব্যবহার করতে পারি!

কলটি হ'ল:

GET http://<arcgisserver_host:port>/arcgis/tokens?request=getToken&username=<usr>&password=<usr>&expiration=<token_lifespan>

যা এইচটিটিপি প্রতিক্রিয়া সংস্থায় টোকেনটি ফিরিয়ে দেয় এবং পুনরায় শংসাপত্রের জন্য অনুরোধ না করে কেউ এটিকে সুরক্ষিত সংস্থানগুলিতে আরও কোনও অনুরোধের সাথে প্রেরণ করতে পারে। টোকেনটি অবশ্যই Cookieঅনুরোধ শিরোনামের মান হতে হবে , কারণ এটি বর্তমানে ক্লায়েন্টের পাশের কোনও কুকিতে সঞ্চিত রয়েছে।

কিন্তু ... জঘন্য ! এই টোকেন জেনারেটরটি আর্কজিআইএস সার্ভার REST এপিআইয়ের অংশ নয় !!! আমি এটি অনলাইন এপিআই ডকুমেন্টেশনে খুঁজে পাইনি ! পৃথিবীতে কোথায় পেলাম ???

এর অর্থ হ'ল আর্কজিআইএস সার্ভারের একটি বিশ্রামের প্রমাণীকরণ কাঠামো নেই।

উদাহরণস্বরূপ, যদি আমাদের কাছে এই মানচিত্রের সংরক্ষণটি আর্কজিআইএস রিস্ট এপিআই এর অধীনে প্রকাশ করা হয়: /arcgis/rest/services/myDir/myMapService/MapServer/layersএবং আমরা এই সংস্থানটি পাওয়ার চেষ্টা করি, আরকিজিআইএস সার্ভার থেকে আমরা যা পাই তা একটি 200: OKশরীরে স্ট্যাটাস কোড এবং একটি HTML ডকুমেন্টের প্রতিক্রিয়া (এইচটিএমএল একটি লগইন ফর্ম )। একটি উইল-রিস্টফুল লগইন থেকে, আমি প্রত্যাশা করব যে অনুরোধটি আমাকে 401: Authentication Requiredএকটি WWW-Authenticateশিরোনাম সহ একটি স্থিতি কোডটি ফিরিয়ে দিয়েছে ... আমি একটি সম্পূর্ণ ক্লায়েন্ট প্রোগ্রামটি ব্যবহার করে নিজেকে এই পুরো জিনিসটি পরীক্ষা করেছিলাম।


3
দুর্ভাগ্যক্রমে বেশিরভাগ "RESTful" বাস্তবায়নগুলি RESTful নয় :) কয়েক বছর আগে আমি এ বিষয়ে অতি-কঠোর হতে অস্বীকার করেছি কারণ সত্যটি হ'ল বেশিরভাগ বাস্তবায়নগুলি "REST- এর মতো"। আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে, আমি সাধারণত একটি পৃথক পদ্ধতি গ্রহণ করি। আমি পছন্দ এবং প্রক্সি ওপেন আরকজিআইএস অনুরোধের অন্তর্নির্মিত প্রমাণীকরণ সিস্টেমটি ব্যবহার করি। সুতরাং আমি যদি জ্যাঙ্গো প্রসারণ, বা রুবি, বা। নেট বা যে কোনও কিছু দিয়ে প্রমাণীকরণ হ্যান্ডেল করছিলাম তবে আমি সেই সিস্টেমটি ব্যবহার করি। তারপরে, যখন সেই সিস্টেমটি ঠিক আছে, তখন আপনি একটি অভ্যন্তরীণ আর্কজিআইএস সার্ভার / পোর্টের জন্য অনুরোধগুলি প্রক্সি করতে পারেন যা বাইরের বিশ্বের ফমকে লক করা আছে।
রাগী ইয়াসের বুড়হুম

2
হাই @ রাগী ইয়াসের বারহুম, আপনি ঠিক বলেছেন: আমরা কখনই পুরোপুরি বিশ্রামের বিশ্বে বাস করব না ;-) আমি আপনার মতো একটি পদ্ধতির বিষয়টিও বিবেচনা করেছি: আমি একটি প্রক্সি থাকার ধারণাটিও পছন্দ করি (এটি আরকিজিআইএস সার্ভারের ব্যতীত ওয়েব-সার্ভিসের অনুরোধগুলিও পরিচালনা করতে পারে) which , পাশাপাশি) তবে আমি পুরো আর্কিটেকচারের জটিলতা যতটা সম্ভব কম রাখার প্রয়োজনে আছি। সুতরাং, এটি আবিষ্কার করার পরে যে প্রোগ্রামারমেটিকভাবে ব্যবহারকারীদের মানচিত্রের সাথে প্রমাণীকরণ করার একটি সোজা উপায় আছে, আমি এটি চালিয়ে যাব! যাই হোক ধন্যবাদ!
সিএস্পারপা

হয়তো এই খুব বেশি পুরানো প্রশ্ন হল, কিন্তু আশা করছি আপনি দেখতে পারেন Esri বিশ্রাম এপিআই এখন GenerateToken পদ্ধতি আছে: resources.arcgis.com/en/help/arcgis-rest-api/index.html#//...
নাথন উ

7

দয়া করে একটি চেহারা আছে কিভাবে ArcGIS সার্ভার সিকিউরিটি কাজ করে।

মূলত, আপনাকে ব্যবহারকারী এবং গোষ্ঠী তৈরি করতে হবে এবং নির্দিষ্ট পরিষেবাদির উপর একটি নির্দিষ্ট ব্যবহারকারীর অধিকার প্রদান করতে হবে।

একবার এটি হয়ে গেলে, আপনার জাভাস্ক্রিপ্ট অ্যাপ্লিকেশনটিতে আপনার টোকন ভিত্তিক সুরক্ষা ব্যবহার করা দরকার। এর অর্থ কী, আপনি তাদের ব্যবহারকারীর নাম এবং পাসওয়ার্ডের জন্য জিজ্ঞাসা করুন। এটি আর্কজিআইএস সার্ভারে প্রেরণ করা হয়েছে, যা শংসাপত্রগুলি বৈধ করে, এবং একটি টোকেনটি আবার প্রেরণ করে। এই টোকেনটি যখনই কোনও সংস্থার অনুরোধ করা হয় তখন ব্যবহারকারীকে যাচাই করতে ব্যবহৃত হয়।

আপনি একজন প্রোগ্রামার হিসাবে এই টোকেনটি প্রতিটি মানচিত্র, কোয়েরি পরিষেবা ইত্যাদিতে প্রেরণ করবেন

এই পৃষ্ঠায় টোকেন ভিত্তিক পরিষেবাগুলি কীভাবে ব্যবহার করতে হয় তার বিশদ রয়েছে ।

আরকজিআইএস জাভাস্ক্রিপ্ট এপিআই ইতিমধ্যে এটি করার জন্য একটি ক্লাস, আইডেন্টিটি ম্যানেজারের সাথে আসে ।

আইডেন্টিটি ম্যানেজারটি কীভাবে ব্যবহার করবেন সে সম্পর্কে এখানে কয়েকটি নমুনা দেওয়া হয়েছে।


3

জাভাস্ক্রিপ্টের জন্য আর্কজিআইএস এপিআইতে, আইডেন্টিটি ম্যানেজার নামে একটি উইজেট রয়েছে যা আপনাকে ঠিক কী করতে চায় তা সম্বোধন করে। পরীক্ষা করে দেখুন নমুনা কারণে পরিচয় ম্যানেজার ব্যবহার দেখতে কিভাবে এটি কাজ করে।

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


1
আমি সবেমাত্র ইএসআরআইয়ের ডকুমেন্টেশনের জন্য নমুনা লিঙ্কটি নিয়েছি। নতুন নমুনাগুলি নির্দেশ করতে ডকুমেন্টেশন আপডেট করা যেতে পারে?
দেবদত্ত টেংশে

2
ভাবেন, আপনার ইঙ্গিতগুলির জন্য ধন্যবাদ তবে আমি মনে করি আপনি আমার বক্তব্যটি পান নি। দৃশ্যটি হ'ল: আমার ব্যবহারকারী এন সুরক্ষিত মানচিত্রগুলি অ্যাক্সেস করতে চলেছে, যার অর্থ তিনি লগইন প্রম্পটে এন বার বিরক্ত হবেন। যেহেতু সমস্ত ব্যবহারকারীর মানচিত্রগুলি একই শংসাপত্রগুলি ব্যবহার করে অ্যাক্সেস করা যায়, তাই আমি চাইব আমার অ্যাপ্লিকেশনটি তাদের জন্য কেবলমাত্র একবারই জিজ্ঞাসা করুন এবং তারপরে প্রতিটি মানচিত্রের জন্য স্বয়ংক্রিয়ভাবে প্রমাণীকরণ করতে সেগুলি ব্যবহার করুন। এই পর্যায়ে, আমি অনুমান করি যে আমার কাছে অর্কিজিআইএস সার্ভারের সাহায্যে একাধিক মানচিত্রের লেখককে পরিচালনা করার জন্য একটি প্রক্সি পৃষ্ঠা ব্যবহার করা উচিত । ভাল লাগছে? আর কোন সরল বিকল্প? অগ্রিম ধন্যবাদ, আশা করি আমি আমার প্রয়োজনীয়তা পরিষ্কার করে দিয়েছি ..
csparpa

2

আপনি প্রক্সিও ব্যবহার করতে পারেন, সুতরাং আপনার অ্যাপ্লিকেশনটি কখনই ব্যবহারকারীর নাম এবং পাসওয়ার্ডের জন্য অনুরোধ করবে না। এবং যখনই আপনি সেগুলিতে অ্যাক্সেস করছেন তখন সুরক্ষিত পরিষেবাগুলি অ্যাক্সেস করার জন্য আপনার টোকেন সেট করার দরকার নেই। আপনার জেএস ফাইলে কেবলমাত্র আপনাকে যা করতে হবে তা হল নিম্নলিখিতটি সেট করুন: esriConfig.defaults.io.proxyUrl = "/proxy.ashx"; (যেমন,। HTTP: //localhost//DotNet/proxy.ashx ; esriConfig.defaults.io.alwaysUseProxy সত্য =; আর তোমার proxy.config ফাইলে, সব পরিষেবা যা আপনি আপনার অ্যাপ্লিকেশনের মধ্যে গ্রাসকারী প্রদান করুন।
পড়ুন HTTPS: প্রক্সি সম্পর্কিত আরও তথ্যের জন্য //github.com/Esri/resource-proxy/ . আপনি যেমন টোকেন-ভিত্তিক প্রমাণীকরণ চান, আপনার প্রক্সি.কনফিগ ফাইলে, আপনাকে কেবল url, ব্যবহারকারীর নাম, পাসওয়ার্ড এবং ম্যাচএল সমস্ত সামগ্রী যুক্ত করতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.