Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ukázka WS2007FederationHttp ukazuje použití WS2007FederationHttpBindingstandardní vazby, kterou můžete použít k sestavení federovaných scénářů, které podporují verzi 1.3 specifikace WS-Trust.
Poznámka:
Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.
Ukázka se skládá z konzolového klientského programu (Client.exe), programu služby tokenů zabezpečení založeného na konzole (Securitytokenservice.exe) a programu služby založeného na konzole (Service.exe). Služba implementuje kontrakt, který definuje model komunikace žádosti a odpovědi. Kontrakt je definován ICalculator rozhraním, které zveřejňuje matematické operace (Add, Subtract, Multiply, a Divide). Klient získá token zabezpečení ze služby tokenů zabezpečení (STS) a provede synchronní požadavky na službu pro danou matematickou operaci. Služba pak odpoví výsledkem. Aktivita klienta je viditelná v okně konzoly.
Ukázka zpřístupňuje ICalculator kontrakt pomocí elementu ws2007FederationHttpBinding . Konfigurace této vazby na klientovi se zobrazí v následujícím kódu:
<bindings>
<ws2007FederationHttpBinding>
<binding name="ServiceFed" >
<security mode ="Message">
<message issuedKeyType ="SymmetricKey"
issuedTokenType ="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1" >
<!-- Endpoint address and binding for Security Token Service -->
<issuer address ="http://localhost:8000/sts/windows"
binding ="ws2007HttpBinding" />
</message>
</security>
</binding>
</ws2007FederationHttpBinding>
</bindings>
<V rámci zabezpečení> hodnota security určuje, který režim zabezpečení by se měl použít. V této ukázce message se používá zabezpečení, což je důvod, proč <se zpráva> zadává uvnitř <zabezpečení>. Element <vystavitele> uvnitř <zprávy> určuje adresu a vazbu pro STS, který vydává zabezpečovací token klientovi, aby se klient mohl autentizovat ke službě ICalculator.
Konfigurace této vazby ve službě se zobrazí v následujícím kódu:
<bindings>
<ws2007FederationHttpBinding>
<binding name="ServiceFed" >
<security mode ="Message">
<message issuedKeyType ="SymmetricKey"
issuedTokenType ="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1" >
<!-- Metadata address for Security Token Service -->
<issuerMetadata address ="http://localhost:8000/sts/mex" >
<identity>
<certificateReference storeLocation ="CurrentUser"
storeName="TrustedPeople"
x509FindType ="FindBySubjectDistinguishedName"
findValue ="CN=STS" />
</identity>
</issuerMetadata>
</message>
</security>
</binding>
</ws2007FederationHttpBinding>
</bindings>
<V rámci zabezpečení> hodnota security určuje, který režim zabezpečení by se měl použít. V této ukázce message se používá zabezpečení, což je důvod, proč <se zpráva> zadává uvnitř <zabezpečení>. Element <issuerMetadata>ws2007FederationHttpBinding uvnitř <zprávy> určuje adresu a identitu koncového bodu, který lze použít k načtení metadat pro službu STS.
Chování služby se zobrazí v následujícím kódu:
<behaviors>
<serviceBehaviors>
<behavior name ="ServiceBehaviour" >
<serviceDebug includeExceptionDetailInFaults ="true"/>
<serviceMetadata httpGetEnabled ="true"/>
<serviceCredentials>
<issuedTokenAuthentication>
<knownCertificates>
<add storeLocation ="LocalMachine"
storeName="TrustedPeople"
x509FindType="FindBySubjectDistinguishedName"
findValue="CN=STS" />
</knownCertificates>
</issuedTokenAuthentication>
<serviceCertificate storeLocation ="LocalMachine"
storeName ="My"
x509FindType ="FindBySubjectDistinguishedName"
findValue ="CN=localhost"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
Funkce IssuedTokenAuthentication<>> umožňuje službě stanovit omezení pro tokeny, které klienti mohou předkládat během autentizace. Tato konfigurace určuje, že služba přijímá tokeny podepsané certifikátem, jehož název subjektu je CN=STS.
STS zpřístupňuje jeden koncový bod pomocí standardního formátu WS2007HttpBinding. Služba reaguje na požadavky klientů na tokeny. Pokud je klient ověřený pomocí účtu Systému Windows, služba vydá token, který obsahuje uživatelské jméno klienta jako deklaraci identity. V rámci vytváření tokenu služba STS podepíše token pomocí privátního klíče přidruženého k certifikátu CN=STS. Kromě toho vytvoří symetrický klíč a zašifruje ho pomocí veřejného klíče přidruženého k certifikátu CN=localhost. Při vrácení tokenu klientovi vrátí služba STS také symetrický klíč. Klient předloží vystavený token službě ICalculator a prokáže, že zná symetrický klíč podepsáním zprávy s tímto klíčem.
Při spuštění ukázky se požadavek na token zabezpečení zobrazí v okně konzoly služby STS. Požadavky a odpovědi operace se zobrazí v oknech konzoly klienta a služeb. Stisknutím klávesy ENTER v libovolném okně konzoly aplikaci vypnete.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Press <ENTER> to terminate client.
Soubor Setup.bat , který je součástí této ukázky, umožňuje nakonfigurovat server a službu stS s příslušnými certifikáty pro spuštění aplikace v místním prostředí. Dávkový soubor vytvoří dva certifikáty v úložišti certifikátů LocalMachine/TrustedPeople. První certifikát má název subjektu CN=STS a používá ho služba STS k podepsání tokenů zabezpečení, které vydává klientovi. Druhý certifikát má název subjektu CN=localhost a služba STS ho používá k šifrování klíče způsobem, který může služba dešifrovat.
Jak nastavit, sestavit a spustit ukázku
Ujistěte se, že jste provedli instalační proceduru One-Time pro ukázky Windows Communication Foundation.
Otevřete příkazový řádek pro vývojáře pro Visual Studio s oprávněními správce a spuštěním souboru Setup.bat vytvořte požadované certifikáty.
Tento dávkový soubor používá Certmgr.exe a Makecert.exe, které jsou distribuovány se sadou Windows SDK. Je však nutné spustit Setup.bat z příkazového řádku sady Visual Studio, aby skript mohl tyto nástroje najít.
Pokud chcete sestavit verzi C# nebo Visual Basic .NET řešení, postupujte podle pokynů v Sestavení ukázek Windows Communication Foundation.
Pokud chcete spustit ukázku v konfiguraci s jedním počítačem nebo konfiguraci na více počítačích, postupujte podle pokynů v části Spouštění ukázek Windows Communication Foundation. Pokud používáte systém Windows Vista, musíte spustit Service.exe, Client.exea SecurityTokenService.exe se zvýšenými oprávněními (klikněte pravým tlačítkem myši na soubory a potom klikněte na příkaz Spustit jako správce).