如何根据应用程序配置通过tt.idm接受SAML2令牌

时间:2012-10-24 16:11:27

标签: wif thinktecture-ident-model

好的,我正在使用Thinktecture IdentityModel 4.0(tt.idm)通过我的WebAPI接受传入的SAML2安全令牌,并将它们转换为ClaimsPrincipals。根据tt.idm附带的样本,我有一个按预期方式工作的项目。

唯一的问题是所有样本(以及扩展名为我的项目)都使用硬编码的SecurityTokenHandlerConfiguration对象,我想在我的WIF配置中使用这些设置。

所以,我现在有一些看起来像这样的东西:

 public static AuthenticationConfiguration Create()
    {
        var config = new AuthenticationConfiguration();
        var idsrvRegistry = new ConfigurationBasedIssuerNameRegistry();

        idsrvRegistry.AddTrustedIssuer("*THUMBPRINT REDACTED*", "*ISSUERNAME REDACTED*");

        var idsrvConfig = new SecurityTokenHandlerConfiguration();

        idsrvConfig.AudienceRestriction.AllowedAudienceUris.Add(new Uri("http://somerealm.com"));
        idsrvConfig.IssuerNameRegistry = idsrvRegistry;
        idsrvConfig.CertificateValidator = X509CertificateValidator.None;

        config.AddSaml2(idsrvConfig, AuthenticationOptions.ForAuthorizationHeader("SSO_SAML"));

        return config;
    }

但是,我想从我的配置中加载这些值 - 无论是通过加载microsoft.identityModel配置部分自动加载,还是......任何有意义的。

到目前为止,没有任何工作 - 例如,只是新建一个ConfigurationBasedIssuerNameRegistry会产生一个空的IssuerNameRegistry。并且加载microsoft.identityModel配置部分会产生一个基本上没有属性的配置部分。

有没有办法告诉tt.idm从当前配置加载?或者告诉WIF的方法?

我该怎么办? o.O

1 个答案:

答案 0 :(得分:0)

您必须手动从配置中读取值并在创建方法中指定它们。

您可以使用FederatedAuthentication或IdentityConfiguration从配置中读取。