Ú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:
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.
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
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.
Á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ékfalse
.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).
Á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.
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.
Ha a CertificateValidationMode
ChainTrust
tulajdonság értéke vagyPeerOrChainTrust
é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álatbanPeerTrust
vagyCustom
érvényesítési módban.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
<issuedTokenAuthentication>
Elem létrehozása elem gyermekként<serviceCredentials>
.Állítsa az
allowUntrustedRsaIssuers
elemtrue
attribútumát arra az<issuedTokenAuthentication>
esetre, ha önkibocsátó jogkivonatot, például CardSpace-kártyát hitelesít.<knownCertificates>
Elem létrehozása az elem gyermekeként<issuedTokenAuthentication>
.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 astoreLocation
,storeName
,x509FindType
ésfindValue
attribútumok használatával.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.