550 likes | 857 Views
מימוש תקן ws.gov.il עם WCF. שי אליאס מנהל צומת השירותים הממשלתי תהילה, ממשל זמין shaye@tehila.gov.il 02-6664666. WS-Security (Web Services Security). Communication protocol providing a means for applying security to web services .
E N D
מימוש תקן ws.gov.il עם WCF שי אליאס מנהל צומת השירותים הממשלתי תהילה, ממשל זמין shaye@tehila.gov.il 02-6664666
WS-Security (Web Services Security) • Communication protocol providing a means for applying security to web services. • The protocol contains specifications on how integrity and confidentiality can be enforced on web services messaging. • contains specifications on how integrity and confidentiality can be enforced on web services messaging. The WSS protocol includes details on the use of SAML and Kerberos, and certificate formats such as X.509. • WS-Security incorporates security features in the header of a SOAP message, working in the application layer. Thus it ensures end-to-end security.
יצירת תעודה (certificate) למכונה • להוריד את הקובץ Config_WS_WSE3.zip • לעשות extract לקובץ zip • להריץ את cert_request.bat • בשלב זה יווצר בספריה Config_WS_WSE3 קובץ ששמו <hostname>.txt כאשר <hostname> הוא שם המכונה. • בשלב זה גם נוצר ה private key בספריה: C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys • להעביר לצוות PKI של תהילה את הקובץ <hostname>.txt שנוצר ולציין שזוהי בקשה לסרטיפיקט בשימוש עם WSE 3.0. • צוות PKI של תהילה ינפיק עבורכם קובץ בשם <hostname>.cer.txt • יש לשנות את שם הקובץ ל <hostname>.cer למקמו ב Config_WS_WSE3 ולהריץ את cert_accept.bat
בדיקה התעודה - 1 לבדוק שהתעודה נמצאת תחת: Certificates (Local Computer) -> personal -> Certificates
בדיקת התעודה - 2 לוודא שיש private key
העתקת מפתח ציבורי במכונה שבה נמצא המפתח הפרטי מבצעים Export לתעודה, לא כולל מפתח פרטי. במכונה שצריכה לזהות את החתימה מבצעים import לתעודה.
הגדרות בצד השרת הגדרות בצד השרת
תוספת בקוד השרת • שממשל זמין דורש חתימה בלבד, יש להוסיף הגדרה זו ברמת ה contract בקוד כדלקמן:
תוספת ב Web.Config • על מנת שיהיה אפשר לגלוש ל wsdl של ה service יש לציין זאת ב web.config :
פתיחת Microsoft service configuration editor Open from SDK Open from Visual Studio 2008
הגדרת Host של ה WebService תחת הגדרות ה Host של ה Service יש להגדיר BaseAddress (זוהי הכתובת של התיקיה הוירטואלית ב IIS בתוכה נמצאים כל קבצי ה services)
הגדרת Binding • קיים wsHttpBinding שמגיע out of the box בהתקנת WCF – אולם אינו מתאים להגדרות של ה DataPower • נשתמש ב custom binding • בנוסף נפרסם MexHttpBinding ע"מ שה DataPower יוכל לשלוף באופן דינמי קבצי wsdl
נייצר Binding חדש מסוג CustomBinding אותו נשייך מאוחר יותר ל Endpoint
הגדרת Security הגדרות הSecurity של ה Binding (שימו לב טוב טוב שהכל מתאים!!!!!) במיוחד להגדרה של MessageSecurityVersion : WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10
נעבור להגדרות של ה Endpoint וניצר Endpoint חדש.
שיוך ה CustomBinding שיצרנו ל Endpoint שיצרנו נבחר customBinding ונדאג לשייך אליו את ה customBinding שיצרנו. בנוסף יש להגדיר עבורו Address רלוונטי או קבוע וגם לבחור contract.
יצירת EndPoint נוסף ניצר endpoint נוסף עם MexHttpBinding (חשוב ע"מ לאפשר שליפת קבצי wsdl באופן דינמי עבור ה DataPower).
הגדרת Behavior נעבור להגדרות של ה Service Behavior תחת Advanced וניצר behavior חדש.
הוספת תכונות ל Behavior: הראשונה ServiceMetada – איפשור גישה ב HTTP ל WS
הוספת תכונות ל Behavior: ב serviceMetadata להגדיר HttpGetEnabled=True
הוספת תכונות ל Behavior: השניה ServiceCredentials – הגדרת סרטיפיקטים
סרטיפיקטים – צד שרת: נגדיר את ה service certificate, ה find value הוא שם ה certificate של השרת שמפרסם את השירות.
הוספת תכונות ל Behavior: השלישית הגדרת כתיבה ל EVENT VIEWER
הגדרות בצד השרת הגדרות בצד הלקוח
הגדרות בצד ה client • שינויים בקוד: • נייצר reference ל service: serviceRef.ServiceClient WcfRef = new serviceRef.ServiceClient(); • אחרי יצירת reference ל service בקוד יש לעדכן בו את ה property הבא: WcfRef.Endpoint.Contract.ProtectionLevel = System.Net.Security.ProtectionLevel.Sign;
נעבור להגדרת EndPoint Behavior חשוב לתת שם – במקרה שלנו :TehilaWCFClientBehavior ונוסיף לו ClientCredentials
הגדרות ה Behavior תחילה נגדיר מי יחתום על ה – מי הסרטיפיקט של הקליינט
הגדרות ה Behavior ומי הסרטיפיקט של הסרבר – ממי צורכים את השירות
הגדרות ה Behavior ולבסוף:
שיוך ה Behavior שייצרנו חוזרים ל Endpoints ,משנים את ה Endpoints שייצרנו ל Custom Binding ומשייכים אליו את ה Behavior שייצרנו :
שינוי ערך DNS בתגית Identity של ה ClientEndpoint
הגדרות בצד השרת כלי ניתור וטיפול בבעיות