2010-12-14 5 views
0

J'écris mon propre fournisseur OpenId en utilisant DotNetOpenAuth. Ce fournisseur ne sera utilisé que par une partie utilisatrice de chacun de mes sites. En d'autres termes, c'est un fournisseur fermé. En tant que tel, je veux personnaliser l'OP afin qu'il ne s'authentifie que dans certaines circonstances comme suit. Lorsque le site/la partie de confiance # 1 s'authentifie, l'utilisateur doit simplement passer le test d'authentification. Lorsque le site/la partie de confiance # 2 s'authentifie, l'utilisateur doit réussir le test d'authentification mais doit également avoir d'autres données existantes récupérées par l'OP.Personnalisation DotNetOpenAuth OP pour l'authentification

C'est très bien pour le RP d'informer le PO de l'exigence. Comment devrais-je l'implémenter?

Dois-je utiliser une sorte de PAPE sur mesure (comment puis-je faire cela?) Ou peut-être par le biais d'attributs Exchange (comment puis-je faire cela?) Ou d'une autre manière (comment puis-je faire cela?)

Répondre

0

Le RP peut demander à l'OP des informations supplémentaires sur l'utilisateur authentifiant via AX. C'est probablement la façon la plus simple et la plus appropriée de le faire. Les classes pertinentes dans DotNetOpenAuth pour utiliser AX pour cela sont FetchRequest et FetchResponse.

Vous pouvez faire votre OP pour répondre uniquement aux demandes auth de votre liste blanche RPs en vérifiant la propriété IHostProcessedRequest.Realm à l'OP, et en ajoutant une assurance supplémentaire en cochant la méthode IHostProcessedRequest.IsReturnUrlDiscoverable() retourne RelyingPartyDiscoveryResult.Success.