22 stycznia 2023

Raportowanie postępów w nauce - Microsoft Learn Organizational Reporting

UPDATE

Oprócz meetupów, prezentacja na temat raportowania postępów w nauce odbyła się również na Global Power Platform Bootcamp 2023, skąd można zobaczyć na Youtube nagranie. Ponadto umieściłem slajdy na swoim GitHubie.

Ostatnio miałem okazję opowiadać na Meetupie o raportowaniu postępów w nauce na platformie Microsoft Learn, co spotkało się z dużym zainteresowaniem słuchaczy. Microsoft umożliwia pobieranie informacji o zaliczonych modułach i ścieżkach szkoleniowych od prawie dwóch lat, od roku możemy również uzyskać informacje o certyfikatach Microsoft zdobytych przez pracowników naszej firmy. Oczywiście, żeby było to możliwe, prywatne konto MSID, używane do rejestracji na egzaminy i odbywania szkoleń na platformie Microsoft Learn, musimy połączyć z kontem służbowym (możemy w ten sposób dodać aż 5 kont powiązanych z różnymi tenantami Azure AD), a potem je odpiąć, jeżeli zmienimy pracę. Istotne jest, że na poziomie organizacji nie są dostępne żadne informacje wrażliwe - nawet nasz adres mailowy powiązany z kontem prywatnym.










Co ciekawe, nadal niewiele osób wie o tej funkcjonalności, a Microsoft specjalnie nie chwali się przygotowanym rozwiązaniem, całą uwagę skupiając na zachwalaniu Viva Learning. Z drugiej strony, wdrażając rozwiązania chmurowe, takie jak Azure czy M365, istotne jest podnoszenie kwalifikacji pracowników, o czym mówi Cloud Adoption Framework, więc możliwość raportowania postępów w nauce jest z punktu widzenia każdej firmy, wchodzącej w chmurę, istotnym elementem planu wdrożenia.

Wracając do szczegółów - jak skonfigurować takie raportowanie? Mając konta prywatne połączone z firmowymi (jeżeli nie interesują nas zdobywane certyfikaty, to można używać tylko firmowych kont), musimy w pierwszej kolejności skonfigurować synchronizację lub eksport danych z Microsoft Learn do naszej przestrzeni chmurowej. Sama konfiguracja synchronizacji jest bardzo prosta i wymaga od nas użycia dwóch płatnych komponentów Microsoft Azure:

  • Azure Data Share (używamy tylko opcji odbierania danych z Microsoft Learn),
  • Azure SQL Database (alternatywnie można użyć storage accounta i zapisywać dane w blobie lub data lake'u, ale przygotowany szablon korzysta z bazy SQL).

Koszty ich użycia, nawet na potrzeby dużej organizacji, są naprawdę bardzo małe - kilka do kilkudziesięciu Euro miesięcznie, w zależności od wybranych funkcji SQL. Oczywiście, musimy mieć do tego subskrypcję Microsoft Azure, ale jej uruchomienie jest banalnie proste.

Cały proces konfiguracji synchronizacji jest dobrze opisany w dokumentacji platformy Microsoft Learn, w artykule Get Started with Microsoft Learn Organizational Reporting. Żeby uruchomić proces synchronizacji danych o szkoleniach dla użytkowników, którzy logują się do Microsoft Learn kontami z naszego tenanta, musimy zalogować się do Microsoft Learn kontem z uprawnieniami Global Administratora i na stronie Get Started with Microsoft Learn Organizational Reporting musimy kliknąć przycisk Get Started.

W tym momencie zostaniemy poproszeni o wyrażenie zgody w imieniu organizacji na pobieranie danych z Microsoftu dla użytkowników logujących się do naszej organizacji.







Po wyrażeniu zgody w usłudze Data Share pojawi nam się przesłane przez Microsoft Learn zaproszenie (kolejny rysunek), które musimy potwierdzić, aby przejść do dalszych kroków konfiguracyjnych.




Teraz możemy już skonfigurować, gdzie mają być zapisywane synchronizowane z Microsoft dane






















Wymaga to zamapowania odpowiednich tabel, pobieranych z Learn'a na nasze własne (kolejny rysunek)













Jeżeli chcemy użyć przygotowanego przez Microsoft i rozbudowanego przeze mnie szablonu raportu, to wybieramy utworzoną wcześniej pustą bazę Azure SQL i mapujemy odpowiednio tabele (rysunek poniżej).

Żeby synchronizacja się powiodła, Azure SQL musi pozwolić usłudze Azure Data Share na tworzenie tabel i modyfikację danych, więc musimy dodatkowo ustawić na poziomie bazy danych uprawnienia, a także skonfigurować odpowiednio firewall dla naszej bazy. Kreator synchronizacji podpowie nam odpowiednie komendy




Wystarczy je przekopiować i wykonać w SQL Server Management Studio lub np. w konsoli webowej Azure SQL (kolejny rysunek). Jeżeli utworzyliśmy Azure Data Share z nazwą learndatashare, to musimy wykonać takie komendy:
create user "learndatashare" from external provider
exec sp_addrolemember db_datareader, "learndatashare";
exec sp_addrolemember db_datawriter, "learndatashare";
exec sp_addrolemember db_ddladmin, "learndatashare"





















Teraz możemy uruchomić synchronizację (domyślnie raz na dobę, ze wskazaniem godziny, kiedy pierwszy raz uruchomiliśmy synchronizację). Historia synchronizacji widoczna jest w konsoli Data Share.












Mamy już źródło danych w naszym Azure, z którym możemy powiązać raport, dla którego trzeba najpierw pobrać szablon z mojego githuba - https://github.com/ksagala/LearnReporting. O samym raporcie więcej informacji znajdziecie w readme w tym repozytorium, proces instalacji można również prześledzić na nagraniu mojej sesji z Power Platform Global Bootcamp 2023 na kanale Youtube.


10 stycznia 2023

Nowy Rok - nowe poprawki do Exchange

Zaczął się drugi tydzień stycznia i pojawiły się kolejne poprawki bezpieczeństwa dla systemów Exchange. Nic strasznego, ale dobrze się zabezpieczyć. Poniżej lista poprawek:

Warto dodać, że po instalacji poprawki, możliwe jest (a także zalecane) włączenie ochrony pakietów Powershell poprzez weryfikację certyfikatów - Certificate signing of PowerShell serialization payload in Exchange Server

Przy okazji Microsoft przypomina o weryfikacji certyfikatów OAuth, używanych na serwerach Exchange, dostarczając skrypt MonitorExchangeAuthCertificate.ps1, który pozwala na weryfikację i automatyczne odnawianie takich certyfikatów.

Weryfikacja, czy na wszystkich serwerach Exchange w organizacji jest aktywny certyfikat dla OAuth jest drugim warunkiem wstępnym (oprócz instalacji styczniowej poprawki), aby włączyć nową funkcjonalność. W Exchange 2016/2016 możemy ją włączyć poprzez zdefiniowanie override'a, odświeżenie konfiguracji i restart usług (kroki poniżej):

New-SettingOverride -Name "EnableSigningVerification" -Component Data -Section EnableSerializationDataSigning -Parameters @("Enabled=true") -Reason "Enabling Signing Verification"

Get-ExchangeDiagnosticInfo -Process Microsoft.Exchange.Directory.TopologyService -Component VariantConfiguration -Argument Refresh 

Restart-Service -Name W3SVC, WAS -Force

W Exchange 2013 musimy dodać klucz w rejestrach i również zrestartować usługi webowe.

  • New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\ExchangeServer\v15\Diagnostics -Name "EnableSerializationDataSigning" -Value 1 -Type String

06 stycznia 2023

Podsumowanie roku 2022

Nie wiadomo kiedy przeleciał mi rok 2022 i zaczął się kolejny. Był on trudny, ciężki i jednocześnie ciekawy. O wojnie, inflacji i pandemii nie będę pisać, skupię się na nieco bardziej osobistych tematach. Dla mnie ten rok był z jednej strony znowu mocno związany z różnymi problemami zdrowotnymi moimi i rodzinki, ale mimo wszystko udało się wiele rzeczy osiągnąć.

Ciekawy wyjazd wakacyjny, żeby w końcu pokazać córkom miejsca, którymi zachwycaliśmy się z żoną 25 lat temu (Lazurowe Wybrzeże, Prowansja i Katalonia) był na pewno dużym pozytywem (pomimo połamanej przez linie lotnicze walizki). Przez cały rok słuchałem również intensywnie książki, odkrywając autorów, których wcześniej nie znałem (np. rewelacyjny cykl o komisarzu Zakrzewskim Mieczysłąwa Gorzki), ale również wracałem do swoich ulubionych pisarzy (jak Aneta Jadowska czy Andrzej Pilipiuk). Oczywiście innych form sztuki, również starałem się nie zaniedbywać, chociaż w kinie byłem chyba rzadziej niż w teatrze (platformy streamingowe dają radę).

Po pandemii powróciły konferencje i meetupy stacjonarne, co pozwoliło zobaczyć na żywo wielu znajomych z branży, z którymi nie widziałem się od kilku lat. Na kilku konferencjach i meetupach również prowadziłem sesje (a nawet warsztaty), dobrze przyjęte przez słuchaczy, co również było satysfakcjonującym doświadczeniem. Brałem również udział w dwóch hackatonach, Power Platform i Azure (w tym drugim jako wsparcie techniczne).

Patrząc na technologie, to o ile początek roku zaczął się dla mnie od Power Platform, to później zdecydowanie skręcił w kierunku Microsoft Azure i Azure DevOps, z silną domieszką Cybersecurity. W połowie roku doszedł do tego jeszcze ciekawy projekt Power BI, ale końcówka roku znów ostro skręciła w kierunku Azure. Nie byłbym sobą gdybym nie wspomniał tutaj o Microsoft Exchange - w tym roku Microsoft w połowie roku opublikował trochę informacji na temat planowanych nowości, o czym pisałem już na blogu, we wrześniu odbyła się wirtualna konferencja MEC Technical Airlift z wieloma ciekawymi sesjami na temat Exchange, które można nadal oglądać na YouTube, zredukował ilość pakietów Cumulative Update do cyklu półrocznego (zwłaszcza, że aktualizacje wydawane są teraz tylko dla wersji 2019, co miesiąc za to wydawane były poprawki bezpieczeństwa - rok 2022 obfitował w różnego rodzaje dziury w zabezpieczeniach, niektóre nawet zero-day. Zgodnie z zapowiedziami, to rok 2023 nie przyniesie dla poczty elektronicznej wielkich zmian, ale jeżeli chodzi o inne usługi chmurowe to na pewno można spodziewać się wielu ciekawych aktualizacji. Pod koniec ubiegłego roku została również uchwalona unijna dyrektywa DORA, która powinna w tym roku trafić do poszczególnych państw, w tym Polski. 

Poznawanie tajników różnych technologii to dobra okazja do zdawania egzaminów i pod tym względem mogę uznać miniony rok za udany. Chociaż nie miałem czasu przygotować się egzaminów z innych technologii chmurowych - planowałem i poznawałem w wolnych chwilach zarówno AWS jak i GCP, to jednak zdobyłem kilka certyfikatów chmurowych Microsoft (odnowień nie będę wymieniał):

  • Microsoft Certified: Azure Solutions Architect Expert
  • Microsoft Certified: Azure Security Engineer Associate
  • Microsoft Certified: Cybersecurity Architect Expert
  • Microsoft Certified: DevOps Engineer Expert

Przy okazji programu szkoleniowego na platformie Learn, przygotowałem również dashbord raportowania postępów w nauce dla organizacji, miałem nadzieję, że skończę również post na blogu na ten temat, ale niestety, nie starczyło czasu w zeszłym roku.