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.
-
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.
-
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.
-
Adja meg a nulla (0) értéket a fQOP és MessageSeqNo paraméterekhez.
-
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.