Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.Net ADFS令牌加密证书私钥_C#_Asp.net_Single Sign On_Adfs - Fatal编程技术网

C# ASP.Net ADFS令牌加密证书私钥

C# ASP.Net ADFS令牌加密证书私钥,c#,asp.net,single-sign-on,adfs,C#,Asp.net,Single Sign On,Adfs,根据这个链接 我已经在依赖方上设置了令牌加密证书,并将公钥导出到ADFS提供程序 我需要在asp.net web.config中做哪些更改才能描述这些声明。我目前使用System.Security.Claims.ClaimsPrincipal类收回声明在启用ADFS作为身份提供者时,对web.config进行了大量更改。我经常发现简单地创建一个新的MVC项目,并使用更改身份验证向导来选择ADF更容易。输入详细信息后,它将自动使用所需设置更新web.config,然后您可以将其复制到另一个项目 下

根据这个链接

我已经在依赖方上设置了令牌加密证书,并将公钥导出到ADFS提供程序


我需要在asp.net web.config中做哪些更改才能描述这些声明。我目前使用
System.Security.Claims.ClaimsPrincipal
类收回声明

在启用ADFS作为身份提供者时,对web.config进行了大量更改。我经常发现简单地创建一个新的MVC项目,并使用更改身份验证向导来选择ADF更容易。输入详细信息后,它将自动使用所需设置更新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>


当然,您必须将这些值替换为您自己环境的相应值。

现在让它为任何其他环境工作。需要在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>


以下哪项是令牌加密证书的私钥?如果我没记错,证书必须安装在计算机个人存储的服务器上,并且私钥可用。然后,如果我没有错,您可以通过将其指纹放在ADFS服务器上的证书部分AH中来指定要使用的证书?我说的是由依赖方创建并出口给adfs提供商的证书是的,这就是我所想到的。我已经忘记了接力会的签名,因为它不是我们在任何设置中使用的东西。你确定你需要它吗,因为它是一个可选功能是的,adfs提供商坚持使用它,但是我找不到任何关于如何修改we.config来解密声明的帮助