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


Útmutató: Hitelesítő adatok konfigurálása összevonási szolgáltatásban

A Windows Communication Foundationben (WCF) összevont szolgáltatás létrehozása a következő fő eljárásokból áll:

  1. WSFederationHttpBinding Egyéni kötés konfigurálása. A megfelelő kötések létrehozásával kapcsolatos további információkért lásd : WSFederationHttpBinding létrehozása.

  2. IssuedTokenServiceCredential A szolgáltatásnak bemutatott jogkivonatok hitelesítésének módját vezérlő konfigurálás.

Ez a témakör a második lépés részleteit ismerteti. Az összevont szolgáltatások működésével kapcsolatos további információkért lásd: Összevonás.

A IssuedTokenServiceCredential tulajdonságainak beállítása kódban

  1. IssuedTokenAuthentication Az osztály tulajdonságával ServiceCredentials egy példányra mutató hivatkozást ad IssuedTokenServiceCredential vissza. A tulajdonság az osztály tulajdonságából Credentials ServiceHostBase érhető el.

  2. Állítsa be a tulajdonságot arra az AllowUntrustedRsaIssuers true esetre, ha önkibocsátott jogkivonatokat, például CardSpace-kártyákat szeretne hitelesíteni. Az alapértelmezett érték false.

  3. Töltse ki a tulajdonság által KnownCertificates visszaadott gyűjteményt az X509Certificate2 osztály példányaival. Minden példány egy kiállítót jelöl, amelyről a szolgáltatás hitelesíti a jogkivonatokat.

    Feljegyzés

    A tulajdonság által ScopedCertificates visszaadott ügyféloldali gyűjteménytől eltérően az ismert tanúsítványgyűjtemény nem kulcsos gyűjtemény. A szolgáltatás elfogadja azokat a jogkivonatokat, amelyeket a megadott tanúsítványok a kibocsátott jogkivonatot tartalmazó üzenetet küldő ügyfél címétől függetlenül kibocsátanak (a jelen témakör későbbi részében ismertetett további korlátozásokra is figyelemmel).

  4. Állítsa a CertificateValidationMode tulajdonságot az X509CertificateValidationMode enumerálási értékek egyikére. Ez csak kódban végezhető el. Az alapértelmezett érték ChainTrust.

  5. Ha a CertificateValidationMode tulajdonság be van állítva Custom, rendelje hozzá az egyéni X509CertificateValidator osztály egy példányát a CustomCertificateValidator tulajdonsághoz.

  6. Ha a CertificateValidationMode ChainTrust tulajdonság értéke vagy PeerOrChainTrustértéke, állítsa a RevocationMode tulajdonságot a számbavétel megfelelő értékére X509RevocationMode . Vegye figyelembe, hogy a visszavonási mód nincs használatban PeerTrust vagy Custom érvényesítési módban.

  7. Szükség esetén rendeljen hozzá egy egyéni SamlSerializer osztálypéldányt a SamlSerializer tulajdonsághoz. Egyéni biztonsági helyességi jelölőnyelvre (SAML) van szükség például az egyéni SAML-állítások elemzéséhez.

A IssuedTokenServiceCredential tulajdonságainak beállítása konfigurációban

  1. <issuedTokenAuthentication> Elem létrehozása elem gyermekként<serviceCredentials>.

  2. Állítsa az allowUntrustedRsaIssuers elem true attribútumát arra az <issuedTokenAuthentication> esetre, ha önkibocsátó jogkivonatot, például CardSpace-kártyát hitelesít.

  3. <knownCertificates> Elem létrehozása az elem gyermekeként<issuedTokenAuthentication>.

  4. Hozzon létre nulla vagy több <add> elemet az <knownCertificates> elem gyermekeként, és adja meg, hogyan keresse meg a tanúsítványt a storeLocation, storeName, x509FindTypeés findValue attribútumok használatával.

  5. Szükség esetén állítsa az samlSerializer elem attribútumát <issuedTokenAuthentication> az egyéni SamlSerializer osztály típusnevére.

Példa

Az alábbi példa egy IssuedTokenServiceCredential kód tulajdonságait állítja be.

// This method configures the IssuedTokenAuthentication property of a ServiceHost.
public static void ConfigureIssuedTokenServiceCredentials(
    ServiceHost sh, bool allowCardspaceTokens, IList<X509Certificate2> knownissuers,
    X509CertificateValidationMode certMode, X509RevocationMode revocationMode, SamlSerializer ser )
{
  // Allow CardSpace tokens.
  sh.Credentials.IssuedTokenAuthentication.AllowUntrustedRsaIssuers = allowCardspaceTokens;

  // Set up known issuer certificates.
  foreach(X509Certificate2 cert in knownissuers)
    sh.Credentials.IssuedTokenAuthentication.KnownCertificates.Add ( cert );

  // Set issuer certificate validation and revocation checking modes.
  sh.Credentials.IssuedTokenAuthentication.CertificateValidationMode =
      X509CertificateValidationMode.PeerOrChainTrust;
  sh.Credentials.IssuedTokenAuthentication.RevocationMode = X509RevocationMode.Online;
  sh.Credentials.IssuedTokenAuthentication.TrustedStoreLocation = StoreLocation.LocalMachine;

  // Set the SamlSerializer, if one is specified.
  if ( ser != null )
    sh.Credentials.IssuedTokenAuthentication.SamlSerializer = ser;
}
' This method configures the IssuedTokenAuthentication property of a ServiceHost.
Public Shared Sub ConfigureIssuedTokenServiceCredentials( _
    ByVal sh As ServiceHost, _
    ByVal allowCardspaceTokens As Boolean, _
    ByVal knownissuers As IList(Of X509Certificate2), _
    ByVal certMode As X509CertificateValidationMode, _
    ByVal revocationMode As X509RevocationMode, _
    ByVal ser As SamlSerializer _
    )
    ' Allow CardSpace tokens.
    sh.Credentials.IssuedTokenAuthentication.AllowUntrustedRsaIssuers = _
    allowCardspaceTokens

    ' Set up known issuer certificates.
    Dim cert As X509Certificate2
    For Each cert In knownissuers
        sh.Credentials.IssuedTokenAuthentication.KnownCertificates.Add(cert)
    Next cert
    ' Set issuer certificate validation and revocation checking modes.
    sh.Credentials.IssuedTokenAuthentication.CertificateValidationMode = _
        X509CertificateValidationMode.PeerOrChainTrust
    sh.Credentials.IssuedTokenAuthentication.RevocationMode = _
    X509RevocationMode.Online

    ' Set the SamlSerializer, if one is specified.
    If Not (ser Is Nothing) Then
        sh.Credentials.IssuedTokenAuthentication.SamlSerializer = ser
    End If
End Sub

Ahhoz, hogy egy összevont szolgáltatás hitelesíthessen egy ügyfelet, a következőnek kell teljesülnie a kibocsátott jogkivonatra vonatkozóan:

  • Ha a kibocsátott jogkivonat digitális aláírása RSA biztonságikulcs-azonosítót használ, a AllowUntrustedRsaIssuers tulajdonságnak meg kell lennie true.

  • Ha a kibocsátott jogkivonat aláírása X.509 kiállítói sorozatszámot, X.509 tulajdonoskulcs-azonosítót vagy X.509 ujjlenyomat biztonsági azonosítót használ, a kibocsátott jogkivonatot az osztály tulajdonsága IssuedTokenServiceCredential által KnownCertificates visszaadott gyűjteményben lévő tanúsítvánnyal kell aláírni.

  • Ha a kibocsátott jogkivonatot X.509-tanúsítvánnyal írták alá, a tanúsítványnak a tulajdonság értéke CertificateValidationMode által megadott szemantika szerint kell érvényesítenie, függetlenül attól, hogy a tanúsítványt a függő entitásnak X509RawDataKeyIdentifierClause küldték-e, vagy a KnownCertificates tulajdonságból szerezték be. Az X.509-tanúsítványérvényesítésről további információt a Tanúsítványok használata című témakörben talál.

Ha például úgy állítja be a beállítást, hogy PeerTrust hitelesítse azokat a CertificateValidationMode kibocsátott jogkivonatokat, amelyek aláíró tanúsítványa a TrustedPeople tanúsítványtárolóban található. Ebben az esetben állítsa a tulajdonságot vagy CurrentUser LocalMachinea TrustedStoreLocation . Választhat más módokat is, például Custom. Ha Custom be van jelölve, hozzá kell rendelnie az X509CertificateValidator osztály egy példányát a CustomCertificateValidator tulajdonsághoz. Az egyéni érvényesítő az általa kívánt feltételek alapján érvényesítheti a tanúsítványokat. További információ : Egyéni tanúsítvány-érvényesítőt alkalmazó szolgáltatás létrehozása.

Lásd még