سؤال

وأنا أبحث في بناء API وتدرس أوث لإدارة الوصول إلى المعهد، ولكن ما أفعله هو أكثر من نظام B2B مما يسمح للشركات للوصول إلى البيانات على أن تدرج في مواقعهم. وأنا ليس لدي أي B2C في البداية.

وحتى لا يبدو أوث مثل الأداة المناسبة بالنسبة لي، لقد كنت أبحث عن مصادر بشأن بناء نظام مفتاح القائمة، ولكن لم تأتي عبر أي شيء.

هل شيء المتاحة هناك بالفعل؟ هل من الأفضل أن مجرد خلق تجزئة بعض البيانات المقدمة المستخدم أو شيء من هذا القبيل؟

هل كانت مفيدة؟

المحلول

وما تحتاجه هو مجرد شيء أن يعرف بشكل فريد المستخدم ... مجرد استخدام UUID أو ربما تجزئة من UUID.

وفقط للتأكد من أن هذا الرقم يتم تمرير عبر قناة آمنة، إذا كنت تمريرها عبر قناة غير آمنة قد تحتاج إلى تنفيذ بعض الطرق لتأمين معرف مشابهة لHTTP هضم المصادقة.

نصائح أخرى

ونلقي نظرة على ما يقرب من أي ويب موقع 2.0 / الخدمة. أنهم جميعا لديهم درجات متفاوتة من القيام المصادقة وإدارة مفاتيح API. فليكر، تويتر، جيثب، وما إلى ذلك.

واعتمادا على الاحتياجات، في عالم من المعهد على شبكة الإنترنت، وإعطاء شريكك / المطورين مفتاح API (الهوية) والتي تتطلب يوقعون المكالمات (مصادقة) هو المعيار جميلة. هناك الكثير من الطرق لالمواصفات التوقيعات. واحد شائع جدا في هذه الأيام هو. اتخاذ جميع بارامس الدعوة، طابع زمني (+/- 5 دقائق تذبذب)، سرا المشتركة، وتجزئة باستخدام SHA-1 أو MD5 (SHA-1 أفضل).

ويمكنك إما أن تفعل تنفيذ هذا بنفسك أو العثور على شريك (هناك عدد قليل) للقيام بذلك نيابة عنك.

والنهج العام الذي اقترح هنا (لاستخدام التجزئة الذي يتضمن مفتاح API والوقت الحالي) كلها جيدة - بالتأكيد أفضل من بينهم "كلمة السر" في رسالة

ومع ذلك، هناك طريقة قياسية التشفير للقيام بذلك "مونج" عملية تسمى HMAC. يجدر النظر في إذا كنت تريد شيئا أكثر القياسية / قوي / آمنة.

وأخيرا هناك من الواضح أن "المعيار الذهبي" من خيارات الأمان - استخدام شهادة رقمية لتوقيع إما كافة طلبات (يمكن أن تكون مكلفة حسابيا) أو استخدام للتوقيع على الطلب الأولي الذي يولد ثم مفتاح جلسة عمل استخدام limitted (مثل API واحد فقط، مع انتهاء الدقيقة 60).

وبدلا من ذلك يمكنك استخدام 2-الطريقة SSL لطبقة النقل والثقة ببساطة أنه في إطار تطبيق / API.

وحقا يعتمد على كيفية تأمين كنت تريد ذلك ...:]

وأود أن لا تستخدم فقط تقديم بيانات المستخدم، والتي يمكن أن تخلق وضعا مفاتيح API هي تخمينها. عموما، أود أن أغتنم بعض البيانات التي تم إنشاؤها من قبل المستخدم، ومن ثم دمجها مع بعض البيانات التي هي فريدة من نوعها نسبيا (أي وقت النظام الحالي) والتجزئة التي تستخدم SHA-1 أو شيء من هذا، وربما تغيير التمثيل إذا كنت لا تريد أن تكون الواضح تجزئة SHA-1، ومن ثم استخدام ذلك المفتاح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top