Aracılığıyla paylaş


Holographic Uzaktan İletişim ve Windows Mixed Reality API'siyle Güvenli Bağlantı

Bağlantı güvenliğini etkinleştirmek istiyorsanız özel uzak ve oynatıcı uygulamaları uygulamanız gerektiğini unutmayın. Sağlanan örnekleri kendi uygulamalarınız için başlangıç noktası olarak kullanabilirsiniz.

Güvenliği etkinleştirmek için, uzaktan iletişim bağlantısını kurmak yerine yerine öğesini ConnectSecure() çağırın.ListenSecure()Listen()Connect()

Bu çağrılar, güvenlikle ilgili bilgileri sağlamak ve doğrulamak için belirli arabirimlerin uygulamalarını sağlamanızı gerektirir:

  • Sunucunun bir sertifika sağlayıcısı ve kimlik doğrulama doğrulayıcısı uygulaması gerekir
  • İstemcinin bir kimlik doğrulama sağlayıcısı ve sertifika doğrulayıcı uygulaması gerekir.

Tüm arabirimler, bir geri çağırma nesnesini parametre olarak alan eylem gerçekleştirmenizi isteyen bir işleve sahiptir. Bu nesneyi kullanarak, isteğin zaman uyumsuz işlenmesini kolayca uygulayabilirsiniz. Bu nesneye bir başvuru tutun ve zaman uyumsuz eylem tamamlandığında tamamlama işlevini çağırın. Tamamlama işlevi herhangi bir iş parçacığından çağrılabilir.

İpucu

WinRT arabirimlerini uygulamak C++/WinRT kullanılarak kolayca yapılabilir. C++/WinRT ile YAZMA API'leri bölümü bunu ayrıntılı olarak açıklar.

Önemli

build\native\include\HolographicAppRemoting\Microsoft.Holographic.AppRemoting.idl NuGet paketinin içinde güvenli bağlantılarla ilgili API için ayrıntılı belgeler bulunur.

Sertifika sağlayıcısı uygulama

Sertifika sağlayıcıları, sunucu uygulamasına kullanılacak sertifikayı sağlar. Uygulama iki bölümden oluşur:

  1. Arabirimini uygulayan ICertificate bir sertifika nesnesi:

    • GetCertificatePfx() bir PKCS#12 sertifika deposunun ikili içeriğini döndürmelidir. Bir .pfx dosya veri içerdiğinden PKCS#12 içeriği doğrudan burada kullanılabilir.
    • GetSubjectName() kullanılacak sertifikayı tanımlayan kolay adı döndürmelidir. Sertifikaya kolay ad atanmamışsa, bu işlev sertifikanın konu adını döndürmelidir.
    • GetPfxPassword() sertifika depoyu açmak için gereken parolayı (veya parola gerekmiyorsa boş bir dizeyi) döndürmelidir.
  2. Arabirimi uygulayan ICertificateProvider bir sertifika sağlayıcısı:

    • GetCertificate() bir sertifika nesnesi oluşturup geri çağırma nesnesi üzerinde çağırarak CertificateReceived() döndürmelidir.

Kimlik doğrulama doğrulayıcı uygulama

Kimlik doğrulama doğrulayıcıları, istemci tarafından gönderilen kimlik doğrulama belirtecini alır ve doğrulama sonucuyla yanıt verir.

IAuthenticationReceiver Arabirimi aşağıdaki gibi uygulayın:

  • GetRealm() kimlik doğrulama alanının adını (uzaktan iletişim bağlantısı el sıkışması sırasında kullanılan http bölgesi) döndürmelidir.
  • ValidateToken() istemci kimlik doğrulama belirtecini doğrulamalı ve doğrulama sonucuyla geri çağırma nesnesinde çağrısı ValidationCompleted() yapmalıdır.

Kimlik doğrulama sağlayıcısı uygulama

Kimlik doğrulama sağlayıcıları, sunucuya gönderilecek kimlik doğrulama belirtecini oluşturur veya alır.

IAuthenticationProvider Arabirimi aşağıdaki gibi uygulayın:

  • GetToken() gönderilecek kimlik doğrulama belirtecini oluşturmalıdır veya almalıdır. Belirteç hazır olduğunda geri çağırma nesnesinde yöntemini çağırın TokenReceived() .

Sertifika doğrulayıcı uygulama

Sertifika doğrulayıcıları, sunucu tarafından gönderilen sertifika zincirini alır ve sunucuya güvenilip güvenilemeyeceğini belirler.

Sertifikaları doğrulamak için, temel alınan sistemin doğrulama mantığını kullanabilirsiniz. Bu sistem doğrulaması kendi doğrulama mantığınızı destekleyebilir veya tamamen değiştirebilir. Güvenli bağlantı isteğinde bulunurken kendi sertifika doğrulayıcınızı geçirmezseniz sistem doğrulaması otomatik olarak kullanılır.

Windows'da sistem doğrulaması şunları denetler:

  • Sertifika zincirinin bütünlüğü: sertifikalar, güvenilir bir kök sertifikayla biten tutarlı bir zincir oluşturur
  • Sertifika geçerliliği: Sunucunun sertifikası geçerlilik süresi içindedir ve sunucu kimlik doğrulaması için verilir
  • İptal: Sertifika iptal edilmemiş
  • Ad eşleşmesi: Sunucunun ana bilgisayar adı, sertifikanın verildiği ana bilgisayar adlarından biriyle eşleşir

ICertificateValidator Arabirimi aşağıdaki gibi uygulayın:

  • PerformSystemValidation() yukarıda açıklandığı gibi bir sistem doğrulaması gerçekleştirilecekse döndürmelidir true . Bu durumda, sistem doğrulama sonucu yöntemine ValidateCertificate() giriş olarak geçirilir.
  • ValidateCertificate() sertifika zincirini doğrulamalı ve son doğrulama sonucuyla geçirilen geri çağırmayı çağırmalıdır CertificateValidated() . Bu yöntem sertifika zincirini, bağlantının kurulmakta olduğu sunucunun adını ve iptal denetiminin zorlanıp zorlanmayacağını kabul eder. Sertifika zinciri birden çok sertifika içeriyorsa, ilki konu sertifikasıdır.

Not

Kullanım örneğiniz farklı bir doğrulama biçimi gerektiriyorsa (yukarıdaki sertifika kullanım örneği #1'e bakın), sistem doğrulamayı tamamen atla. Bunun yerine, sertifika zincirinin kodunu çözmek ve kullanım örneğiniz için gereken denetimleri gerçekleştirmek için DER ile kodlanmış X.509 sertifikalarını işleyebilen herhangi bir API veya kitaplık kullanın.

Ayrıca Bkz.