Table of Contents

Konfiguracja dodatkowych komponentów na zasobach Azure

Microsoft Azure to rozbudowana platforma chmurowa umożliwiająca tworzenie, wdrażanie i zarządzanie różnorodnymi usługami oraz aplikacjami. Dzięki wielu dostępnym narzędziom, pozwala na elastyczne dostosowanie środowiska do specyficznych potrzeb biznesowych.

Z uwagi na ograniczenia systemu Dynamics 365 Business Central w aplikacji Polish Localization wykorzystywane są wybrane komponenty Microsoft Azure.

Obecnie komponenty Microsoft Azure są wykorzystywane wyłącznie do obsługi procesów integracji z Krajowym Systemem e-Faktur (KSeF).

Do obsługi niektórych funkcjonalności związanych z KSeF konieczne jest skonfigurowanie dodatkowych usług w ramach Azure Functions. Są to:

  • wysyłka faktur w paczkach do KSeF,
  • odbieranie faktur w paczkach z KSeF,
  • obsługa certyfikatów KSeF do autoryzacji oraz do podpisu.

Konfiguracja usługi Azure Functions na zasobach Microsoft Azure klienta

Pliki z kodem źródłowym niezbędne do przeprowadzenia konfiguracji na zasobach klienta są dostępne na stronie aplikacji Polish Localization na Portalu produktów IT.integro na zakładce Downloads, Releases w folderze Additional Components, Azure Functions. Folder zawiera pliki z kodem źródłowym funkcji utworzonych w ramach Azure Functions implementujące trzy funkcjonalności. Funkcje są pogrupowane w podfolderach:

  • AESEncrypt - wysyłka faktur w paczkach do KSeF,
  • AESDecrypt - odbieranie faktur KSeF w paczkach,
  • ECDSA - funkcjonalność certyfikatów KSeF.
  • NSeIXMLtoPDF - funkcjonalność generowania PDF z XML.

Tworzenie funkcji w usłudze Azure Functions

Dedykowane funkcje dla Polish Localization można utworzyć na portalu Microsoft Azure w usłudze Azure Functions App. W tym celu należy utworzyć Function App (aplikację funkcji) zgodnie ze standardową dokumentacją.

Azure Function dla .NET

Funkcje AESEncrypt, AESDecrypt oraz ECDSA korzystają ze środowisk .Net. Aby utworzyć Function App :

  1. Po przejściu do tworzenia Function App na zakładce Basics wprowadź nazwę w polu Function App name.
  2. W polu Runtime stack określ rodzaj stosu środowiska uruchomieniowego, wybierając .NET
  3. W polu Version wybierz isolated -8.0..
  4. Wdróż projekt zawierający funkcję do podpisu ECDSA.
  5. Skonfiguruj autentykację do funkcji: Identity Provider - Microsoft (Microsoft Entry oraz wygenerowany do niej tajny klucz klienta (secret)).

W celu konfiguracji Azure Functions w Dynamics 365 Business Central niezbędne będą:

  1. Identyfikator aplikacji (zakładka Uwierzytelnianie: Identyfikator aplikacji (klienta))
  2. Tajny klucz klienta (secret) wygenerowany dla identyfikatora utworzonej aplikacji - pole Wartość.
  3. Adres URL funkcji (Kodowanie i testowanie -> Pobierz adres URL funkcji: _master(Klucz hosta))
  4. Endpoint tokenu (Uwierzytelnianie -> Punkty końcowe: Punkt końcowy tokenu OAuth 2.0(wersja 2.0))

Kroki opisane powyżej należy wykonać dla wszystkich wymienionych wyżej funkcji. Możliwa jest konfiguracja umożliwiająca użycie wielu funkcji w jednym projekcie (aktualnie rozwiązanie to jest w fazie testów).

Azure Function dla Node.js

Funkcja NSeIXMLtoPDF korzysta ze środowiska Node.js. Aby utworzyć Function App:

  1. Po przejściu do tworzenia Function App na zakładce Basics wprowadź nazwę w polu Function App name.
  2. W polu Runtime stack określ rodzaj stosu środowiska uruchomieniowego, wybierając Node.js
  3. W polu Version wybierz 22 LTS.
  4. W polu Instance Size wpisz: 2048 MB.
  5. Wdróż projekt zawierający funkcję do generowania PDF.
  6. Skonfiguruj autentykację do funkcji: Identity Provider - Microsoft (Microsoft Entry oraz wygenerowany do niej tajny klucz klienta (secret)).

W celu konfiguracji Azure Functions w Dynamics 365 Business Central niezbędne będą:

  1. Identyfikator aplikacji (zakładka Uwierzytelnianie: Identyfikator aplikacji (klienta))
  2. Tajny klucz klienta (secret) wygenerowany dla identyfikatora utworzonej aplikacji - pole Wartość.
  3. Adres URL funkcji (Kodowanie i testowanie -> Pobierz adres URL funkcji: _master(Klucz hosta))
  4. Endpoint tokenu (Uwierzytelnianie -> Punkty końcowe: Punkt końcowy tokenu OAuth 2.0(wersja 2.0))

Certyfikaty KSeF w Aplikacji Podatnika KSeF 2.0

W ramach aplikacji Polish Localization została udostępniona obsługa certyfikatów do autoryzacji w KSeF oraz do podpisywania linku certyfikacyjnego. Dla każdego z certyfikatów podczas ich generowania tworzone są dwa pliki, które należy zapisać. Sposób generowania został opublikowany pod linkiem: Krótki film instruktarzowy publikowany na stronie ksef.podatki.gov.pl.

Uwaga

W celu wygenerowania i pobrania obu typów certyfikatów (Podpis linku do weryfikacji wystawcy, Uwierzytelnienie w systemie KSeF) ścieżkę pobrania klucza i danego certyfikatu należy przejść dwukrotnie.

Konfiguracja magazynu kluczy na zasobach Azure klienta

Aby umożliwić bezpieczne przechowywanie klucza certyfikatu oraz hasła certyfikatu, należy utworzyć dedykowane pozycje magazynu kluczy w usłudze Key Vault. Wymagany jest plik z kluczem do certyfikatu oraz hasło wygenerowane w poprzednim punkcie w Aplikacji Podatnika KSeF 2.0 .

Aby skonfigurować magazyn kluczy na zasobach Azure klienta:

  1. Utwórz magazyn kluczy (key vault) i nadaj mu nazwę.
  2. Utwórz tajny klucz klienta (secret) zapisz jego nazwę oraz przypisz mu wartość klucza certyfikatu w formacie Base64. Klucz certyfikatu generowany jest w Aplikacji Podatnika KSeF 2.0. Przykładowa komenda w PowerShell:

[Convert]::ToBase64String([IO.File]::ReadAllBytes("klucz.key")) | Out-File "klucz-b64.txt"

  1. Utwórz tajny klucz o tej samej nazwie co certyfikat z dodanym sufiksem -password i przypisz mu jako wartość hasło do certyfikatu.
  2. Nadaj dostęp do magazynu kluczy dla funkcji Azure Function, dodaj rolę Key Vault Reader (Czytelnik magazynu kluczy) oraz Key Value Certificate User (Użytkownik certyfikatu w magazynie kluczy) dla utworzonych funkcji ECDSA.

Ustawienia KSeF

W celu skonfigurowania obsługi wymienionych wyżej funkcjonalności należy wprowadzić właściwe ustawienia w Polish Localization na stronie Ustawienia KSeF, a w przypadku użycia certyfikatu KSeF prawidłowo wczytać certyfikaty do Dynamics 365 Business Central.

Definiowanie zakresu OAuth 2.0

W celu skonfigurowania komunikacji z zasobami Azure, należy wcześniej zdefiniować odpowiedni zakres dla danej Microsoft Entra.

Aby zdefiniować zakres OAuth 2.0:

  1. Wybierz ikonę Lightbulb that opens the Tell Me feature, wprowadź Ustawienia KSeF i otwórz powiązane łącze.
  2. Wybierz akcję Konfiguracja Azure Function, a następnie Zakresy OAuth 2.0.
  3. Utwórz rekord i podaj identyfikator aplikacji klienta (Microsoft Entra) z dodanym /.default oraz wprowadź opis.

Konfiguracja OAuth 2.0 do zasobów Azure

Aby właściwie uzupełnić ustawienia konfiguracji OAuth 2.0:

  1. Wybierz ikonę Lightbulb that opens the Tell Me feature, wprowadź Ustawienia KSeF i otwórz powiązane łącze.
  2. Wybierz akcję Konfiguracja OAuth 2.0.
  3. Wybierz akcję Nowy, aby utworzyć nową kartotekę konfiguracji.
  4. Na skróconej karcie Ogólne uzupełnij pola:
    • Kod - Określa unikatowy kod danej konfiguracji.
    • Opis -Określa opis konfiguracji.
  5. Na skróconej karcie Rejestracja aplikacji uzupełnij pola:
    • Identyfikator klienta - Określa identyfikator aplikacji (klienta) Microsoft Entra.
    • Endpoint - token - Określa punkt końcowy tokenu OAuth 2.0. Dodatkowe informacje na tem temat zamieszczono w sekcji Tworzenie funkcji w usłudze Azure Functions.
  6. Na skróconej karcie Tajny klucz klienta uzupełnij pola:
    • Źródło tajnego klucza klienta - Wybierz opcję Manually Defined.
  7. Na skróconej karcie Token uzupełnij pola:
    • Zakres danych tokenu - Wybierz opcję Module.
  8. Na skróconej karcie Zakresy dodaj nowy wiersz, wybierając akcję Nowy wiersz i wprowadź właściwą wartość w polu Nazwa zakresu zdefiniowaną w sekcji Definiowanie zakresu OAuth 2.0
  9. Wybierz akcję Ustaw sekret klienta i wprowadź dwukrotnie tajny klucz klienta dla aplikacji Entry ID zgodnie z opisem w sekcji Tworzenie funkcji w usłudze Azure Functions.
  10. Wybierz akcję Odśwież token, aby zweryfikować, czy ustawienia są poprawne.

Wgranie certyfikatu KSeF do Business Central

Aby wgrać certyfikaty KSeF do systemu:

  1. Wybierz ikonę Lightbulb that opens the Tell Me feature, wpisz Certyfikaty, a następnie wybierz powiązane łącze.
  2. Za pomocą akcji Nowy wgraj zapisany plik certyfikatu.
  3. Wpisz nazwę certyfikatu zgodnie z tajnym kluczem klienta określonym w polu Secret w usłudze Key Vault. Dodatkowe informacje na ten temat zamieszczono w sekcji Konfiguracja magazynu kluczy na zasobach Azure klienta.
  4. W polu nazwa Key Vault wpisz nazwę utworzonego wcześniej Key Vault.
Uwaga

W przypadku obsługi obu typów certyfikatów należy utworzyć dwie oddzielne kartoteki certyfikatów.

Konfiguracja Azure Function

Ważne

Ustawienia Azure Function definiuje się raz. Jeśli już zostały przygotowane ustawienia, nie dokonujemy ich ponownie.

Aby właściwie uzupełnić konfigurację Azure Function:

  1. Wybierz ikonę Lightbulb that opens the Tell Me feature, wprowadź Ustawienia KSeF i otwórz powiązane łącze.
  2. Wybierz akcję Konfiguracja Azure Function.
  • Aby skonfigurować szyfrowanie plików podczas wysyłki faktur w paczkach:

    1. W polu Konfiguracja OAuth 2.0 do szyfrowania plików wybierz wprowadzone wcześniej ustawienie. Zobacz: Konfiguracja OAuth 2.0 do zasobów Azure.
    2. W polu Endpoint - Szyfrowanie AES wprowadź punkt końcowy Azure Function, który jest używany do szyfrowania plików (adres URL dedykowanej funkcji). Zobacz:Tworzenie funkcji w usłudze Azure Functions.
  • Aby skonfigurować deszyfrowanie plików podczas pobierania faktur w paczkach:

    1. W polu Konfiguracja OAuth 2.0 do deszyfrowania plików wybierz wprowadzone wcześniej ustawienie. Zobacz: Konfiguracja OAuth 2.0 do zasobów Azure.
    2. W polu Endpoint - deszyfrowanie AES wprowadź punkt końcowy Azure Function, który jest używany do deszyfrowania plików (adres URL dedykowanej funkcji).
  • Aby skonfigurować autoryzację za pomocą certyfikatu KSeF:

    1. W polu Konfiguracja OAuth 2.0 dla podpisu XML autoryzacyjnego wybierz wprowadzone wcześniej ustawienie. Zobacz: Konfiguracja OAuth 2.0 do zasobów Azure.
    2. W polu Endpoint - podpisywanie XML autoryzacyjnego wprowadź punkt końcowy Azure Function, który jest używany do podpisu w celu autoryzacji (Adres URL dedykowanej funkcji).
  • Aby skonfigurować obsługę certyfikatu Offline:

    1. W polu Konfiguracja OAuth 2.0 dla podpisywania łączy do certyfikatów wybierz wprowadzone wcześniej ustawienie. Zobacz: Konfiguracja OAuth 2.0 do zasobów Azure.
    2. W polu Endpoint - link podpisu certyfikatem wprowadź punkt końcowy Azure Function, który jest używany do podpisu certyfikatem linku certyfikacyjnego (adres URL dedykowanej funkcji).
  • Aby skonfigurować obsługę generowania PDF z XML:

    1. W polu Konfiguracja OAuth 2.0 dla konwersji XML do PDF wybierz wcześniej wprowadzone ustawienie. Zobacz: [Konfiguracja OAuth 2.0 do zasobów Azure]
    2. W polu Endpoint - Konwersja XML do PDF wprowadź punkt końcowy Azure Function oraz dodaj ?nrKSeF=%1&qrCode=%2 na końcu wprowadzonego linku.

Definiowanie domyślnych certyfikatów KSeF do podpis linku do weryfikacji wystawcy oraz uwierzytelnienie w systemie KSeF

  1. Wybierz ikonę Lightbulb that opens the Tell Me feature, wprowadź Ustawienia KSeF i otwórz powiązane łącze.
  2. Wybierz odpowiedni certyfikat w polach:
    • Certyfikat uwierzytelnienia
    • Certyfikat offline

Zobacz też

Integracja z Krajowym Systemem e-Faktur