2012-04-02 4 views
1

Je suis actuellement en train d'essayer de comprendre la combinaison d'Azure ACS avec l'authentification basée sur les revendications et la possibilité d'utiliser un STS personnalisé et je ne fais que lentement passer à travers les sources d'information (malheureusement peu nombreuses). Avant de passer plus d'heures à ce sujet, je voudrais confirmer si mon plan est encore possible. J'ai plusieurs rôles azurés (web + worker) qui sont accessibles sur Internet par les employés et les clients. De plus, les employés accèdent à ces rôles et applications de bureau depuis l'intérieur de notre réseau local.Azure ACS + Custom STS, possible pour un scénario hybride?

Les données utilisateur proviennent de deux sources. Notre application azur a des données d'utilisateur sur les clients et les employés, notre AD (local) seulement des employés. Pour rendre l'expérience de connexion aussi efficace (et ergonomique) que possible, lorsque vous accédez via notre réseau local, les employés doivent être automatiquement authentifiés (Windows Integrated Auth?) Sur l'application de bureau (automatiquement en raison du contexte de profil utilisateur Windows) et sur les applications azure (espérons-le sans page de connexion). Les clients, en revanche, doivent entrer leurs informations d'identification utilisateur lors de l'accès à l'application Azur, mais ne devraient pas avoir à choisir entre différentes "sources d'informations d'identification", ils devraient juste obtenir le nom d'utilisateur + mot de passe. En d'autres termes

  • visites des employés app Azure à partir du réseau local -> Auto-connexion avec des données Auth intégré/AD
  • visites des employés app Azure à partir d'Internet -> Nom d'utilisateur + formulaire Mot de passe
  • visites clients app Azure à partir d'Internet -> Nom d'utilisateur Mot de passe + forme

Tout en écrivant cette question, deux autres sont venus à l'esprit:

1) Est-il même possible de fille au to-login basé sur source/cookie/wizardry ou cela nécessiterait-il un choix manuel de l'utilisateur pour sélectionner la "Credential-Source"?

2) Si Azure ACS "sait" que le compte AD avec le nom d'utilisateur X est le même que l'utilisateur de l'application Azure Y, est-il important de savoir à quel utilisateur se connecte? L'application peut-elle accéder aux mêmes données de réclamation sur l'une ou l'autre des routes de connexion?

Répondre

0

Une chose que vous pourriez faire est de regarder les informations d'identification de l'utilisateur lorsqu'une page est demandée afin d'obtenir les informations d'authentification.

Si vous regardez ...

HttpContext.Current.User.Identity 

Vous pouvez obtenir des informations sur l'identité de l'utilisateur. S'ils sont sur le domaine, vous verrez qu'ils ont un nom de domaine et vous pouvez choisir par programme de les diriger vers une page de connexion. Permettez-moi également de dire que je n'ai jamais essayé de le faire, donc je ne sais pas s'il existe un moyen de le faire en configurant simplement quelque chose dans web.config.

1

Etes-vous sûr de vouloir avoir un STS personnalisé? Il semble que pour commencer, vous voulez simplement permettre à vos utilisateurs AD de se connecter à vos applications azur en utilisant leurs informations d'identification Windows si elles sont sur le domaine (pas d'invite de mot de passe). ADFS 2.0 et WIF faciliteront cela. En outre, si vous configurez un serveur proxy ADFS de sorte que lorsque ces mêmes utilisateurs accèdent à votre application depuis l'extérieur du domaine, ils seront invités à entrer leurs informations d'identification de domaine.Désormais, vos utilisateurs AD sont configurés, mais si vous souhaitez que vos applications soient accessibles aux utilisateurs extérieurs à votre domaine, vous pouvez fédérer ADFS avec le serveur ADFS d'une autre organisation ou utiliser ACS pour activer la connexion à l'aide de fournisseurs d'identité client tels que Google, Yahoo et LiveID, qui sont fournis en tant qu'options intégrées. Si vous introduisiez ACS comme ceci, vous configureriez votre serveur ADFS en tant que fournisseur d'identité sur votre instance ACS aux côtés de google, yahoo et autres, afin que lorsque vos utilisateurs naviguent sur votre site, ils soient invités à sélectionner le fournisseur d'identité qu'ils Je souhaite me connecter avec.

est ici un livre blanc fantastique qui montre comment utiliser ADFS pour authentifier les applications cloud:

http://www.microsoft.com/download/en/details.aspx?id=13789

informations plus détaillées sur le déploiement ADFS (telles que le déploiement du proxy ADFS) se trouve in technet.

Et pour ACS, il y a des guides et des échantillons sur la façon de l'intégrer dans des applications d'azur, et comment ajouter des fournisseurs d'identité ADFS: http://msdn.com/acs

+0

La partie sur les employés doit être exactement ce que je dois (pour le scénario des employés). Malheureusement, établir une liaison avec un client-ADFS n'est pas possible (certains clients sont des startups ou des entreprises basées sur Linux) et je ne veux pas compter sur Facebook & Co pour mes besoins d'authentification. Je vois vraiment de la valeur en permettant aux utilisateurs de s'authentifier avec leurs comptes Facebook et Google, mais pas dans une architecture comme la mienne. Basé sur ce que je ne vois pas d'autre était en plus de créer un STS personnalisé – Pharao2k

+0

Construire un STS personnalisé est une option viable, mais je vous recommande de l'enregistrer en dernier recours. Cela peut être complexe et vous devrez probablement gérer vous-même le compte utilisateur. J'ai vu beaucoup de petites boutiques et de startups qui fonctionnent sur google apps, auquel cas la configuration d'ACS pour faire confiance à google identities portée à un domaine particulier de google apps pourrait bien fonctionner pour vous. En outre, il existe des solutions de fédération Linux qui fonctionnent bien avec ADFS. PingFederate par exemple est parmi les plus populaires, mais bien sûr c'est à votre organisation partenaire de mettre en place. –

Questions connexes