好吧,我使用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