WCF, Réclamations, ADFS 3.0

J’essaie de comprendre ce dont j’ai besoin pour développer un cadre à l’aide de WCF, Claims et ADFS 3.0. Les utilisateurs internes s’authentifieront auprès d’Active Directory, les utilisateurs externes s’authentifieront sur une table SQL Server et l’autorisation sera stockée dans des tables de firebase database mettant en œuvre des groupes et des permissions. Je crée une API en utilisant WCF pas Web Api ou OWIN.

L’utilisation d’Identity Server ou de produits tiers ne m’intéresse pas. Je souhaite simplement savoir comment créer un service de jetons de sécurité personnalisé à lire dans ma table d’appartenance et à définir les revendications via ma table Groupes et permissions.

Je ne trouve aucune information à ce sujet. Il n’y a pas de contrôle d’identité et d’access dans Visual Studio 2015 et rien ne semble utiliser WCF, mais uniquement Web Api, OWIN et MVC?

Cet article semble être un bon début pour vous, http://southworks.com/blog/2007/03/11/the-holly-grail-of-enterprise-soa-security/

et voici le code que j’utilise dans mon application MVC (pas WCF, mais beaucoup de choses à faire sont les mêmes)

var claims = new List() { new Claim(ClaimTypes.Name, result.UserName), new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", result.Email), new Claim("http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider", result.Email), new Claim("UserId", result.Id.ToSsortingng(CultureInfo.InvariantCulture)), new Claim("UserName", result.UserName), new Claim("FirstName", result.FirstName) }; //load claims from database here claims.AddRange(result.Roles.Select(role => new Claim(ClaimTypes.Role, role.Name))); var id = new ClaimsIdentity(claims, "Forms"); var cp = new ClaimsPrincipal(id); var token = new SessionSecurityToken(cp) { IsPersistent = false }; Session["authToken"] = token; var sam = FederatedAuthentication.SessionAuthenticationModule; sam.WriteSessionTokenToCookie(token); 

Lorsque je développe une application WCF compatible avec les revendications comme la vôtre, j’ai parcouru ce lien qui m’a permis de comprendre son fonctionnement. La seule chose qui ne correspond pas vraiment à vos besoins, c’est qu’il ne s’agit pas d’ADFS 3.0.

Et je ne pense pas que vous puissiez utiliser à la fois ADFS pour les utilisateurs internes et SQL pour les utilisateurs externes “similaires”, en même temps / ensemble. Tout ce que je sais, c’est que vous pouvez faire confiance aux systèmes ADFS d’autres sociétés en tant que fournisseurs d’identité.

Si vous vous référez à Comment construire des revendications avec connaissance de WCF, voici quelques liens disponibles.

  • Comment configurer et appeler un service WCF sécurisé par ADFS 2.0
  • Déclarations conscientes WCF utilisant WIF dans .Net 4.5
  • Comment intégrer l’authentification ADFS pour le service WCF

Néanmoins, le lien qui prend en charge .Net 4.5 et 4.6 est toujours actif et WIF fait déjà partie du cadre contrairement à ce qu’il fallait auparavant pour installer WIF.

Ci-dessous se trouve le fragment de la configuration de mon service WCF:

Fixations

             

Configuration de l’identité

                    

Configuration de fragment de mon client WCF

           http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmesortingcKey 256 http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p http://www.w3.org/2001/04/xmlenc#aes256-cbc http://www.w3.org/2000/09/xmldsig#hmac-sha1 http://www.w3.org/2001/10/xml-exc-c14n# http://www.w3.org/2001/04/xmlenc#aes256-cbc                    

Information additionnelle :

  • J’ai utilisé ADFS 2.0 avec l’authentification UserName avec les informations d’identification ajoutées dans notre répertoire actif.
  • L’ajout d’une partie de confiance n’a pas été discuté ici, mais nécessaire.
  • Un certificate pour le cryptage / décryptage de jeton est également requirejs (partie de AFDS)
  • Ajout de revendications dans ADFS

J’espère que cette information pourrait vous aider!