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.
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’espère que cette information pourrait vous aider!