2012-06-28 11 views
10

Czy istnieją jakieś biblioteki SAML dla NodeJS? Wydaje się, że jest mnóstwo kodu dostępnego dla węzła, ale bez bibliotek SAML. Jeśli nie, czy istnieje powód, dla którego nie?NodeJS SAML Lib

Odpowiedz

1

naprawdę nie próbowałem tego jeszcze, ale wydaje się być to, czego szukasz: https://npmjs.org/package/passport-saml

Jest to również rodzaj nowy (wyszło po ostatnim odpowiedź została wysłana).

+1

Myślę, że nie może działać jako dostawca tożsamości, a jedynie dostawca usług (uwierzytelniania). – wizonesolutions

+0

@wizonesolutions tak, to jest oczekiwane. – cstamas

+0

Nie bardzo wiem, jaki protokół służy do oznaczania odpowiedzi, która jest możliwa tylko w znacznie późniejszym terminie, ale zaznaczenie tej odpowiedzi w każdym przypadku. – oliakaoil

8

Node.js jest wciąż nową technologią i jest najczęściej używany w startupach lub przedsiębiorstwach, które wprowadzają innowacje w czasie rzeczywistym. Dlatego też SAML nie jest popularny wśród nich, w tej przestrzeni znajdziesz więcej OAuth. SAML nie jest prostą specyfikacją do implementacji (w przeciwieństwie do czegoś takiego jak SWT lub JWT). Twardym utworem jest podpis elektroniczny, który wymaga między innymi kanonizacji XML.

Kilka miesięcy temu napisałem artykuł na temat korzystania z systemu Windows Azure ACS (który używa protokołu WS-Federation) i SimpleWebTokens z node.js

http://nodeblog.cloudapp.net/using-windows-azure-access-control-service-acs-from-a-node-app

Jeśli jesteś zainteresowany w piśmie bibliotekę dla SAML node.js daj mi znać. Jestem tym zainteresowany.

Matias

+0

Łącze jest teraz uszkodzony – Houseman

2

Tutaj masz jeden http://github.com/leandrob/saml20

var saml = require('saml20'); 

var options = { 
    publicKey: 'MIICDzCCAXygAwIBAgIQVWXAvbbQyI5Bc...', 
    audince: 'http://myservice.com/' 
} 

saml.validate(rawAssertion, options, function(err, profile) { 
    // err 

    var claims = profile.claims; // Array of user attributes; 
    var issuer = profile.issuer: // String Issuer name. 
}); 
+0

HI - Widziałem ten pakiet, ale skąd pochodzi parametr 'rawAssertion'? Czy jest to część żądania http? –

+0

rawAssertion pochodzi z samlResponse pochodzącego z serwera IDP po uwierzytelnieniu, w zasadzie samlresponse składa się z Asercji, dla tego saml20, api musisz przekazać Asercję –