2011-12-16 3 views
3

J'ai une situation intéressante que je n'ai pas réussi à résoudre. Voici l'environnement dans lequel s'exécute mon application Silverlight.Modèle de sécurité - Partie Web SharePoint 2010 de Silverlight appelant le service WCF

Nous avons un intranet SharePoint 2010 qui est l'hôte principal de l'application. Sur une page Web, nous avons un composant WebPart Silverlight qui contient l'application. Nous utilisons le modèle d'objet client pour déterminer qui est l'utilisateur connecté de SharePoint. Les utilisateurs de cette application accèdent au site SharePoint OUTSIDE du domaine AD qu'ils utilisent pour se connecter; ce qui signifie qu'ils ont un compte AD, mais leurs ordinateurs font partie de différents domaines. L'application Silverlight effectue des appels vers un service WCF via https via le protocole SOAP. La question est, comment puis-je sécuriser les services de sorte que le seul demandeur valide est l'application Silverlight lorsqu'il est appelé depuis le contexte d'un utilisateur SharePoint connecté?

Chaque utilisateur final a un compte AD créé pour lui. Le site SharePoint est un extranet qui nécessite que chaque utilisateur se connecte en utilisant ses informations d'identification AD. Cependant, aucun utilisateur final n'accède à un site à partir d'un ordinateur faisant partie du domaine.

J'ai essayé d'utiliser l'authentification Windows, mais nous devons exiger que l'utilisateur ne soit pas invité à se connecter (aux services Web) après s'être déjà connecté à SharePoint. J'ai essayé d'utiliser le modèle objet client pour "passer" l'authentification/les informations d'identification au service, mais pas de chance là-bas.

Nous devons désactiver l'authentification anonyme avant d'aller vivre, donc je dois trouver un moyen de sécuriser les services, mais ne pas faire les utilisateurs se connecter une deuxième fois dans l'application.

Répondre

0

out of the box vous ne pouvez pas, silverlight ne peut pas déléguer à un service externe pour des raisons de sécurité. Ce que vous pouvez faire est de sécuriser votre canal WCF via une autre méthode (certificat basé par exemple) et envoyer manuellement le nom d'utilisateur actuel. À la fin de SharePoint, vous pouvez ensuite emprunter l'identité de l'utilisateur.

Ce sera une chose très délicate à faire quand même :)

Questions connexes