Uwierzytelnianie ePUAP na podstawie danych z Profilu Zaufanego

Uwierzytelnianie ePUAP na podstawie danych z Profilu Zaufanego

Wątek przeniesiony 2017-11-27 13:03 z Newbie przez somekind.

Wiktor Zychla
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

Spróbowałbym

  • wczytać ten wynikowy pfx w jakimkolwiek narzędziu typu Keystore explorer - żeby sprawdzić czy tak skądinąd jest prawidłowy
  • podnieść wersję Bouncy Castle do min. 1.8.9 - w kodzie mam tam referencję do 1.8.6 i jeśli dobrze pamiętam też miałem na 1.8.6 albo wręcz taki sam albo jakiś podobny błąd
PT
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Cześć,
Wiem, że temat toczy się głównie o podpowiedziach na temat własnej implementacji i połączenia z PZ, ale myślę, że to będzie najlepsze miejsce na znalezienie wsparcia, którego szukam.

Poszukuję osoby, która już ma doświadczenie w tym temacie i pomoże wdrożyć nam do rozwiązania, które już posiadamy opartego głównie na PHP połączenia z PZ i przekazywania do podpisu dokumentu, a następnie weryfikacji i odbioru tego pliku. Mamy już przygotowany formularz i generator PDF, mamy też wszelkie certyfikaty wystawione odnośnie takiej integracji z PZ, ale problem pojawił się z poprawnym połączeniem.

Jeśli byłaby tu osoba chętna do współpracy, proszę o wiadomość prywatną, przedstawię szczegóły i myślę, że się dogadamy :)

Jurand2020
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Cześć
@Wiktor Zychla pisałeś o problemie podpisywania dokumentu kolejno przez kilka osób, spowodowanym tym, że tpsigning5 nie wylogowuje po podpisie z np. PZ.
Udało Ci się może jakoś zneutralizować ten problem? Wysyłanie usera na okno private to raczej mocno chałupnicze rozwiązanie..

Wiktor Zychla
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

Uwaga, ewentualna przestroga.

W piątek pozyskiwanie danych z dokumentów podpisanych przez TpSigning5 i pobieranych przez TpSigning5::GetSignedDocument jeszcze działało.
Dziś od rana zalała nas fala zgłoszeń, że podpisywanie przestało działać.

Gdzieś w międzyczasie, między 07-03-2025 (godziny dopołudniowe) a 10-03-2025, serwer produkcyjny ePUAP zmienił sposób kodowania metadanych o użytkowniku na TpSigning5::GetSignedDocument.

Do tej pory, od 2022, dokument miał sekcję EPSignature w której przychodziły dane imię/nazwisko/pesel/data urodzenia. W 2022 pisałem tu nawet posta że to jest jedna z różnic między tymi dwiema usługami.

Od dzisiaj rano widzimy że TpSigning5 zmienił sposób dodawania informacji o użytkowniku podpisującym na PodpisZP, czyli taki sam format w jakim dane użytkownika schodziły w TpSigning1::GetSignedDocument.

To krytyczna zmiana, łamiąca wsteczną kompatybilność usługi TpSigning5. Jeśli ktoś korzysta z OldMusicBox.ePUAP.Client to już opublikowałem wersję 1.25.3, w której podpis jest pobierany na oba sposoby, dotychczasowy i ten nowy-stary, na wypadek gdyby od strony serwera skorygowano to na powrót na EPSignature.

Na int.pz nie widzę takiej zmiany, podpis nadal schodził mi na EPSignature.

M0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 373
0

Chciałbym się zintegrować z TpSigning5, widzę tego w dokumentacji https://pz.gov.pl/Instrukcja_Integratora_PZ.pdf Case jest taki, że chcemy dodać do naszej apki podpis dokumentów PZ.
Z tego co widzę to np. dla TpSigning3 nie trzeba mieć certyfikatów tak jak dla logowania przez WK. Dobrze to rozumiem? Gdzieś trzeba się zgłaszać? Mogę integrację robić niepubliczne organizacje?

Czy po prosty zintegrować się z TpSigning3?

F0
  • Rejestracja: dni
  • Ostatnio: dni
0

Hej czy miałby ktoś gotowy kod pod php? Po ostatnich przejściach z SOAP jakoś ta integracja mnie przeraża.

Wiktor Zychla
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0
Wiktor Zychla napisał(a):

Uwaga, ewentualna przestroga.

W piątek pozyskiwanie danych z dokumentów podpisanych przez TpSigning5 i pobieranych przez TpSigning5::GetSignedDocument jeszcze działało.
Dziś od rana zalała nas fala zgłoszeń, że podpisywanie przestało działać.
[...]

Jeden z naszych partnerów, który nie zaktualizował biblioteki integracyjnej, we wtorek dał znać że podpisy znów zaczęły działać. Czyli ePUAP przywrócił sposób osadzania danych imię/nazwisko/pesel w podpisywanych dokumentach na TpSigning5 na taki jaki obowiązywał przed 10-03.

Takie tam po cichu zmiany na produkcji.

SA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Hej, próbuje wykonać addDocumentToSign

Jednak z ministerstwa dostałem klucze ec a w dokumentacji mam odpowiedzi z rsa

Jaki algorytm powinien być wybrany do zapytania ?

SA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Czy w ogóle podmiot komercyjny moze zrelizować podpis przez PZ ? nie widze wniosku o certyfikat dla podmiotów niepublicznych?

Wiktor Zychla
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

Informacyjnie - biblioteka OldMusicBox.ePUAP.Client dostała aktualizację o wersję dla NET8.
W repo na Github jest już kod klienta NET8 i demo dla NET8.

Pakiet na Nuget dla NET8 przygotuję też.

TO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Witam , Panowie potrzebuje konkretnej odpowiedzi
Czy wykorzystując tpsigning5 da się podpisać plik PDF aby w rezultacie otrzymać podpisany plik razem ze stemplem ? ,
Analogicznie jak jest to robione https://www.gov.pl/web/gov/podpisz-dokument-elektronicznie-wykorzystaj-podpis-zaufany z wykorzystaniem PAdES

F0
  • Rejestracja: dni
  • Ostatnio: dni
0

Mam problem z integracją i już trochę trace pomysły. Chce wdrożyć metodę podpisywania przez węzeł krajowy TpSigning5 od ministerstwa otrzymałem dwa certyfikaty X.509 w formacie PEM, bez klucza prywatnego. Sprawdzałem kod Pana Wiktora i innych ale zawsze jest wymagany plik p12, a z tego co mam nie jestem w stanie go stworzyć. W jaki sposób mam do tego podejść, czy na pewno mam wszystko co jest potrzebne bo szczerze mówiąc wydaje mi się jakby czegoś brakowało albo po prostu nie wiem jak tego użyć. Na tym etapie chodzi oczywiście jedynie o środowisko integracyjne

Wiktor Zychla
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

Uzyskanie keystore (p12) z kluczem prywatnym jest opisane w dokumentacji jako instrukcja kilkukrokowa. Instrukcja jest na epuap / strefa urzędnika / dla integratorów / integracja / Instrukcja generowania żądania certyfikatu do komunikacji z ePUAP oraz PZ.

https://epuap.gov.pl/wps/wcm/connect/92c64f1f-081e-4641-8bc8-651cb8205fac/ePUAP+-+Instrukcja+generowania+%C5%BC%C4%85dania+certyfikatu+do+komunikacji+z+ePUAP+oraz+PZ_v1.1.pdf?MOD=AJPERES

Tam jest to opisane szczegółowo, więc w skrócie:

  1. tworzy się sobie lokalnie keystore z certyfikatem i kluczem prywatnym (p12),
  2. tworzy się żądanie podpisania certyfikatu (csr)
  3. na maila zwrotnie dostaje się odpowiedź (txt, swój certyfikat podpisany ichnim), którą trzeba zaimportować do keystore.

Odpowiedź od COI która zawiera "certyfikaty X.509 w formacie PEM bez klucza prywatnego" ma postać txt i to jest krok 3. Technicznie - zawiera certyfikat podpisany przez urząd (oryginalny nie jest przez nikogo podpisany bo jest wygenerowany lokalnie). Ta odpowiedź nie zawiera klucza prywatnego bo przecież użytkownik już go ma w keystore.

Jeśli więc ten plik o którym mowa wygląda tak

Subject: CN=foo.bar....
Issuer: CN=INT_ePUAPiPZ
-----BEGIN CERTIFICATE-----
MIIDZjCCAk6gAwIBA......
-----END CERTIFICATE-----
Subject: CN=INT_ePUAPiPZ
Issuer: CN=INT_ePUAPiPZ
-----BEGIN CERTIFICATE-----
MIIDEzCCAfugAwIBA....
-----END CERTIFICATE-----

to jest to właśnie ta ich odpowiedź z kroku 3 - certyfikat podpisany ichnim.

A to z kolei znaczy że według instrukcji powyżej należy ich odpowiedź połączyć z posiadanym już keystore (tym z którego wygenerowano csr i im przesłano, na który oni właśnie odpowiedzieli).

I teraz:

  • albo jest się w posiadaniu oryginalnego keystore (bo brało się udział w tym procesie od początku) - wtedy się wykonuje krok 3 z instrukcji (keytool -import ...)
  • albo się trafiło w proces w ostatnim kroku i nie posiada się danych z poprzednich kroków - wtedy trzeba zidentyfikować kogoś w organizacji kto ma ten oryginalny keystore

Z przypadkiem drugim już spotkałem się klika razy. W organizacji ktoś zainicjował proces, przygotował keystore, wygenerował z niego csr, potem mija chwila, COI przysyła odpowiedź a ponieważ wygląda ona jak certyfikat (bo jest nim, tylko nie ma tam klucza prywatnego), daje się to komuś innemu mówiąc mu "masz, zrób", nie informując tego kogoś że gdzieś ktoś ma ten wyjściowy p12.

Raz było już nawet tak że kontaktowano się z prośbą o pomoc, komuś dano te odpowiedzi (txt) ale oryginalny keystore generował ktoś inny kto go w międzyczasie usunął, bo nie doczytał instrukcji i przegapił że to będzie potrzebne.

Wtedy proces trzeba powtórzyć od kroku 1, natomiast, to od dawna prawie od ręki działa, tworzy się to żądanie, przez int.epuap składa się wniosek o wygenerowanie certyfikatu, na stronie wniosku wgrywa się ten CSR a odpowiedź na maila przychodzi nawet tego samego dnia.

F0
  • Rejestracja: dni
  • Ostatnio: dni
0
Wiktor Zychla napisał(a):

Uzyskanie keystore (p12) z kluczem prywatnym jest opisane w dokumentacji jako instrukcja kilkukrokowa. Instrukcja jest na epuap / strefa urzędnika / dla integratorów / integracja / Instrukcja generowania żądania certyfikatu do komunikacji z ePUAP oraz PZ.

https://epuap.gov.pl/wps/wcm/connect/92c64f1f-081e-4641-8bc8-651cb8205fac/ePUAP+-+Instrukcja+generowania+%C5%BC%C4%85dania+certyfikatu+do+komunikacji+z+ePUAP+oraz+PZ_v1.1.pdf?MOD=AJPERES

Tam jest to opisane szczegółowo, więc w skrócie:

  1. tworzy się sobie lokalnie keystore z certyfikatem i kluczem prywatnym (p12),
  2. tworzy się żądanie podpisania certyfikatu (csr)
  3. na maila zwrotnie dostaje się odpowiedź (txt, swój certyfikat podpisany ichnim), którą trzeba zaimportować do keystore.

Odpowiedź od COI która zawiera "certyfikaty X.509 w formacie PEM bez klucza prywatnego" ma postać txt i to jest krok 3. Technicznie - zawiera certyfikat podpisany przez urząd (oryginalny nie jest przez nikogo podpisany bo jest wygenerowany lokalnie). Ta odpowiedź nie zawiera klucza prywatnego bo przecież użytkownik już go ma w keystore.

Jeśli więc ten plik o którym mowa wygląda tak

Subject: CN=foo.bar....
Issuer: CN=INT_ePUAPiPZ
-----BEGIN CERTIFICATE-----
MIIDZjCCAk6gAwIBA......
-----END CERTIFICATE-----
Subject: CN=INT_ePUAPiPZ
Issuer: CN=INT_ePUAPiPZ
-----BEGIN CERTIFICATE-----
MIIDEzCCAfugAwIBA....
-----END CERTIFICATE-----

to jest to właśnie ta ich odpowiedź z kroku 3 - certyfikat podpisany ichnim.

A to z kolei znaczy że według instrukcji powyżej należy ich odpowiedź połączyć z posiadanym już keystore (tym z którego wygenerowano csr i im przesłano, na który oni właśnie odpowiedzieli).

I teraz:

  • albo jest się w posiadaniu oryginalnego keystore (bo brało się udział w tym procesie od początku) - wtedy się wykonuje krok 3 z instrukcji (keytool -import ...)
  • albo się trafiło w proces w ostatnim kroku i nie posiada się danych z poprzednich kroków - wtedy trzeba zidentyfikować kogoś w organizacji kto ma ten oryginalny keystore

Z przypadkiem drugim już spotkałem się klika razy. W organizacji ktoś zainicjował proces, przygotował keystore, wygenerował z niego csr, potem mija chwila, COI przysyła odpowiedź a ponieważ wygląda ona jak certyfikat (bo jest nim, tylko nie ma tam klucza prywatnego), daje się to komuś innemu mówiąc mu "masz, zrób", nie informując tego kogoś że gdzieś ktoś ma ten wyjściowy p12.

Raz było już nawet tak że kontaktowano się z prośbą o pomoc, komuś dano te odpowiedzi (txt) ale oryginalny keystore generował ktoś inny kto go w międzyczasie usunął, bo nie doczytał instrukcji i przegapił że to będzie potrzebne.

Wtedy proces trzeba powtórzyć od kroku 1, natomiast, to od dawna prawie od ręki działa, tworzy się to żądanie, przez int.epuap składa się wniosek o wygenerowanie certyfikatu, na stronie wniosku wgrywa się ten CSR a odpowiedź na maila przychodzi nawet tego samego dnia.

Panie Wiktorze bardzo dziękuje, pozwoliło to popchnąć sprawę do przodu

F0
  • Rejestracja: dni
  • Ostatnio: dni
0

Czy miałby ktoś możliwość odpalenia mojego skryptu u siebie, niestety nadal mi nie działa i w tym momencie nie wiem czy jest to wina tego, że coś źle zrobiłem po stronie kodu czy może jednak jest to wina po stronie certyfikatu(brak aktywacji etc). Skrypt jest w PHP

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.