SAML/ADFS node.js guide de mise en œuvre?
Je voudrais commencer en disant que, jusqu'à maintenant, je n'avais même pas ENTENDU parler de SAML, beaucoup moins développé, un SSO stratégie d'implication. Cela, combiné avec le fait que je ai à peine fait nœud pour un an pour un glorieux newbie sandwich. Actuellement, j'ai un client qui utilise SAML et ADFS comme leur fournisseur d'authentification unique. Je suis déjà à l'aide de passport.js pour les connexions locales, l'utilisation d'un passeport-saml semble être la voie à suivre pour mettre en œuvre l'authentification unique à l'aide de SAML/ADFS. En faisant mes recherches, j'ai trouvé un couple de différents guides de mise en œuvre, mais depuis que j'ai littéralement ne sais RIEN à propos de ce processus, j'ai pu utiliser quelques conseils.
Dans le passeport-saml documentation, j'ai trouvé le suivant pour une stratégie prouvée à travailler avec ADFS (selon les docs):
{
entryPoint: 'https://ad.example.net/adfs/ls/',
issuer: 'https://your-app.example.net/login/callback',
callbackUrl: 'https://your-app.example.net/login/callback',
cert: 'MIICizCCAfQCCQCY8tKaMc0BMjANBgkqh ... W==',
identifierFormat: null
}
Je suppose que ma question principale est de savoir d'où vient cette cert vient? Est-ce une cert-je générer sur mon serveur via le protocole SSL? Le fournisseur de fournir?
Dans mes recherches, j'ai également trouvé ceci: https://github.com/auth0/passport-wsfed-saml2, qui est basé sur le passeport-saml. La configuration suivante est suggérée pour ADFS:
{
path: '/login/callback',
realm: 'urn:node:app',
homeRealm: '', //optionally specify an identity provider
identityProviderUrl: 'https://auth10-dev.accesscontrol.windows.net/v2/wsfederation',
cert: 'MIIDFjCCAf6gAwIBAgIQDRRprj9lv5 ... ='
}
Dans cet exemple, le chemin de l'objet, c'est évident, et mon fournisseur m'a déjà donné un providerURL. Mais le royaume n'a pas de sens pour moi, et il y a ce fameux cert de nouveau.
Quelqu'un pourrait-il me fournir un "expliquer-comme-je-cinq" la voie de la mise en œuvre de SAML/ADFS l'authentification unique dans un node.js site? Ou m'aider à faire des têtes ou queues de l'argument objets demandés par les deux solutions que j'ai décrit? Très apprécié à l'avance!
- Avez-vous fait des progrès avec cette?
- ADFS est une sorte de complexe de la bête dans son propre droit. Donc - pour commencer ... Ce qui est le but de cette application? Êtes-vous juste essayer d'utiliser ADFS comme un fournisseur d'authentification unique? (SAML -> Security Assertion Markup Language en.wikipedia.org/wiki/Security_Assertion_Markup_Language)
Vous devez vous connecter pour publier un commentaire.
J'ai récemment passés par le même processus de pensée: n'ayant jamais entendu parler de SAML, j'ai besoin d'activer une application web pour authentifier via SAML avec OneLogin que le fournisseur d'identité (au lieu de Active Directory).
Lors de la mise en œuvre, j'ai fait une utilisation intensive de OneLogin de la documentation et de la
passport-saml
de la bibliothèque, les deux que je recommande, même si je ne suis pas affilié avec les deux.Ce que je suis venu à réaliser est que la confusion était triple:
(1) comment SAML œuvres,
(2) comment la
passport-saml
de la bibliothèque fonctionne en Nœud, et(3) comment faire pour configurer le fournisseur d'identité (OneLogin, Active Directory, ou autre). Ce qui suit est une tentative de ma part à un "expliquer-comme-je-cinq" explication.
SAML
Security Assertion Markup Language (SAML) est un standard XML, qui permet aux utilisateurs de se connecter en se basant sur leur session de navigateur. Il y a beaucoup à elle, mais, fondamentalement, il permet une simplification de la procédure d'authentification. Un utilisateur peut cliquer sur un bouton plutôt que de soumettre un formulaire avec nom d'utilisateur et mot de passe.
La façon SAML est un peu plus impliqué. J'ai trouvé cette vue d'ensemble de OneLogin et le diagramme utile:
Le diagramme représente le processus suivant:
Nœud et
passport-saml
Passport.js l'authentification est middleware pour le Nœud. Il nécessite une stratégie, qui pourrait être quelque chose comme
passport-local
ou, dans notre cas,passport-saml
.Comme le
passport-local
stratégie permet de Passeport grâce à l'authentification par nom d'utilisateur/mot de passe, lepasseport-saml
stratégie permet l'authentification Passport à l'aide de la session du navigateur et configurable fournisseur d'identités de valeurs.Tout
passport-saml
servi mes fins vraiment bien, ses docs ont été difficile à la raison, à travers. L'exemple de configuration ne fonctionne pas à cause depuis le OpenIdp fournisseur d'identité est inactif et il y a beaucoup de paramètres configurables.Le principal, je m'y intéressai:
entryPoint
etpath
(oucallbackURL
). Je n'avais besoin que de ces deux, effectuez les opérations suivantes:entryPoint
est l'URL de redirection avec la demande d'autorisation (voir #2 ci-dessus).path
/callbackURL
définir l'URL/route de Nœud pour la réponse SAML être Publié (voir #3 ci-dessus).Il y a une tonne d'autres paramètres qui sont importantes et précieuses, mais il est possible de configurer SAML SSO à l'aide de ces deux.
Fournisseur d'identité de configuration
Enfin, le fournisseur d'identité lui-même doit être configuré de sorte que, étant donné un SAML demande d'autorisation, il sait où envoyer la réponse SAML. Dans le cas de OneLogin, cela signifie que la fixation d'un
ACS (Consumer) URL
et unACS (Consumer) URL Validator
, qui doit correspondre à lapath
/callbackURL
configuré pour passeport-saml.D'autres choses peuvent être configurés (à l'appui de déconnexion et d'autres caractéristiques), mais c'est le minimum pour s'authentifier.
Résumé
Il y avait deux parties à la question initiale: (1) comment mettre en œuvre SAML/ADFS d'intégration et (2) de haut niveau SAML node.js guide de mise en œuvre. Cette réponse traite de la deuxième.
Qu'à des fins spécifiquement l'intégration avec Active Directory, je recommande passeport-saml de docs sur ADFS, en gardant à l'esprit qu'il y a deux parties: la configuration de passeport-saml pour utiliser ADFS fournisseur d'identité ET la configuration de votre serveur ADFS pour répondre à Nœud.
J'ai peut-être tort ici, mais je crois que ça vient des serveurs ADFS XML trouvé à
https://servername/FederationMetadata/2007-06/FederationMetadata.xml
.Tirer la X509Certificate. J'ai les mêmes questions et je vais essayer la prochaine.
Comme pour la première partie de votre question, le certificat provient du fournisseur. Jetez un oeil à la passeport-saml de la documentation.
Suffit de tirer sur l'Identité du Fournisseur public de signature de certificat (X. 509) et assurez-vous de formater le PEM de codage. Le formaté correctement codés en PEM certificat commencera avec
-----BEGIN CERTIFICATE-----
et à la fin avec-----END CERTIFICATE-----
.