أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية استدعاء خدمة ويب باستخدام شهادة عميل للمصادقة في تطبيق ويب ASP.NET

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية901183
الموجز
تتناول هذه المقالة كيفية تمرير شهادة عميل إلى خدمة ويب للمصادقة من تطبيق ويب ASP.NET.

ملاحظة تنطبق الخطوات الواردة في هذه المقالة أيضا إلى متى يمكنك إجراء طلب HTTP مباشر باستخدام HttpWebRequest الفئة إذا لم تقوم باستدعاء خدمة ويب.
مقدمة حول
وكثيراً ما يجب مصادقة خدمات ويب التطبيقات التي تستدعي خدمات ويب. يجب تنفيذ خدمات ويب المصادقة لاستدعاء التطبيقات خدمات ويب من تنفيذ التفويضات. أحد هو أسلوب مصادقة للتطبيقات باستدعاء خدمة ويب لتقديم طلب شهادة العميل.

عندما يحاول تطبيق ويب ASP.NET لاستدعاء خدمة ويب التي تستخدم مصادقة الشهادة، قد تتلقى رسالة خطأ "وصول مرفوض". عند وحدة تحكم تطبيق أو تطبيق نماذج Microsoft Windows باستدعاء نفس خدمة ويب، لا تتلقى خطأ رسالة.

يحدث هذا السلوك لأن يحتفظ الكمبيوتر اثنين مخازن الشهادات مختلفة:
  • مخزن الجهاز المحلي: البحث تطبيق ويب ASP.NET في هذا المخزن تحديد موقع عميل الشهادات.
  • مخزن المستخدم المحلي: البحث في هذا المخزن لتحديد موقع العميل تطبيق مستخدم تفاعلي الشهادات.
عادة، عند تطبيق مستخدم تفاعلي تثبيت شهادة عميل يتم تثبيت شهادة العميل في مخزن المستخدم المحلي. لذلك، يعمل شهادة العميل لتطبيقات المستخدم الحالي. ومع ذلك، لا يعمل شهادة العميل لصفحة ويب ASP.NET التطبيقات.
معلومات أخرى
لتمكين تطبيق ويب ASP.NET لاستخدام العميل الشهادة، يجب تثبيت شهادة العميل في مخزن الجهاز المحلي. عند تثبيت شهادة عميل في مخزن الجهاز المحلي شهادة العميل يتوفر فقط لحسابات المستخدمين في مجموعة المسؤولين والذين قاموا بتثبيت شهادة العميل للمستخدم. لذلك، يجب منح حق الوصول إلى شهادة العميل لحساب المستخدم الذي يتم استخدامه لتشغيل تطبيق ويب ASP.NET.

ملاحظة يجب أن يكون لديك Microsoft.NET Framework 1.1 Service Pack 1 (SP1) تثبيت لاستخدام شهادات العميل في مخزن الجهاز المحلي.

بالإضافة إلى ذلك، عند ASP.NET تطبيق ويب باستدعاء خدمة ويب، يجب تصدير التطبيق تخزين شهادة العميل من الشهادة ثم قم بإضافة عميل شهادة لاستدعاء خدمة ويب.

تثبيت شهادة العميل ومنح حق الوصول لحساب المستخدم

لتثبيت شهادة العميل، ومنح حق الوصول لشهادة العميل لحساب المستخدم الذي يتم استخدامه لتشغيل تطبيق ويب ASP.NET، اتبع الخطوات التالية.

الخطوة 1: تثبيت شهادة العميل في مخزن الجهاز المحلي

إذا كان لديك شهادة عميل في ملف PKCS #12 (.pfx)، يمكنك استخدام "أداة تكوين Microsoft Windows HTTP خدمات الشهادة" (WinHttpCertCfg.exe) لتثبيت شهادة العميل ومنح حق الوصول إلى شهادة العميل لإضافية حسابات المستخدم مثل حساب "خدمة الشبكة". للقيام بذلك، اتبع هذه الخطوات التالية:
  1. قم بتنزيل ثم قم بتثبيت Microsoft Windows HTTP أداة تكوين خدمات الشهادات. للحصول على الأداة، بزيارة موقع Microsoft على الويب:
  2. قم بتشغيل الأمر التالي في موجه الأوامر:
    وينهتبسيرتكفج-i PFXFile -c LOCAL_MACHINE\My-a IWAM_TESTMACHINE-p بفكسباسورد
    ملاحظةPfxFile هو اسم ملف.pfx. كلمة المرور يتم كلمة المرور لملف &.pfx. إذا كان الملف لا يتطلب كلمة مرور، حذف المعلمة -p .

    عادة، يتم وضع الملف WinHttpCertCfg.exe في ما يلي المجلد:
    Kits\Tools الموارد ويندوز C:\Program
إذا كان ليس لديك حق الوصول إلى ملف.pfx، ولديك خدمات شهادة Microsoft المثبتة على كمبيوتر الذي يقوم بتشغيل Microsoft Windows Server 2003 أو Microsoft Windows 2000 Server، يمكنك طلب وتثبيت شهادة العميل مباشرة في مخزن الجهاز المحلي. للقيام بذلك، اتبع الخطوات التالية:
  1. تسجيل الدخول إلى الكمبيوتر العميل باستخدام حساب مستخدم يحتوي على بيانات اعتماد المسؤول.
  2. في Microsoft Internet Explorer، قم بزيارة المرجع المصدق (CA) موقع ويب. على سبيل المثال، إذا كان الملقم CA يسمى كاسيرفير، قم بزيارة موقع التالي على الويب:
    http://CAServer/certsrv
  3. ضمن حدد مهمة، انقر فوق طلب شهادة، ثم انقر فوق متقدم طلب الشهادة.
  4. انقر فوق إنشاء وإرسال طلب إلى ذلك المرجع المصدق.
  5. في طلب شهادة متقدمالنموذج، أدخل اسم وعنوان البريد إلكتروني.
  6. في نوع الشهادة المطلوبة، انقر فوق شهادة مصادقة العميل.
  7. في خيارات المفتاح المقطع، انقر فوق إلى حدد تخزين الشهادة في شهادة الكمبيوتر المحلي مخزن خانة الاختيار ومن ثم انقر فوق إرسال.

    ملاحظة معرف طلب لشهادة العميل.
  8. في احتمال انتهاك البرمجةمربع الحوار، انقر فوق "نعم".
  9. بعد أصدر المرجع المصدق شهادة العميل، انقر فوق الصفحة الرئيسية، ثم انقر فوق عرض حالة طلب شهادة معلق.
  10. ضمن حدد طلب الشهادة التي تريدها لعرض، انقر فوق طلب الشهادة التي أرسلتها في الخطوة 7.
  11. انقر فوق تثبيت هذه الشهادة، و ثم انقر فوق "نعم" في احتمال انتهاك البرمجة مربع الحوار.

خطوة 2: تكوين الوصول إلى شهادة العميل

في هذه الخطوة، يجب منح إذن لحساب ASP.NET إلى الوصول إلى شهادة العميل التي تم تخزينها في مخزن الجهاز المحلي. الافتراضي هو حساب "خدمة الشبكة" حساب لتشغيل تطبيقات ويب في Windows Server 2003. لذلك، يجب منح الحصول على شهادة حساب "خدمة الشبكة". إذا كان لديك تكوين حساب مخصص لتشغيل ASP.NET، يجب منح حق الوصول للمخصصة حساب.

ملاحظة في Microsoft Internet معلومات Server (IIS) 5.0، يتم تشغيل ASP.NET ضمن ASPNET حساب ولا تخضع "خدمة شبكة الاتصال". لذلك، يجب منح الأذونات الخاصة بحساب ASPNET على جهاز كمبيوتر يقوم بتشغيل IIS 5.0.

لمنح حق الوصول لحساب مستخدم محدد، قم بتشغيل التالية الأمر في موجه الأوامر:
WinHttpCertCfg.exe--c LOCAL_MACHINE\MY موظف "إيسويدتونامي" -a "اسم الحساب"
ملاحظةاسم الحساب هو اسم حساب كمبيوتر محلي أو حساب مجال. إيسويدتونامي هو اسم الشركة أو المجال الذي شهادة العميل تم إصدار. هذا الأمر يحتوي على سلسلة بحث حساسة لحالة الأحرف. يبحث سلسلة البحث عن الأول الشهادة التي تم تعدادها يحتوي على اسم موضوع الذي يحتوي على السلسلة.

أمر سطر الأوامر التالي مثال عن كيفية منح حق الوصول إلى شهادة عميل لحساب "خدمة شبكة الاتصال" في Microsoft Internet معلومات Services (IIS) 6.0:
WinHttpCertCfg.exe--c LOCAL_MACHINE\MY موظف "إيسويدتونامي"-a" NetworkService "
أمر سطر الأوامر التالي مثال عن كيفية منح حق الوصول إلى شهادة العميل لحساب ASPNET في IIS 5.0:
WinHttpCertCfg.exe--c LOCAL_MACHINE\MY موظف "إيسويدتونامي"-a" ASPNET "
ملاحظة عند استخدام Windows HTTP أداة تكوين خدمات الشهادات، يمكنك ضم عملية استيراد شهادة العميل و عملية تكوين الوصول إلى شهادة العميل في خطوة واحدة. من أجل على سبيل المثال، أمر سطر الأوامر التالي بتنفيذ العمليتين:
Winhttpcertcfg.exe-i PFXFile -c LOCAL_MACHINE\My-a "اسم الحساب

الخطوة 3: نسخ شهادة العميل من مخزن المستخدم المحلي إلى مخزن الجهاز المحلي

إذا كان أحد التطبيقات التفاعلية مثل تطبيق Windows Forms أو سطر الأوامر يمكن الوصول إلى تطبيق شهادة العميل، العميل يتم تخزين الشهادة مسبقاً في مخزن المستخدم المحلي. ومع ذلك، إذا كانت هناك خدمة يتعذر على التطبيق كتطبيق ويب ASP.NET الوصول شهادة العميل نفس، قد لا تكون شهادة العميل تخزين في مخزن الجهاز المحلي.

هذه الخطوة توضح هذه المقالة كيفية نسخ شهادة العميل في مخزن المستخدم المحلي إلى مخزن الجهاز المحلي باستخدام "معالج تصدير الشهادات".

ملاحظة إذا كانت شهادة العميل بالفعل في مخزن الجهاز المحلي أو إذا كان يمكنك تثبيت شهادة العميل في مخزن الجهاز المحلي كما في مباشرة الخطوة 1، انتقل إلى "الخطوة الرابعة". ومع ذلك، إذا كنت تستخدم الخطوة 3، يجب عليك ثم العودة إلى الخطوة 2 إلى منح حق الوصول إلى شهادة العميل.

لنسخ شهادة العميل إلى المحلي مخزن الجهاز، اتبع الخطوات التالية:
  1. انقر فوق بدء تشغيل، انقر فوق تشغيل، نوع mmc، ثم انقر فوق موافق.
  2. على ملف القائمة، انقر فوق إضافة/إزالة أداة إضافية، ثم انقر فوق إضافة.
  3. في إضافة الأدوات الإضافية المستقلة حوار ، انقر فوق الشهادات، انقر فوق إضافة، انقر فوق حساب الكمبيوتر، انقر فوق التالي، ثم انقر فوق "إنهاء".
  4. في إضافة الأدوات الإضافية المستقلة حوار ، انقر فوق الشهادات، انقر فوق إضافة، انقر فوق حساب المستخدم الخاص بي، ثم انقر فوق "إنهاء".
  5. انقر فوق إغلاق، ثم انقر فوق موافق.
  6. لتصدير شهادة العميل من مخزن المستخدم المحلي، اتبع الخطوات التالية:
    1. قم بتوسيع الشهادات-المستخدم الحالي, قم بتوسيع الشخصية، ثم انقر فوق الشهادات.
    2. زر الماوس الأيمن فوق شهادة العميل، انقر فوق كافة المهام، انقر فوق تصدير، ثم انقر فوق التالي.
    3. إذا كان نعم، تصدير المفتاح الخاص الخيار هو غير متوفر، تطبيق ويب ASP.NET لا يمكن استخدام شهادة العميل. يجب الحصول على شهادة عميل آخر. للقيام بذلك، اتبع الإرشادات في الخطوتين 1 و 2. وإلا، انقر فوق نعم، تصدير المفتاح الخاص، ثم انقر فوق التالي اثنين الأوقات.
    4. في كلمة المرور مربع وفي تأكيد كلمة المرور ، اكتب كلمة مرور ثم انقر فوق التالي.
    5. في اسم الملف ، اكتب ملف اسم. انقر فوق التالي، ثم انقر فوق "إنهاء".
    6. في معالج تصدير الشهاداتمربع الحوار، انقر فوق موافق.
  7. لاستيراد شهادة العميل إلى مخزن الجهاز المحلي، اتبع الخطوات التالية:
    1. قم بتوسيع الشهادات (الكمبيوتر المحلي), ثم قم بتوسيع الشخصية.
    2. انقر بالزر الأيمن الشهادات، انقر فوق كافة المهام، انقر فوق الاستيراد، ثم انقر فوق التالي.
    3. في اسم الملف ، اكتب الملف الاسم الذي المحدد في الخطوة 6e، ثم انقر فوق التالي.
    4. في كلمة المرور ، اكتب كلمة المرور المحدد في الخطوة 6 d، وثم انقر فوق التالي اثنين الأوقات.
    5. انقر فوق "إنهاء"، ثم انقر فوق موافق.

الخطوة 4: تثبيت شهادة المرجع المصدق الجذر

إذا تم توقيعه شهادة العميل بالفعل بمهمة خارجية مرجع مصدق مثل VeriSign، أو إذا كان لديك بالفعل تثبيت الجذر شهادة المرجع المصدق، يمكنك حذف الخطوة 4.

بشكل افتراضي، يحتوي Windows على الشهادات الجذرية الخارجية العديد المراجع المصدقة مسبقاً مثبتة مسبقاً في "جذر موثوق به" مخزن الشهادات.
تحقق من تثبيت الشهادة الجذر
للتحقق من أن الجذر تم تثبيت شهادة المرجع المصدق، اتبع هذه الخطوات التالية:
  1. انقر فوق بدء تشغيل، انقر فوق تشغيل، نوع mmc، ثم انقر فوق موافق.
  2. على ملف القائمة، انقر فوق إضافة/إزالة أداة إضافية، ثم انقر فوق إضافة.
  3. في إضافة الأدوات الإضافية المستقلة حوار ، انقر فوق الشهادات، انقر فوق إضافة، انقر فوق حساب الكمبيوتر، انقر فوق التالي، ثم انقر فوق "إنهاء".
  4. انقر فوق إغلاق، ثم انقر فوق موافق.
  5. قم بتوسيع الشهادات (الكمبيوتر المحلي), قم بتوسيع المراجع المصدقة الجذر الموثوقة، ثم انقر فوق الشهادات.
  6. في الجزء الأيسر، تأكد من أن الشهادة الجذر CA الذي تريد استخدامه مسروداً.
تثبيت الشهادة الجذر
إذا لم يكن الشهادة الجذر CA الذي تريد استخدامه سرد، يجب تثبيت شهادة الجذر. إذا الشهادة الجذر CA الذي تريد استخدامه صدر لك في ملف شهادة مثل ملف.cer أو ملف.der ملف.pfx، اتبع الخطوات التالية:
  1. قم بتوسيع الشهادات (الكمبيوتر المحلي), انقر بالزر الأيمن المراجع المصدقة الجذر الموثوقة، انقر فوق كافة المهام، ثم انقر فوق الاستيراد.
  2. في معالج استيراد الشهاداتمربع الحوار، انقر فوق التالي، ثم في ملف اسم مربع، اكتب اسم ملف الشهادة، وثم انقر فوق التالي مرتين.
  3. انقر فوق "إنهاء"، ثم انقر فوق موافق.
طلب الشهادة الجذر
إذا تم تضمين CA الذي تريد استخدامه في قاعدة بيانات تثبيت خدمات شهادة Microsoft، يمكنك طلب الشهادة الجذر. للقيام بذلك، اتبع الخطوات التالية:
  1. في Internet Explorer، قم بزيارة موقع ويب. على سبيل المثال، إذا كان الملقم CA يسمى كاسيرفير، قم بزيارة موقع التالي على الويب:
    http://CAServer/certsrv
  2. انقر فوق تحميل المرجع مصدق الشهادة، شهادة سلسلة، أو CRL، ثم انقر فوق تحميل المرجع المصدق شهادة.
  3. في تحميل ملف مربع الحوار، انقر فوق حفظ.
  4. في حفظ باسم الحوار، أدخل الموقع حيث تريد حفظ ملف الشهادة، ثم انقر فوق حفظ.
  5. بعد أن قمت بحفظ ملف الشهادة الجذر، استخدام الخطوات في القسم "تثبيت شهادة الجذر" لتثبيت ملف الشهادة في موثوق به مخزن "المراجع المصدقة الجذر".

استدعاء خدمة ويب

بعد الانتهاء من تثبيت شهادة العميل في أي مخزن الجهاز المحلي أو إلى مخزن المستخدم المحلي، يمكنك الوصول إلى شهادة العميل من تطبيق ويب ASP.NET لاستدعاء خدمة ويب. الخطوات اللازمة للوصول إلى شهادة العميل هي نفسها لتطبيق Windows Forms أو ويب ل ASP.NET التطبيق.

إذا كنت تستخدم "برنامج.NET framework"، يجب أولاً تصدير المفتاح إلى ملف ذو ترميز DER. يجب عليك تصدير المفتاح للفئة System.Security.Cryptography.X509Certificates.X509Certificate لا يتضمن أساليب إلى الوصول مباشرة إلى تفاصيل الشهادة من مخزن شهادات. لذلك، يجب قراءة التطبيق تفاصيل شهادة من ملف ذو ترميز DER.

ملاحظة يوفر تحسينات خدمات ويب 2.0 ل Microsoft.NET (WSE) طريقة لأحد تطبيقات لاسترداد تفاصيل شهادة مباشرة من مخزن شهادات.

المثال C# التالي تعليمات برمجية يوضح كيفية استدعاء خدمة ويب بتمرير شهادة عميل المصادقة.
using System.Security.Cryptography.X509Certificates;...  public void CallWebService()  {    // TODO: Replace <C:\WSClientCert.cer> with the path of your certificate file.    string certPath = @"<C:\WSClientCert.cer>";    // Create an instance of the Web service proxy.    WebSvc.math mathservice = new WebSvc.math();    // TODO: Replace <https://wsserver/securemath/math.asmx> with a valid URL.    mathservice.Url = @"<https://wsserver/securemath/math.asmx>";    // Create an X509Certificate object from the information     // in the certificate export file, and then add the certificate to the     // ClientCertificates collection of the Web service proxy.    mathservice.ClientCertificates.Add(        X509Certificate.CreateFromCertFile(certPath));    long lngResult = 0;    try    {      lngResult = mathservice.Add(Int32.Parse(operand1.Text),           Int32.Parse(operand2.Text));      string result = lngResult.ToString();    }    catch(Exception ex)    {      if(ex is WebException)      {        WebException we = ex as WebException;        WebResponse webResponse = we.Response;        throw new Exception("Exception calling method. " + ex.Message);      }    }  }

تحسينات 2.0 ل Microsoft.NET خدمات ويب

تحسينات خدمات ويب 2.0 ل Microsoft.NET (WSE) هي Microsoft.NET مكتبة الفئات لبناء خدمات ويب باستخدام خدمات ويب أحدث البروتوكولات. تتضمن هذه البروتوكولات التالية:
  • WS-الأمان
  • سيكوريكونفيرسيشن WS
  • ثقة WS
  • نهج WS
  • WS SecurityPolicy
  • توجيه WS
  • مرفقات WS
ملاحظة لا يتم تضمينها كجزء من.NET Framework WSE. للحصول على WSE، قم بزيارة موقع Microsoft التالي على الويب: ليس لديك لاستخدام أي من هذه البروتوكولات للوصول إلى صفحة ويب خدمة تتطلب مصادقة شهادة العميل. ومع ذلك، قد تحتاج إلى استخدام فئة Microsoft.Web.Services2.Security.X509 . تتضمن هذه الفئة Microsoft.Web.Services2.Security.X509 أساليب إلى الوصول مباشرة إلى شهادة عميل في مخزن الشهادات. إذا كنت تستخدم هذه الطرق، لم تكن للتصدير الشهادة إلى ملف.

علامة C# المثال التالي تعليمات برمجية يوضح كيفية العثور على شهادة الأول يسمى سيكوريماثكلينت في مخزن الجهاز المحلي. ثم، يستخدم هذا المثال تعليمات برمجية الشهادة للاتصال طريقة إضافة الرياضيات خدمة ويب. الرياضيات خدمة ويب يتطلب شهادات العميل.
...  // TODO: Replace <SecureMathClient> with the name of the client certificate.  string certName = "<SecureMathClient>";  // WSE 2.0 method  X509CertificateStore store =    X509CertificateStore.LocalMachineStore(X509CertificateStore.MyStore);  store.OpenRead();  // Look for the first certificate that is named SecureMathClient.  // Look in the local machine store.  X509CertificateCollection col=     (X509CertificateCollection)store.FindCertificateBySubjectString(certName);  X509Certificate cert =null;  try  { // This sample obtains the first matching certificate from the collection.    cert = col[0];  }   catch(Exception ex)  {    throw new Exception("Certificate not Found!");  }  // Create an instance of the Web service proxy.  math mathservice = new math();  // TODO: Replace <https://wsserver/securemath/math.asmx> with a valid URL.  mathservice.Url = @"<https://wsserver/securemath/math.asmx>";  mathservice.ClientCertificates.Add(cert);  long lngResult = 0;  try  {    lngResult = mathservice.Add(Int32.Parse(operand1.Text),         Int32.Parse(operand2.Text));    result.Text = lngResult.ToString();  }  catch(Exception ex)  {    if(ex is WebException)    {      WebException we = ex as WebException;      WebResponse webResponse = we.Response;      throw new Exception("Exception calling method. " + ex.Message);    }  }
مراجع
لمزيد من المعلومات حول فئة System.Security.Cryptography.X509Certificates.X509Certificate ، قم بزيارة ويب شبكة مطوري Microsoft (MSDN) التالي الموقع: لمزيد من المعلومات حول كيفية الاتصال بموقع ويب محسنة الأمان باستخدام تطبيق ويب ASP.NET، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
817854تصحيح: تطبيق ويب ASP.NET يتعذر تسليم شهادة عميل إلى موقع ويب محسنة الأمان

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 901183 - آخر مراجعة: 03/21/2013 06:02:00 - المراجعة: 5.0

Microsoft .NET Framework 1.1

  • kbcode kbwebservices kbcertservices kbhowto kbinfo kbmt KB901183 KbMtar
تعليقات