Sdílet prostřednictvím


Ověřování ze strany klienta

Služby často publikují metadata, která umožňují automatické generování a konfiguraci typů proxy klientů. Pokud služba není důvěryhodná, klientské aplikace by měly ověřit, že metadata odpovídají zásadám klientské aplikace týkajícím se zabezpečení, transakcí, typu kontraktu služby atd. Následující ukázka ukazuje, jak napsat chování koncového bodu klienta, které ověří koncový bod služby, aby se zajistilo, že je koncový bod služby bezpečný.

Služba zveřejňuje čtyři koncové body služby. První koncový bod používá WSDualHttpBinding, druhý koncový bod používá ověřování NTLM, třetí koncový bod umožňuje tok transakcí a čtvrtý koncový bod používá ověřování na základě certifikátů.

Klient používá MetadataResolver třídu k načtení metadat pro službu. Klient vynucuje zásadu zákazu duplexních vazeb, ověřování NTLM a toku transakcí pomocí ověřování. Pro každou ServiceEndpoint instanci importovanou z metadat služby klientská aplikace přidá do koncového bodu instanci chování ServiceEndpoint koncového InternetClientValidatorBehavior bodu předtím, než se pokusí použít klienta WCF (Windows Communication Foundation) pro připojení ke koncovému bodu. Metoda chování Validate se spustí před voláním jakýchkoli operací ve službě a vynucuje zásady klienta vyvoláním InvalidOperationExceptions.

Sestavení ukázky

  1. Pokud chcete sestavit řešení, postupujte podle pokynů v části Sestavení ukázek Windows Communication Foundation.

Spuštění ukázky na stejném počítači

  1. Otevřete příkazový řádek pro vývojáře pro Visual Studio s oprávněními správce a spusťte Setup.bat z ukázkové instalační složky. Tím se nainstalují všechny certifikáty potřebné pro spuštění ukázky.

  2. Spusťte aplikaci služby z \service\bin\Debug.

  3. Spusťte klientskou aplikaci z \client\bin\Debug. Aktivita klienta se zobrazí v aplikaci konzoly klienta.

  4. Pokud klient a služba nemůžou komunikovat, přečtěte si téma Řešení potíží Tipy pro ukázky WCF.

  5. Po dokončení ukázky odeberte certifikáty spuštěním Cleanup.bat. Jiné ukázky zabezpečení používají stejné certifikáty.

Spuštění ukázky napříč počítači

  1. Na serveru v příkazovém řádku pro vývojáře pro Visual Studio spusťte s oprávněními správce napište setup.bat service. Spuštění setup.bat s argumentem service vytvoří certifikát služby s plně kvalifikovaným názvem domény počítače a exportuje certifikát služby do souboru s názvem Service.cer.

  2. Na serveru upravte App.config tak, aby odrážel nový název certifikátu. To znamená, že změňte findValue atribut v elementu <serviceCertificate> na plně kvalifikovaný název domény počítače.

  3. Zkopírujte soubor Service.cer z adresáře služby do klientského adresáře v klientském počítači.

  4. V klientovi otevřete příkazový řádek pro vývojáře pro Visual Studio s oprávněními správce a zadejte setup.bat client. Spuštění setup.bat s argumentem client vytvoří klientský certifikát s názvem Client.com a exportuje klientský certifikát do souboru s názvem Client.cer.

  5. V souboru client.cs změňte hodnotu adresy koncového bodu MEX a findValue nastavení výchozího certifikátu serveru tak, aby odpovídalo nové adrese vaší služby. Provedete to tak, že nahradíte localhost plně kvalifikovaným názvem domény serveru. Přestavba.

  6. Zkopírujte soubor Client.cer z klientského adresáře do adresáře služby na serveru.

  7. Na klientovi spusťte ImportServiceCert.bat v příkazovém řádku pro vývojáře pro Visual Studio otevřené s oprávněními správce. Tím se certifikát služby naimportuje ze souboru Service.cer do úložiště CurrentUser – Trusted Lidé.

  8. Na serveru spusťte ImportClientCert.bat v příkazovém řádku pro vývojáře pro Visual Studio otevřené s oprávněními správce. Tím se klientský certifikát naimportuje ze souboru Client.cer do úložiště LocalMachine – Trusted Lidé.

  9. V počítači služby sestavte projekt služby v sadě Visual Studio a spusťte service.exe.

  10. Na klientském počítači spusťte client.exe.

    1. Pokud klient a služba nemůžou komunikovat, přečtěte si téma Řešení potíží Tipy pro ukázky WCF.

Vyčištění po ukázce

  • Po dokončení spuštění ukázky spusťte Cleanup.bat ve složce s ukázkami.

    Poznámka:

    Tento skript při spuštění této ukázky na počítačích neodebere certifikáty služby v klientovi. Pokud jste spustili ukázky WCF, které používají certifikáty napříč počítači, nezapomeňte vymazat certifikáty služeb nainstalované v úložišti CurrentUser – Důvěryhodné Lidé. K tomu použijte následující příkaz: certmgr -del -r CurrentUser -s TrustedPeople -c -n <Fully Qualified Server Machine Name>. For example: certmgr -del -r CurrentUser -s TrustedPeople -c -n server1.contoso.com.

Viz také