Sdílet prostřednictvím


Poskytovatelé služeb zabezpečení

Rozhraní SSPI (Security Service Provider Interface) poskytuje univerzální standardní rozhraní pro zabezpečené distribuované aplikace. Rozhraní PEER Graphing API poskytuje aplikacím způsob zabezpečení propojení v grafu zadáním zprostředkovatele služby zabezpečení (SSP), což je knihovna DLL, která implementuje rozhraní SSPI. Aplikace určuje ZSP při vytváření grafu pomocí PeerGraphCreate.

Další informace o vytvoření vlastního ZSP naleznete v dokumentaci SSPI v seznamu odkazů Graphing Reference.

Aspekty programování pro implementaci ZSP

Při volání do aplikace z z zprostředkovatele sdílených služeb buďte opatrní. U zpětných volání ZSP platí následující aspekty:

  • Vrácení zpětného volání by nemělo trvat dlouho, protože se volají během vyjednávání připojení. Pokud navázání připojení trvá příliš dlouho, je možné připojení vynechat.
  • Rozhraní Peer Graphing API dynamicky upravuje hodnoty časového limitu připojení na základě skutečného zatížení systému. Nejnižší hodnota časového limitu je 20 sekund.
  • Aby se zabránilo potenciálním situacím zablokování, nesmí aplikace přistupovat k databázi peer graphingu z zpětného volání. Pokud aplikace vyžaduje informace z databáze grafů, může aplikace ukládat potřebné informace do mezipaměti a pak odkazovat na mezipaměť v rámci zpětného volání. Ukládání do mezipaměti může také pomoct zkrátit dobu připojení.

Při volání vstupních bodů SSPI vyžaduje infrastruktura peer graphingu specifické hodnoty pro konkrétní parametry pěti (5). Tyto hodnoty parametrů zadané pro ZSP nelze změnit a zprostředkovatel sdílených služeb může buď ignorovat hodnoty pro pět parametrů, nebo je řádně zpracovat. Následující seznam identifikuje tyto konkrétní parametry a požadované hodnoty:

  • AcquireCredentialsHandle

    Zadejte jednu (1) pro pvGetKeyArgument parametru. Určuje null pro pszPrincipal, pvLogonIDa pGetKeyFn parametry.

  • InitializeSecurityContext

    Zadejte následující příznaky pro parametr fContextReq: ISC_REQ_MUTUAL_AUTH | ISC_REQ_CONFIDENTIALITY | ISC_REQ_INTEGRITY | ISC_REQ_SEQUENCE_DETECT | ISC_REQ_STREAM | ISC_REQ_ALLOCATE_MEMORY.

  • AcceptSecurityContext

    Zadejte následující příznaky pro parametr fContextReq: ASC_REQ_MUTUAL_AUTH | ASC_REQ_CONFIDENTIALITY | ASC_REQ_INTEGRITY | ASC_REQ_SEQUENCE_DETECT | ASC_REQ_STREAM | ASC_REQ_ALLOCATE_MEMORY.

  • EncryptMessage

    Zadejte nulu (0) pro fQOP a MessageSeqNo parametry.

  • DecryptMessage

    Jako parametr MessageSeqNo zadejte nulu (0) a pro parametr pfQOP zadejte hodnotu NULL.

Při volání EncryptMessage, čtyři vyrovnávací paměti jsou předány v SecBufferDesc struktury. Následující tabulka uvádí pořadí předávání vyrovnávacích pamětí.

Struktura specifická pro ZSP Popis
SECBUFFER_STREAM_HEADER Obsahuje data hlavičky zabezpečení. Velikost vyrovnávací paměti hlavičky se získá voláním QueryContextAttributes a zadáním atributu SECPKG_ATTR_STREAM_SIZES.
SECBUFFER_DATA Obsahuje zprávu ve formátu prostého textu, která se má šifrovat.
SECBUFFER_STREAM_TRAILER Obsahuje údaje o bezpečnostních přívěsech. Velikost vyrovnávací paměti hlavičky se získá voláním QueryContextAttributes a zadáním atributu SECPKG_ATTR_STREAM_SIZES.
SECBUFFER_EMPTY Inicializováno není. Velikost této vyrovnávací paměti je nula (0).

 

Při volání DecryptMessagerozhraní API peer graphingu předává přesně čtyři struktury SecBuffer. První vyrovnávací paměť je SECBUFFER_DATAa obsahuje zašifrovanou zprávu. Zbývající vyrovnávací paměti se používají pro výstup a jsou typu SECBUFFER_EMPTY.

Zprostředkovatel sdílených služeb musí podporovat šifrování a dešifrování vyrovnávacích pamětí uživatelských dat s velikostmi 16 tisíc a vyššími v jednom volání.