2012-10-24 89 views
0

好吧,我使用Thinktecture IdentityModel 4.0(tt.idm)通过WebAPI接受传入的SAML2安全令牌并将它们转换为ClaimsPrincipals。根据tt.idm附带的示例,我有一个按我期望的方式工作的项目。如何通过基于应用程序配置的tt.idm接受SAML2令牌

唯一的问题是,所有的样品(和推而广之,我的项目)使用硬编码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

回答

0

您必须手动读取config中的值,并在Create Method中将其赋值。

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

相关问题