Also, was ich versucht habe, war so etwas wie
Code: Select all
private static Dictionary _saml2OptionsDict = new Dictionary();
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.Properties["host.AppName"] = "AppName";
ConfigureIdentityProvider("provider1", "SamlEntityId.1", "IdPEntityId.1", "MetadataUrl.1", "ECMCLoantrackerDev.cer");
ConfigureIdentityProvider("provider2", "SamlEntityId.2", "IdPEntityId.2", "MetadataUrl.2", "LT Test app.cer");
app.UseSaml2Authentication(GetSaml2Options(("provider1")));
app.UseSaml2Authentication(GetSaml2Options(("provider2")));
}
private void ConfigureIdentityProvider(string providerKey, string samlEntityIdKey, string idpEntityIdKey, string metadataUrlKey, string certName)
{
var saml2Options = new Saml2AuthenticationOptions(false)
{
SPOptions = new Sustainsys.Saml2.Configuration.SPOptions
{
EntityId = new Sustainsys.Saml2.Metadata.EntityId(ConfigurationManager.AppSettings[samlEntityIdKey]),
ReturnUrl = new Uri(ConfigurationManager.AppSettings["ExternalLoginCallbackUrl"])
}
};
var idp = new Sustainsys.Saml2.IdentityProvider(
new Sustainsys.Saml2.Metadata.EntityId(ConfigurationManager.AppSettings[idpEntityIdKey]),
saml2Options.SPOptions)
{
MetadataLocation = ConfigurationManager.AppSettings[metadataUrlKey],
Binding = Sustainsys.Saml2.WebSso.Saml2BindingType.HttpRedirect
};
idp.SigningKeys.AddConfiguredKey(
new X509Certificate2(
HostingEnvironment.MapPath(
"~/App_Data/" + certName)));
saml2Options.IdentityProviders.Add(idp);
_saml2OptionsDict[providerKey] = saml2Options;
}
public static Saml2AuthenticationOptions GetSaml2Options(string providerKey)
{
return _saml2OptionsDict.ContainsKey(providerKey) ? _saml2OptionsDict[providerKey] : null;
}
Code: Select all
var saml2Options = Startup.GetSaml2Options(provider);
HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/Account/ExternalLoginCallback" }, saml2Options.AuthenticationType);
Wie gesagt, ich bin in diesem Bereich nur ein Anfänger. Ist das, was ich versuche, überhaupt möglich?