Bir ADFS'den gelen kullanıcıları desteklemek için Azure ACS ile yeni bir auth yöntemi eklemeye çalışıyorum ancak çok özel bir sorun yaşıyorum. Ne olduğunu ValidateToken iddiaları incelemek durumundaMVC'de Ws-Federasyon Kimlik Doğrulaması SAML2.0 doğrulamasından sonra İddia bilgilerini tutma
public class SamlSecurityTokenHandlerEx : Saml2SecurityTokenHandler, ISecurityTokenValidator
{
public override bool CanReadToken(string securityToken)
{
return base.CanReadToken(XmlReader.Create(new StringReader(securityToken)));
}
public ClaimsPrincipal ValidateToken(string securityToken, TokenValidationParameters validationParameters,
out SecurityToken validatedToken)
{
validatedToken = ReadToken(new XmlTextReader(new StringReader(securityToken)), Configuration.ServiceTokenResolver);
var claims = new ClaimsPrincipal(ValidateToken(validatedToken));
return claims;
}
public int MaximumTokenSizeInBytes { get; set; }
}
:
var audienceRestriction = new AudienceRestriction(AudienceUriMode.Never);
var issuerRegistry = new ConfigurationBasedIssuerNameRegistry();
issuerRegistry.AddTrustedIssuer("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "https://XXXX.accesscontrol.windows.net/");
app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
{
MetadataAddress = "https://XXXXX.accesscontrol.windows.net/federationmetadata/2007-06/federationmetadata.xml",
Wtrealm = "http://someurl/",
SecurityTokenHandlers = new SecurityTokenHandlerCollection
{
new EncryptedSecurityTokenHandlerEx(new X509CertificateStoreTokenResolver(StoreName.My,StoreLocation.LocalMachine)),
new SamlSecurityTokenHandlerEx
{
CertificateValidator = X509CertificateValidator.None,
Configuration = new SecurityTokenHandlerConfiguration()
{
IssuerNameRegistry = issuerRegistry,
AudienceRestriction = audienceRestriction
}
}
},
});
böyle uygulanan işleyicisi olarak: Aşağıdaki yapılandırma ile SAML2.0 doğrulamak mümkün değilim
kimliği doğrulanmış ve istemleri ile ancak geri arama sayfasını çağırdıktan sonra (webapp için yeni bir uygun giriş oluşturmak istiyorum) Artık Federasyon yetkisi hakkında herhangi bir bilgi yok.