2016-03-18 3 views
0

По этой ссылке https://blogs.technet.microsoft.com/askpfeplat/2015/03/01/adfs-deep-dive-onboarding-applications/ASP.Net ADFS Токен Encrytion сертификат закрытого ключа

Я создал символический сертификат шифрования на проверяющей стороне, и экспортировать открытый ключ поставщика ADFS

Какие изменения Мне нужно сделать в моем asp.net web.config, чтобы иметь возможность дешифровать эти претензии. В настоящее время я использую класс System.Security.Claims.ClaimsPrincipal, чтобы получить претензии назад

ответ

1

Имейте это сейчас, для любого другого. В web.config необходимо изменить следующее. Замените XXXX вашим отпечатком сертификата

<system.identityModel.services> 
    <federationConfiguration> 
     <serviceCertificate> 
     <certificateReference x509FindType="FindByThumbprint" findValue="XXXX" storeLocation="LocalMachine" storeName="My" /> 
     </serviceCertificate> 
     <cookieHandler requireSsl="false" /> 
     <wsFederation ... /> 
    </federationConfiguration> 

    </system.identityModel.services> 
1

В приложении для веб-приложений ADFS внесено немало изменений при включении ADFS в качестве поставщика удостоверений. Мне часто проще просто создать новый проект MVC и использовать мастер проверки подлинности изменений, чтобы выбрать ADFS. После того, как вы введете данные, он автоматически обновит файл web.config с необходимыми настройками, которые затем можно скопировать в другой проект.

Ниже я попытался перечислить все записи, которые требуются, однако я, возможно, пропустил некоторые из них.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    <section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    <appSettings> 
    <add key="ida:FederationMetadataLocation" value="https://YOURADFS/FederationMetadata/2007-06/FederationMetadata.xml" /> 
    <add key="ida:Realm" value="https://YOURURL/" /> 
    <add key="ida:AudienceUri" value="https://YOURURL/" /> 
    </appSettings> 
    <system.web> 
    <machineKey validationKey="YOURMACHINEKEY" decryptionKey="YOURDECRYPTIONKEY" validation="SHA1" decryption="AES" /> 
    </system.web> 
    <system.webServer> 
    <modules> 
     <add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> 
     <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> 
    </modules> 
    </system.webServer> 
    <system.identityModel> 
    <identityConfiguration> 
     <audienceUris> 
     <add value="https://YOURURL/" /> 
     </audienceUris> 
     <securityTokenHandlers> 
     <add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     </securityTokenHandlers> 
     <certificateValidation certificateValidationMode="None" /> 
     <issuerNameRegistry type="System.IdentityModel.Tokens.ValidatingIssuerNameRegistry, System.IdentityModel.Tokens.ValidatingIssuerNameRegistry"> 
     <authority name="http://YOURADFS/adfs/services/trust"> 
      <keys> 
      <add thumbprint="YOURCERTIFICATETHUMB" /> 
      </keys> 
      <validIssuers> 
      <add name="http://YOURADFS/adfs/services/trust" /> 
      </validIssuers> 
     </authority> 
     </issuerNameRegistry> 
    </identityConfiguration> 
    </system.identityModel> 
    <system.identityModel.services> 
    <federationConfiguration> 
     <cookieHandler requireSsl="true" name="YOURCOOKIENAME" /> 
     <wsFederation passiveRedirectEnabled="true" issuer="https://YOURADFS/adfs/ls/" realm="https://YOURURL/" requireHttps="true" /> 
    </federationConfiguration> 
    </system.identityModel.services> 
</configuration> 

Вы, естественно, должны заменить эти значения соответствующими значениями для своей собственной среды.

+1

какой из них является закрытым ключом для сертификата виртуализации токенов? – tichra

+0

Если я правильно помню, сертификат должен быть установлен на сервере в персональном магазине компьютера с доступным закрытым ключом. Затем вы указываете, какой сертификат использовать, поместив свой отпечаток в раздел CodedBeard

+0

. Ах, это сертификат на сервере ADFS, если я не ошибаюсь? Я говорю о сертификате, созданном сторонником Relying, и экспортируется в провайдера adfs. – tichra