Güvenlik Hizmeti Sağlayıcıları
Güvenlik Hizmeti Sağlayıcısı Arabirimi (SSPI), güvenli dağıtılmış uygulamalar için evrensel, endüstri standardı bir arabirim sağlar. Eşleme Grafı API'si, uygulamaların SSPI arabirimi uygulayan bir DLL olan Bir Güvenlik Hizmeti Sağlayıcısı (SSP) belirterek grafikteki bağlantıların güvenliğini sağlamaları için bir yol sağlar. Uygulama, PeerGraphCreatekullanarak bir grafik oluşturduğunda bir SSP belirtir.
Kendi SSP'nizi oluşturma hakkında daha fazla bilgi için, Grafik Başvuru Bağlantıları listesindeki SSPI belgeleri bağlantısına bakın.
SSP Uygulamak için Programlama Konuları
SSP'nin içinden bir uygulamaya çağrı yaparken dikkatli olun. SSP geri çağırmaları için aşağıdaki noktalar geçerlidir:
- Geri çağırmaların döndürülmesi uzun sürmemelidir, çünkü bunlar bağlantı anlaşması sırasında çağrılır. Bir bağlantının kurulması çok uzun sürerse, bağlantı bırakılabilir.
- Eşleme Grafı API'si, bir sistemin gerçek yüküne göre bağlantı zaman aşımı değerlerini dinamik olarak ayarlar. En düşük zaman aşımı değeri 20 saniyedir.
- Olası kilitlenme durumlarını önlemek için uygulamanın bir geri çağırmadan eş graf veritabanına erişmemesi gerekir. Bir uygulama grafik veritabanından bilgi gerektiriyorsa, uygulama gerekli bilgileri önbelleğe alabilir ve ardından geri çağırmanın içinden önbelleğe başvurabilir. Önbelleğe alma, bağlantı süresini azaltmaya da yardımcı olabilir.
SSPI giriş noktalarını çağırırken, Eş Grafik Altyapısı beş (5) işlevden oluşan belirli parametreler için belirli değerler gerektirir. SSP'ye sağlanan bu parametre değerlerini değiştiremezsiniz ve SSP beş parametrenin değerlerini yoksayabilir veya düzgün bir şekilde işleyebilir. Aşağıdaki liste bu belirli parametreleri ve gerekli değerleri tanımlar:
-
pvGetKeyArgument parametresi için bir (1) belirtin. pszPrincipal, pvLogonIDve pGetKeyFn parametreleri için NULL belirtir.
-
fContextReq parametresi için aşağıdaki bayrakları belirtin: ISC_REQ_MUTUAL_AUTH | ISC_REQ_CONFIDENTIALITY | ISC_REQ_INTEGRITY | ISC_REQ_SEQUENCE_DETECT | ISC_REQ_STREAM | ISC_REQ_ALLOCATE_MEMORY.
-
fContextReq parametresi için aşağıdaki bayrakları belirtin: ASC_REQ_MUTUAL_AUTH | ASC_REQ_CONFIDENTIALITY | ASC_REQ_INTEGRITY | ASC_REQ_SEQUENCE_DETECT | ASC_REQ_STREAM | ASC_REQ_ALLOCATE_MEMORY.
-
fQOP için sıfır (0) belirtin ve MessageSeqNo parametrelerini.
-
MessageSeqNo parametresi için sıfır (0) ve pfQOP parametresi için NULL belirtin.
EncryptMessageçağrılırken, SecBufferDesc yapısında dört arabellek geçirilir. Aşağıdaki tablo arabellekleri geçirme sırasını tanımlar.
SSP'ye özgü yapı | Açıklama |
---|---|
SECBUFFER_STREAM_HEADER | Güvenlik üst bilgisi verilerini içerir. Üst bilgi arabelleğinin boyutu, QueryContextAttributes çağrılarak ve SECPKG_ATTR_STREAM_SIZES özniteliği belirtilerek elde edilir. |
SECBUFFER_DATA | Şifrelenecek düz metin iletisini içerir. |
SECBUFFER_STREAM_TRAILER | Güvenlik fragman verilerini içerir. Üst bilgi arabelleğinin boyutu, QueryContextAttributes çağrılarak ve SECPKG_ATTR_STREAM_SIZES özniteliği belirtilerek elde edilir. |
SECBUFFER_EMPTY | Başlatılmadı. Bu arabelleğin boyutu sıfırdır (0). |
DecryptMessageçağrılırken Eşleme Grafı API'si tam olarak dört SecBuffer yapısını geçirir. İlk arabellek SECBUFFER_DATAve şifreli bir ileti içerir. Kalan arabellekler çıktı için kullanılır ve SECBUFFER_EMPTYtüründedir.
SSP'nin tek bir çağrıda 16K ve üzeri boyutlardaki kullanıcı veri arabelleklerinin şifrelenmesi ve şifresinin çözülmesini desteklemesi gerekir.