2013-10-07 6 views
2

J'ai beaucoup lu sur OpenID et OAuth mais j'ai eu du mal à faire quelques connexions sur la façon dont ils fonctionneraient dans une architecture basée sur les services.Conseil sur OpenID/OAuth sur les services RESTful de l'API Web ASP.NET

Voici mon scénario:

  • Je vous écris de nouveaux services API Web ASP.NET (RESTful/JSON)
  • Ces services seront utilisés par les applications clientes (site web du bureau actuel, nouveau site Web mobile, et peut-être un site Web PHP ou JavaScript client uniquement dans le futur)
  • Notre site de bureau actuellement utilise fournisseur d'appartenances ASP.NET (WebForms)

Le nouvel ensemble de services d'API que nous créons doit gérer tout, y compris l'authentification et l'autorisation.

Mes questions sont les suivantes:

  • Puisque nous avons un contrôle explicite sur les applications clientes accédant à notre API (à savoir ce n'est pas une API publique mais plutôt pour l'intégration de partenaires agréés) ne nous nécessairement besoin OAuth?
  • Est-ce que OpenID remplacerait notre fonctionnalité d'adhésion .NET ou la compléterait? Étant donné que nous aurions besoin d'authentifier les utilisateurs avec le système hérité utilisant le fournisseur d'adhésion, devons-nous utiliser une sorte de fournisseur .NET OpenID, ou nous authentifions comme d'habitude et accordons à l'utilisateur un jeton d'adhésion comme nous le faisons actuellement faire?

Je suppose que, en résumé:

  • Je vous écris de nouveaux services
  • Ils devraient être utilisables par toute application client approuvé, pour les utilisateurs de cette application cliente
  • Nous devons continuer à soutenir nos données d'adhésion .NET

Désolé, ce sont des questions de base, mais je suis sûr qu'ils sont facilement répondus. Je vous remercie!

Répondre

5

Regardez Identity ThinkTecture serveur

https://github.com/thinktecture/Thinktecture.IdentityServer.v2

Il utilise des modèles de référentiel pour les magasins d'utilisateurs, et utilise le fournisseur d'appartenances par défaut comme le magasin d'utilisateurs - vous seriez en mesure de plug-in facilement votre fournisseur d'appartenances héritées . OpenID connect fonctionnerait au-dessus de votre fournisseur d'appartenances, et vous autoriseriez l'option à autoriser seulement les parties de confiance enregistrées - ce qui signifie que seuls vos clients approuvés (applications) y auraient accès.

Cela semble être un ajustement parfait - espérons que cela aide.

Matt

+0

Merci Matt. J'y jetterais un œil! Très apprécié pour la suggestion. – trnelson