Kentor.AuthServices 配置指纹验证

Kentor.AuthServices configuring thumbprint validation

如何配置 Kentor.AuthServices 以使用 WIF 中的颁发者注册表?具体来说,要根据指纹进行检查,如下例所示:

<system.identityModel>
    <identityConfiguration>
      <securityTokenHandlers>
        <securityTokenHandlerConfiguration>
          <issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089">
            <trustedIssuers>
              <add thumbprint="1111111111111" name="http://some.domain/adfs/services/trust" />
            </trustedIssuers>
          </issuerNameRegistry>
          <certificateValidation certificateValidationMode="None"/>
        </securityTokenHandlerConfiguration>
      </securityTokenHandlers>
    </identityConfiguration>
  </system.identityModel>

我试过了(在发布前删除了除 <identityProviders> 元素之外的所有内容):

  <kentor.authServices>
    <identityProviders>
      <add entityId="http://some.domain/adfs/services/trust" destinationUrl="https://some.domain/adfs/ls" allowUnsolicitedAuthnResponse="true" binding="HttpPost">
        <signingCertificate findValue="1111111111111" x509FindType="FindByThumbprint" />
      </add>
    </identityProviders>
  </kentor.authServices>

但这给了我 "Missing signing certificate configuration on Idp http://some.domain/adfs/services/trust"

有没有办法在 Kentor 中做同样的事情,或者(更好)有没有办法将现有的 WIF 配置输入 Kentor?

不,目前(版本0.12.0)无法设置自己的IssuerNameRegistry。然而,这是我正在研究的事情,作为 #145.

的一部分

然而,这个变化是不平凡的,因为它不仅仅是将配置的 IssuerNameRegistry 提供给 WIF,因为这只涵盖断言本身已签名的情况。如果签名在消息级别,验证由 AuthServices 自己完成,因此代码也必须更改为使用 IssuerNameRegistry.