web-dev-qa-db-fra.com

Serveur d'identité 4 avec SAML 2.0 en tant que fournisseur d'identité externe pour SSO

J'utilise le serveur d'identité 4 pour l'authentification à ma solution ASP.Net Core. Et cela fonctionne bien avec Facebook, Google et d'autres fournisseurs d'identité externes. Et maintenant, j'essaie d'ajouter l'authentification SAML 2.0 au serveur d'identité à l'aide de Sustainsys.Saml2 de https://github.com/Sustainsys/Saml2 et de le faire fonctionner en tant que fournisseur d'identité externe. (Les clients de notre site souhaitent se connecter en utilisant leur fournisseur d'identité SAML en utilisant notre serveur d'identité de la même manière qu'ils peuvent se connecter via Facebook, Google, etc.)

Et ce que j'ai maintenant c'est

  1. uRL de connexion - https://sso.domain.com/saml/idp/profile/redirectorpost/sso

  2. déconnexion URL - https://sso.domain.com/saml/idp/profile/post/sls

  3. Certificat CRT pour le fournisseur d'identité basé sur SAML de notre client.

Cependant, je ne trouve pas le document qui décrit comment installer la configuration de SAML 2.0 dans le fichier startup.cs du serveur d'identité 4. Je pense que la configuration devrait ressembler à ce qui suit sur la base de l'exemple disponible sur: https://github.com/Sustainsys/Saml2/blob/master/Samples/SampleAspNetCore2ApplicationNETFramework/Startup.cs

services.AddAuthentication()
    .AddSaml2(options => 
        {
            options.SPOptions.EntityId = new EntityId("..."); 
            options.IdentityProviders.Add(
                new IdentityProvider(
                        new EntityId("..."), options.SPOptions)
                        {
                            LoadMetadata = true,
                        });
            options.SPOptions.ServiceCertificates.Add(new X509Certificate2("..."));
       }
    );

Dans l'exemple, il y a deux URL

  1. https: // localhost: 44342/Saml2

  2. http: // localhost: 52071/Métadonnées

Que représentent ces ?

Quelqu'un peut-il me dire comment configurer toutes les options pour SAML2 dans le serveur d'identité 4?

10
Jay
  1. est l'ID d'entité de votre application - correspondant à l'ID client dans open id connect.
  2. est l'ID d'entité de l'idp amont.

Il existe un exemple d'IdSrv4 dans une autre branche: https://github.com/Sustainsys/Saml2/tree/netstandard/Samples/SampleIdentityServer4

L'exemple utilise la version d'aperçu pour .NET Core, mais la configuration est fondamentalement la même.

Il existe des exemples IdentityServer4 fonctionnels dans https://github.com/Sustainsys/Saml2/tree/master/Samples

11
Anders Abel