জেডাব্লুটিটির জন্য সেরা এইচটিটিপি অনুমোদনের শিরোনামের প্রকার


228

আমি ভাবছি JWT টোকেনেরAuthorization জন্য সবচেয়ে উপযুক্ত উপযুক্ত HTTP শিরোনামের ধরণটি কী

সম্ভবত সবচেয়ে জনপ্রিয় টাইপগুলির মধ্যে একটি Basic। এই ক্ষেত্রে:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

এটি লগইন এবং পাসওয়ার্ডের মতো দুটি পরামিতি পরিচালনা করে। সুতরাং এটি JWT টোকেনগুলির জন্য প্রাসঙ্গিক নয়।

এছাড়াও, আমি উদাহরণস্বরূপ, বহনকারী টাইপ সম্পর্কে শুনেছি :

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

তবে আমি এর অর্থ জানি না। এটি কি ভালুকের সাথে সম্পর্কিত?

এইচটিটিপি Authorizationশিরোনামে জেডাব্লুটি টোকেন ব্যবহারের কোনও বিশেষ উপায় আছে কি ? আমাদের ব্যবহার করা Bearerউচিত, বা আমাদের সরলকরণ এবং স্রেফ ব্যবহার করা উচিত:

Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

ধন্যবাদ।

সম্পাদনা:

অথবা হতে পারে, কেবল একটি JWTএইচটিটিপি শিরোনাম:

JWT: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

উত্তর:


295

আপনার ক্লায়েন্টের অ্যাক্সেস টোকেন (জেডব্লিউটি বা অন্য কোনও টোকেন) প্রেরণের জন্য সেরা এইচটিটিপি শিরোনাম হ'ল প্রমাণীকরণ প্রকল্পের Authorizationশিরোনাম Bearer

এই স্কিমটি আরএফসি 6750 দ্বারা বর্ণিত হয়েছে ।

উদাহরণ:

GET /resource HTTP/1.1
Host: server.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIXVCJ9TJV...r7E20RMHrHDcEfxjoYZgeFONFh7HgQ

আপনার যদি শক্তিশালী সুরক্ষা সুরক্ষা দরকার হয় তবে আপনি নীচের আইইটিএফ খসড়াটিও বিবেচনা করতে পারেন: https://tools.ietf.org/html/draft-ietf-oauth-pop-architecture । এই খসড়াটি (পরিত্যাগ করা?) Https://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac- এর একটি ভাল বিকল্প বলে মনে হচ্ছে ।

মনে রাখবেন যে এই আরএফসি এবং উপরের স্পেসিফিকেশনগুলি OAuth2 ফ্রেমওয়ার্ক প্রোটোকলের সাথে সম্পর্কিত হলেও এগুলি অন্য যে কোনও প্রসঙ্গে ব্যবহার করা যেতে পারে যার জন্য ক্লায়েন্ট এবং সার্ভারের মধ্যে টোকেন এক্সচেঞ্জের প্রয়োজন।

কাস্টম ভিন্ন JWTআপনি আপনার প্রশ্নে উল্লেখ প্রকল্প, এক IANA এ নিবন্ধিতBearer

বিষয়ে Basicএবং Digestপ্রমাণীকরণ স্কীম, তারা একটি ব্যবহারকারী নাম এবং একটি গোপন (দেখুন ব্যবহার প্রমাণীকরণের সাথে নিবেদিত হয় RFC7616 এবং RFC7617 ) যে প্রেক্ষাপটে তাই প্রযোজ্য নয়।


3
ধন্যবাদ! এই Bearerকীওয়ার্ডটির উত্সটি দেখতে ভাল । তবে এটি OAuth থেকে আসে। তবে জেডাব্লুটিটি ওআউথ ছাড়াই ব্যবহার করা যায়। এটি OAuth চশমা সহ সম্পূর্ণ স্বাধীন।
Zag zag ..

2
হ্যাঁ এটি OAuth2 ফ্রেমওয়ার্ক প্রোটোকল থেকে এসেছে তবে অন্য যে কোনও প্রসঙ্গে ব্যবহার করা যেতে পারে। আপনার সার্ভারটি অন্যান্য শিরোনাম বা উপায়গুলি (যেমন বডি রিকোয়েস্টে বা ক্যোয়ারী স্ট্রিংয়ে) ব্যবহার Authenticateকরে জেডাব্লুটিটি গ্রহণ করতে মুক্ত , তবে শিরোনামটি আরও উপযুক্ত এবং আরএফসি 7235 এর সাথে সম্মতিযুক্ত যা HTTP 1.1 প্রসঙ্গে একটি প্রমাণীকরণ কাঠামো বর্ণনা করে
ফ্লোরেন্ট মোর্সেলি

1
আমি জাগ জাগের সাথে একমত, "জেডব্লিউটি" এর মতো একটি কাস্টম স্কিম এতে OAuth2 বহনকারী স্কিমকে চাপ দেওয়ার চেয়ে আরও উপযুক্ত বলে মনে হচ্ছে।
l8nite

50
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। Jwt.io/intrifications এর উদ্ধৃতি দিয়ে : "ব্যবহারকারী এজেন্টটি JWT প্রেরণ করা উচিত, সাধারণত বেয়ারার স্কিমা ব্যবহার করে অনুমোদনের শিরোনামে। শিরোনামের বিষয়বস্তুটি নীচের মতো হওয়া উচিত: অনুমোদন: বহনকারী <টোকেন>"
wrschneider

3
যদি এটি কাউকে সহায়তা করে - আমি এখানে এই উদাহরণটি সন্ধান করতে এসেছি: - বেয়ার স্কিম ব্যবহার করে কার্ল অনুরোধ:curl -H "Authorization: Bearer <TOKEN>" <the rest of your curl cmd>
কেভিন ফ্রিডহিম

76

সংক্ষিপ্ত উত্তর

Bearerপ্রমাণীকরণ স্কীম আপনি যা খুঁজছেন হয়।

দীর্ঘ উত্তর

এটি কি ভালুকের সাথে সম্পর্কিত?

ত্রুটি ... না :)

অক্সফোর্ড ডিকশনারি অনুসারে , এখানে বাহক সংজ্ঞা :

ধারক / ɛːbɛːrə /
বিশেষ্য

  1. একটি ব্যক্তি বা জিনিস যা কিছু বহন করে বা ধারণ করে।

  2. যে ব্যক্তি চেক বা অর্থ প্রদানের জন্য অন্য আদেশ উপস্থাপন করে।

প্রথম সংজ্ঞায় নিম্নলিখিত প্রতিশব্দগুলি অন্তর্ভুক্ত রয়েছে: মেসেঞ্জার , এজেন্ট , পরিবাহক , দূত , প্রেরক , সরবরাহকারী

এবং এখানে আরএফসি 6750 অনুসারে বহনকারী টোকেনের সংজ্ঞা রয়েছে :

1.2। পরিভাষা

বহনকারী টোকেন

টোকেনের দখলে থাকা কোনও পক্ষ ("" ধারক ") যে সম্পত্তির সাথে থাকা অন্য কোনও পক্ষ যেভাবে পারে সেই উপায়ে টোকেনটি ব্যবহার করতে পারে এমন সম্পত্তির সাথে সুরক্ষা টোকেন। ক্রিপ্টোগ্রাফিক কী উপাদান (প্রমাণ-অফ-দখল) দখল প্রমাণ করার জন্য বহনকারী টোকেন ব্যবহারের জন্য বাহক প্রয়োজন হয় না।

Bearerপ্রমাণীকরণ স্কীম IANA নিবন্ধিত এবং মূলত সংজ্ঞায়িত বোঝায় যা RFC 6750 OAuth এর 2.0 অনুমোদন ফ্রেমওয়ার্ক জন্য, কিন্তু কিছুই ব্যবহার থেকে আপনাকে স্টপ Bearerঅ্যাপ্লিকেশন OAuth এর 2.0 ব্যবহার করবেন না মধ্যে অ্যাক্সেস টোকেন জন্য প্রকল্প।

আপনি যতটা পারেন তার মানগুলিতে আটকে যান এবং নিজের প্রমাণীকরণের স্কিম তৈরি করবেন না।


অনুমোদনের স্কিমটি Authorizationব্যবহার করে অনুরোধ শিরোনামে একটি অ্যাক্সেস টোকেন প্রেরণ করতে হবে Bearer:

2.1। অনুমোদনের অনুরোধ শিরোনাম ক্ষেত্র

যখন অ্যাক্সেস টোকেন প্রেরণ AuthorizationHTTP / 1.1 দ্বারা সংজ্ঞায়িত অনুরোধ শিরোনাম ক্ষেত্রটিতে , ক্লায়েন্ট Bearerঅ্যাক্সেস টোকন প্রেরণের জন্য প্রমাণীকরণ স্কিম ব্যবহার করে ।

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

GET /resource HTTP/1.1
Host: server.example.com
Authorization: Bearer mF_9.B5f-4.1JqM

[...]

ক্লায়েন্টরা এইচটিটিপি অনুমোদনের প্রকল্পের সাহায্যে Authorizationঅনুরোধ শিরোনাম ক্ষেত্রটি ব্যবহার করে একটি বহনকারী টোকেন সহ Bearerঅনুমোদিত অনুরোধ জানাতে হবে। [...]

অবৈধ বা নিখোঁজ টোকেনের ক্ষেত্রে, Bearerস্কিমটি WWW-Authenticateপ্রতিক্রিয়া শিরোনামে অন্তর্ভুক্ত করা উচিত :

3. ডাব্লুডাব্লুডাব্লুডাব্লু-প্রমাণীকরণ প্রতিক্রিয়া শিরোনাম ক্ষেত্র

যদি সুরক্ষিত সংস্থান অনুরোধটিতে প্রমাণীকরণের শংসাপত্রগুলি অন্তর্ভুক্ত না থাকে বা সুরক্ষিত সংস্থানটিতে অ্যাক্সেস সক্ষম করে এমন অ্যাক্সেস টোকেন না রাখে, সংস্থান সার্ভারটি এইচটিটিপি অন্তর্ভুক্ত করতে হবে WWW-Authenticate প্রতিক্রিয়া শিরোনাম ক্ষেত্র [...]।

এই স্পেসিফিকেশন দ্বারা সংজ্ঞায়িত সমস্ত চ্যালেঞ্জ প্রমাণীকরণের প্রকল্পের মান ব্যবহার করা আবশ্যক Bearer । এই স্কিমটি এক বা একাধিক লেখক-পরম মানগুলির দ্বারা অনুসরণ করা আবশ্যক। [...]।

উদাহরণস্বরূপ, প্রমাণীকরণ ব্যতীত সুরক্ষিত সংস্থার অনুরোধের জবাবে:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="example"

এবং মেয়াদোত্তীর্ণ অ্যাক্সেস টোকেন ব্যবহার করে প্রমাণীকরণের প্রয়াস সহ সুরক্ষিত সংস্থার অনুরোধের জবাবে:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="example",
                         error="invalid_token",
                         error_description="The access token expired"

5
হ্যাঁ. এটি ভালুকের সাথে সম্পর্কিত। যেভাবে অজগর সাপের সাথে সম্পর্কিত। Duh।
নিকোলাস হ্যামিল্টন

4
ভাল্লুক .. এটা করে। আমার দিন তৈরীর জন্য আপনাকে ধন্যবাদ।
ব্যবহারকারী2501323

এটি কি কোনও দুর্বলতা যদি: আমি ব্যবহারকারীকে টোকেন দিই, কিন্তু যখন তিনি আমাকে একটি অনুরোধ প্রেরণ করতে চান তখন তাকে অবশ্যই অনুরোধের সংস্থায় টোকেনটি প্রেরণ করতে হবে? আমি তাহলে সেখান থেকে পেয়ে যাচাই করব? আমার কাছে অনুরোধটি যেভাবে প্রেরণ করা হয়েছে তা আমার কাছে সংজ্ঞায়িত না হওয়ার মতো সত্যই আমার কাছে নেই, তবে আমি আগ্রহী যদি তা কোনও খারাপ হয় বা আরও সুরক্ষিত করার সমাধান থাকে তবে।
ড্যানিয়েল জেনি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.