ProHoster > Blog > administracja > Doświadczenie w wykorzystaniu technologii Rutoken do rejestracji i autoryzacji użytkowników w systemie (część 3)
Doświadczenie w wykorzystaniu technologii Rutoken do rejestracji i autoryzacji użytkowników w systemie (część 3)
Dzień dobry!
W poprzedniej części Z sukcesem stworzyliśmy własne centrum certyfikacji. Jak może się to przydać do naszych celów?
Za pośrednictwem lokalnego urzędu certyfikacji możemy wystawiać certyfikaty, a także weryfikować podpisy na tych certyfikatach.
Wydając użytkownikowi certyfikat, urząd certyfikacji korzysta ze specjalnego żądania certyfikatu Pkcs#10, które ma format pliku „.csr”. To żądanie zawiera zakodowaną sekwencję, którą urząd certyfikacji wie, jak poprawnie przeanalizować. Żądanie zawiera zarówno klucz publiczny użytkownika, jak i dane do wytworzenia certyfikatu (tablica asocjacyjna z danymi o użytkowniku).
O tym, jak otrzymać wniosek o certyfikat, przyjrzymy się w następnym artykule, a w tym artykule chcę podać główne polecenia urzędu certyfikacji, które pomogą nam wykonać nasze zadanie po stronie backendu.
Najpierw musimy więc stworzyć certyfikat. W tym celu używamy polecenia:
openssl ca -batch -in user.csr -out user.crt
ca to polecenie openSSL powiązane z urzędem certyfikacji,
-batch - anuluje żądania potwierdzenia podczas generowania certyfikatu.
user.csr — żądanie utworzenia certyfikatu (plik w formacie .csr).
user.crt - certyfikat (wynik polecenia).
Aby to polecenie zadziałało, urząd certyfikacji musi być skonfigurowany dokładnie tak, jak opisano w poprzedniej części artykułu. W przeciwnym razie konieczne będzie dodatkowe określenie lokalizacji certyfikatu głównego urzędu certyfikacji.
cms to polecenie openSSL używane do podpisywania, weryfikowania, szyfrowania danych i innych operacji kryptograficznych przy użyciu openSSL.
-verify - w tym przypadku weryfikujemy certyfikat.
Authenticate.cms - plik zawierający dane podpisane certyfikatem wydanym poprzednim poleceniem.
-inform PEM - używany jest format PEM.
-CAfile /Users/……/demoCA/ca.crt - ścieżka do certyfikatu głównego. (bez tego polecenie u mnie nie zadziałało, chociaż ścieżki do ca.crt zostały zapisane w pliku openssl.cfg)
-out data.file — wysyłam odszyfrowane dane do pliku data.file.
Algorytm korzystania z urzędu certyfikacji po stronie zaplecza jest następujący:
Rejestracja Użytkownika:
Otrzymujemy żądanie utworzenia certyfikatu i zapisania go do pliku user.csr.
Zapisujemy pierwsze polecenie tego artykułu do pliku z rozszerzeniem .bat lub .cmd. Uruchamiamy ten plik z kodu, po wcześniejszym zapisaniu żądania utworzenia certyfikatu do pliku user.csr. Otrzymujemy plik z certyfikatem user.crt.
Odczytujemy plik user.crt i wysyłamy go do klienta.
Autoryzacja użytkownika:
Otrzymujemy od klienta podpisane dane i zapisujemy je do pliku Authenticate.cms.
Zapisz drugie polecenie z tego artykułu w pliku z rozszerzeniem .bat lub .cmd. Uruchamiamy ten plik z kodu, po uprzednim zapisaniu podpisanych danych z serwera w pliku Authenticate.cms. Otrzymujemy plik z odszyfrowanymi danymi data.file.
Odczytujemy plik data.file i sprawdzamy te dane pod kątem ważności. Opisano co dokładnie sprawdzić w pierwszym artykule. Jeśli dane są prawidłowe, autoryzację użytkownika uważa się za pomyślną.
Do implementacji tych algorytmów można użyć dowolnego języka programowania, który służy do pisania backendu.
W następnym artykule przyjrzymy się, jak pracować z wtyczką Retoken.