2016-11-03 1 views
1

Nous avons utilisé directement U2F sur notre application web auth avec le nom d'hôte comme ID d'application (https://auth.company.com) et cela fonctionne très bien. Cependant, nous aimerions pouvoir nous authentifier avec le serveur d'authentification d'autres applications (et les noms d'hôte, par exemple https://customer.app.com) qui communiquent avec le serveur d'authentification via l'API HTTP. Je peux générer les demandes de signature et les appels d'API sans les renvoyer aux applications clientes, mais cela échoue côté serveur (serveur d'authentification) car l'ID d'application ne valide pas (les clients utilisent leurs propres noms d'hôte comme identifiant d'application). C'est compréhensible, mais comment dois-je gérer cela? J'ai lu des facettes mais je n'arrive pas à le faire fonctionner.U2F avec multi-facette App ID

L'application client JS est comme:

var registerRequests = // ... 
var signRequests = // ... 

u2f.register('http://localhost:3000/facets', registerRequests, signRequests, function(registerResponse) { 
    if (registerResponse.errorCode) { 
    return alert("Registration error: " + registerResponse.errorCode); 
    } 

    // etc. 
}); 

Cela me donne un code d'erreur 5 (erreur de délai d'attente) après un certain temps. Je ne vois aucune demande à/facettes. Y a-t-il un moyen de contourner ce problème ou est-ce que j'aboie le mauvais arbre (ou une autre forêt)?

----

Ok, donc après quelques heures de recherches sur ce; Je suis sûr que ce peu sulfureuse du plugin U2F Firefox est la source de certains de mes malheurs:

if (u.scheme == "http") 
    if (url2str(u, true) == url2str(ou, true)) 
    return resolve(challenge); 
    else 
    return reject("Not matching appID"); 

https://github.com/prefiks/u2f4moz/blob/master/ext/appIdValidator.js#L106-L110

Il est essentiellement dire, si le système du appID est http, ne permettent si elle est exactement le même que l'hôte de la page (il continue à faire le comportement pour récupérer les facettes approuvées JSON mais seulement pour https).

Je ne sais toujours pas si je suis sur la bonne voie dans la façon dont j'essaie de concevoir cela.

Répondre

0

Je n'avais pas besoin de m'inquiéter des facettes pour ma situation particulière. À la fin, je passe simplement le nom d'hôte de l'application cliente au serveur Auth via l'interface de l'API sécurisée et l'utilise comme identifiant d'application. Ça semble aller bien pour le moment.

Le problème que j'avais avec les facettes était dû à l'utilisation de http en Dev et le plugin Firefox U2F ne permettant pas cela avec des facettes JSON.