Megosztás a következőn keresztül:


Biztonsági szolgáltatók

A Security Service Provider Interface (SSPI) univerzális, iparági szabványnak megfelelő felületet biztosít a biztonságos elosztott alkalmazásokhoz. A Peer Graphing API lehetővé teszi, hogy az alkalmazások biztonságossá tegyenek egy gráfban lévő hivatkozásokat egy biztonsági szolgáltató (SSP) megadásával, amely egy SSPI-felületet implementáló DLL. Egy alkalmazás SSP-t ad meg, amikor gráfot hoz létre PeerGraphCreatehasználatával.

A saját SSP létrehozásával kapcsolatos további információkért tekintse meg az SSPI dokumentációs hivatkozását a Graphing Reference Linkslistájában.

SSP implementálásának programozási szempontjai

Óvatosan hívjon be egy alkalmazásba egy SSP-ből. Az SSP-visszahívásokra a következő szempontok vonatkoznak:

  • A visszahívások visszatérése nem tart sokáig, mert a rendszer meghívja őket a kapcsolat egyeztetése során. Ha túl sokáig tart a kapcsolat létrehozása, a kapcsolat megszakadhat.
  • A Peer Graphing API dinamikusan módosítja a kapcsolat időtúllépési értékeit a rendszer tényleges terhelése alapján. A legalacsonyabb időtúllépési érték 20 másodperc.
  • A lehetséges holtpont-helyzetek elkerülése érdekében az alkalmazásnak nem szabad elérnie a társgráfolási adatbázist egy visszahívásból. Ha egy alkalmazás adatokat igényel a gráfadatbázisból, az alkalmazás gyorsítótárba helyezheti a szükséges információkat, majd a visszahíváson belülről hivatkozhat a gyorsítótárra. A gyorsítótárazás a kapcsolati idő csökkentésében is segíthet.

Az SSPI belépési pontjainak meghívásakor a társgráfozási infrastruktúra öt (5) függvény adott paramétereinek meghatározott értékeit igényli. Az SSP-nek megadott paraméterértékek nem módosíthatók, és az SSP figyelmen kívül hagyhatja az öt paraméter értékeit, vagy kecsesen kezelheti őket. Az alábbi lista ezeket a paramétereket és a szükséges értékeket azonosítja:

  • CredentialsHandle beszerzése

    Adjon meg egy (1) értéket a pvGetKeyArgument paraméterhez. Megadja a pszPrincipal, pvLogonIDés pGetKeyFn paraméterek NULL.

  • InitializeSecurityContext

    Adja meg a következő jelölőket az fContextReq paraméterhez: ISC_REQ_MUTUAL_AUTH | ISC_REQ_CONFIDENTIALITY | ISC_REQ_INTEGRITY | ISC_REQ_SEQUENCE_DETECT | ISC_REQ_STREAM | ISC_REQ_ALLOCATE_MEMORY.

  • AcceptSecurityContext

    Adja meg a következő jelölőket az fContextReq paraméterhez: ASC_REQ_MUTUAL_AUTH | ASC_REQ_CONFIDENTIALITY | ASC_REQ_INTEGRITY | ASC_REQ_SEQUENCE_DETECT | ASC_REQ_STREAM | ASC_REQ_ALLOCATE_MEMORY.

  • EncryptMessage

    Adja meg a nulla (0) értéket a fQOP és MessageSeqNo paraméterekhez.

  • DecryptMessage

    Adjon meg nulla (0) értéket a MessageSeqNo paraméterhez, és NULL a pfQOP paraméterhez.

Az EncryptMessagehívásakor a rendszer négy puffert ad át a SecBufferDesc struktúrában. Az alábbi táblázat a pufferek átadásának sorrendjét azonosítja.

SSP-specifikus struktúra Leírás
SECBUFFER_STREAM_HEADER A biztonsági fejléc adatait tartalmazza. A fejlécpuffer mérete QueryContextAttributes meghívásával és a SECPKG_ATTR_STREAM_SIZES attribútum megadásával érhető el.
SECBUFFER_DATA A titkosítandó egyszerű szöveges üzenetet tartalmazza.
SECBUFFER_STREAM_TRAILER A biztonsági pótkocsi adatait tartalmazza. A fejlécpuffer mérete QueryContextAttributes meghívásával és a SECPKG_ATTR_STREAM_SIZES attribútum megadásával érhető el.
SECBUFFER_EMPTY Nincs inicializálva. A puffer mérete nulla (0).

 

A DecryptMessagemeghívásakor a Peer Graphing API pontosan négy SecBuffer struktúrát ad át. Az első puffer SECBUFFER_DATA, és titkosított üzenetet tartalmaz. A fennmaradó pufferek a kimenethez használatosak, és SECBUFFER_EMPTYtípusúak.

Az SSP-nek támogatnia kell a felhasználói adatpufferek titkosítását és visszafejtését 16K méretű és nagyobb méretű egy hívásban.