好的,我正在使用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
答案 0 :(得分:0)
您必须手动从配置中读取值并在创建方法中指定它们。
您可以使用FederatedAuthentication或IdentityConfiguration从配置中读取。