Logowanie do Studio WMS.net przebiega w dwóch etapach. Najpierw Windows weryfikuje nazwę i hasło, a potem aplikacja sprawdza, czy konto znajduje się na liście użytkowników w jej bazie i jakie ma uprawnienia. Oba etapy wymagają poprawnie skonfigurowanego serwera IIS i bazy Microsoft SQL Server.
Spis treści
- Uwierzytelnianie Windows i autoryzacja w aplikacji
- Dostęp anonimowy w domyślnej witrynie IIS
- Tworzenie witryny WWW w IIS
- Instalacja SQL Server i połączenie z bazą
- Diagnostyka najczęstszych problemów z logowaniem
- Konta Windows a role w aplikacji
- Pytania i odpowiedzi o logowanie do WMS i konfigurację IIS
- Glosariusz pojęć związanych z logowaniem do WMS
Uwierzytelnianie Windows i autoryzacja w aplikacji
System uwierzytelniania jest złożonym procesem, dlatego aplikacja korzysta z mechanizmów dostępnych w środowisku Visual Studio i ASP.NET. Z kilku metod w programie wybiera się standardowe uwierzytelnianie Windows w IIS. Aplikacja jest skonfigurowana do pracy w sieci lokalnej oraz z dostępem przez Internet.
Uwierzytelnianie Windows oznacza, że trzeba założyć użytkowników systemu Windows i nadać im prawa do aplikacji w IIS albo do bazy SQL, a czasem do obu. Po uruchomieniu aplikacji serwer Windows prosi o nazwę użytkownika i hasło. Dopiero po poprawnej weryfikacji następuje logowanie do aplikacji, czyli sprawdzenie listy użytkowników w jej bazie.
| Etap | Kto weryfikuje | Co sprawdza | Gdzie leży wynik |
|---|---|---|---|
| Uwierzytelnienie | Windows i serwer IIS | nazwę użytkownika i hasło konta | system operacyjny lub domena |
| Autoryzacja w aplikacji | aplikacja WMS | czy konto jest na liście użytkowników i jakie ma uprawnienia | baza danych aplikacji |
| Dostęp do bazy | SQL Server | parametry połączenia zapisane w Web.config | plik w głównym folderze aplikacji |
Podział na dwa etapy ma praktyczną konsekwencję. Konto Windows może istnieć i przejść uwierzytelnienie, a mimo to nie wejść do programu, bo nie ma go na liście użytkowników aplikacji. Odwrotny przypadek jest niemożliwy, ponieważ pierwszy etap zatrzymuje użytkownika bez konta. Szersze omówienie zasad bezpieczeństwa dostępu zawiera strona o logowaniu i autoryzacji w systemie WMS.
Dostęp anonimowy w domyślnej witrynie IIS
Domyślnie założona witryna w serwerze IIS może mieć włączony dostęp anonimowy. Skutek jest natychmiastowy: serwer nie pyta użytkownika o nazwę i hasło. Program uruchomiony w tym trybie pozwala korzystać z niego użytkownikowi nieokreślonemu, więc pierwszy etap logowania w ogóle nie działa.
Ostrzeżenie techniczne: po utworzeniu witryny dla Studio WMS.net należy wyłączyć dostęp anonimowy i włączyć uwierzytelnianie Windows. Sprawdzenie wymaga otwarcia witryny w przeglądarce z konta, które nie ma uprawnień. Jeśli strona otwiera się bez pytania o dane, dostęp anonimowy nadal jest włączony.
- Dostęp anonimowy. Ustawienie wyłączone, bo przy włączonym serwer nie weryfikuje tożsamości.
- Uwierzytelnianie Windows. Ustawienie włączone, bo to ono wywołuje okno z prośbą o nazwę i hasło.
- Konta użytkowników. Założone w systemie Windows lub w domenie, z prawem do aplikacji w IIS.
- Prawa do bazy. Nadane tylko tym kontom, które łączą się z SQL Server bezpośrednio.
Sposób działania w sieci lokalnej i przez Internet opisuje strona o pracy w sieci lokalnej lub przez Internet. Przy dostępie z Internetu połączenie powinno być szyfrowane protokołem HTTPS, bo dane logowania przechodzą wtedy przez sieć publiczną.
Tworzenie witryny WWW w IIS
Do poprawnej pracy potrzebny jest serwer z systemem operacyjnym, serwerem stron WWW (IIS) i silnikiem bazy MS SQL. Instalacja aplikacji polega na utworzeniu witryny WWW i umieszczeniu aplikacji w wybranym, predefiniowanym katalogu. Programy SoftwareStudio Group Sp. z o.o. korzystają z technologii Microsoft, więc obowiązują zalecenia producenta dla zestawu IIS i SQL Server.
Witrynę tworzy się z konta administratora serwera. W Menedżerze usług internetowych wybiera się polecenie utworzenia nowej witryny sieci Web i przechodzi przez kreatora. Parametry, o które pyta kreator, zestawia tabela.
| Parametr kreatora | Co ustawić | Uwaga |
|---|---|---|
| Opis witryny | nazwa identyfikująca witrynę | używana tylko wewnętrznie w Menedżerze usług internetowych |
| Adres IP | konkretny adres albo Wszystkie (nieprzypisane) | druga opcja udostępnia witrynę na wszystkich interfejsach i adresach IP |
| Port TCP | numer portu publikacji | domyślnie port standardowy, inny wymaga podania w adresie |
| Nagłówek hosta | nazwa, pod którą użytkownicy wchodzą na stronę | musi być rzeczywistą nazwą używaną do dostępu |
| Katalog macierzysty | folder z plikami aplikacji | wskazywany przyciskiem Przeglądaj |
| Uprawnienia dostępu | prawa dostępu do witryny | wybierane przed zakończeniem kreatora |
Zmiana konfiguracji istniejącej witryny
Po instalacji IIS domyślną konfigurację witryny zmienia się we właściwościach witryny, dostępnych po kliknięciu jej nazwy prawym przyciskiem myszy. Zmiany obejmują dwie karty i kończą się zatwierdzeniem przyciskiem OK.
- Karta Witryna sieci Web. Zawiera opis witryny oraz adres IP z portem TCP, które można zmodyfikować bez ponownego tworzenia witryny.
- Karta Katalog macierzysty. Wskazuje folder lokalny, z którego serwer czyta aplikację, i pozwala go zmienić przyciskiem Przeglądaj.
Nazwy kart i okien pochodzą ze starszych wersji IIS. W nowszych wersjach Windows Server te same ustawienia leżą w Menedżerze IIS, w oknie powiązań witryny i w ustawieniach jej katalogu. Zasada pozostaje ta sama: administrator ustala adres witryny i folder aplikacji.
Instalacja SQL Server i połączenie z bazą
Aby korzystać z baz Microsoft SQL Server, trzeba zainstalować i skonfigurować serwer bazodanowy. Instalator, na przykład w wersji Express, pobiera się ze strony producenta i uruchamia zgodnie z instrukcją. Zwykle instalacja przebiega w trybie standardowym z ustawieniami domyślnymi. Po jej zakończeniu instaluje się narzędzie Management Studio, które służy do zarządzania bazą.
Wybór edycji ma wpływ na limity bazy. Ograniczenia wersji Express opisuje strona o SQL Express, a zestawienie edycji i składników zawiera dokumentacja edycji SQL Server. Utrzymanie bazy po instalacji omawia strona o zarządzaniu bazą danych SQL.
Parametry połączenia w pliku Web.config
Połączenie z bazą jest zapisane w pliku Web.config w głównym folderze aplikacji. Użytkownik loguje się i autoryzuje do bazy w sposób jednolity dla wszystkich modułów, więc zmiana serwera bazy wymaga edycji jednego miejsca. Przykład poniżej jest ilustracyjny, a nazwy serwera i bazy są umowne.
<connectionStrings>
<add name="WMS"
connectionString="Server=SERWER\SQLEXPRESS;Database=WMS;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />
</connectionStrings>
Parametr Integrated Security=SSPI oznacza, że aplikacja łączy się z bazą kontem Windows, na którym działa jej proces w IIS. Alternatywą jest login SQL z hasłem zapisanym w pliku, co wymaga ochrony tego pliku. Konto procesu aplikacji musi mieć w bazie odpowiednie prawa, które nadaje administrator.
CREATE LOGIN [DOMENA\svc_wms] FROM WINDOWS;
USE WMS;
CREATE USER [DOMENA\svc_wms] FOR LOGIN [DOMENA\svc_wms];
ALTER ROLE db_datareader ADD MEMBER [DOMENA\svc_wms];
ALTER ROLE db_datawriter ADD MEMBER [DOMENA\svc_wms];
Zestaw instrukcji tworzy login z konta Windows, powiązanego użytkownika w bazie i dwie role: odczytu i zapisu danych. Rzeczywisty zakres uprawnień zależy od aplikacji, a zasada brzmi: najmniejsze prawa, które wystarczą do pracy.
Reguła: hasło do bazy nie powinno leżeć w Web.config jawnym tekstem. Sekcję z parametrami połączenia można zaszyfrować narzędziem platformy ASP.NET, a przy logowaniu kontem Windows hasła w pliku nie ma wcale.
Diagnostyka najczęstszych problemów z logowaniem
Większość kłopotów po instalacji wynika z jednego z czterech miejsc, w których łańcuch logowania się zrywa. Objaw wskazuje, na którym etapie szukać przyczyny, więc diagnozę zaczyna się od pytania, co dokładnie zobaczył użytkownik.
| Objaw | Najczęstsza przyczyna | Działanie |
|---|---|---|
| Strona otwiera się bez pytania o nazwę i hasło | włączony dostęp anonimowy w witrynie | wyłączyć dostęp anonimowy, włączyć uwierzytelnianie Windows |
| Okno hasła wraca po każdej próbie | konto bez prawa do aplikacji w IIS | nadać prawa do katalogu i witryny |
| Konto przechodzi serwer, ale program odmawia wejścia | brak konta na liście użytkowników aplikacji | dopisać użytkownika i przypisać rolę |
| Błąd połączenia z bazą po wejściu do programu | login lub parametry w Web.config | sprawdzić nazwę serwera, bazy i prawa konta procesu |
Każdy z tych przypadków da się odtworzyć na koncie testowym. Warto więc przed uruchomieniem produkcyjnym założyć konto z minimalnymi prawami i przejść całą ścieżkę logowania, zamiast sprawdzać ją z konta administratora, które omija większość ograniczeń.
Konta Windows a role w aplikacji
Konto Windows otwiera drzwi do aplikacji, ale o tym, co użytkownik zobaczy w menu, decyduje lista użytkowników w bazie aplikacji. Administrator zakłada więc konto w systemie, a następnie dopisuje je w programie i przypisuje rolę. Podział ról, od magazyniera po administratora, opisuje strona o rolach i użytkownikach w systemie WMS.
Taki układ ułatwia pracę w firmie, która ma już domenę. Wyłączenie konta pracownika w domenie odcina go od programu bez zmiany w aplikacji. Całość konfiguracji opisuje strona o konfiguracji programu magazynowego, a sam charakter aplikacji strona o aplikacji internetowej WMS.
Pytania i odpowiedzi o logowanie do WMS i konfigurację IIS
W dwóch etapach. Najpierw serwer Windows prosi o nazwę użytkownika i hasło, a po poprawnej weryfikacji aplikacja sprawdza, czy konto jest na liście użytkowników w jej bazie i jakie ma uprawnienia.
Domyślnie założona witryna w IIS może mieć włączony dostęp anonimowy. W tym trybie serwer nie weryfikuje tożsamości, więc program pozwala korzystać z niego użytkownikowi nieokreślonemu. Trzeba wyłączyć dostęp anonimowy i włączyć uwierzytelnianie Windows.
System operacyjny, serwer stron WWW (IIS) i silnik bazy Microsoft SQL Server. Instalacja polega na utworzeniu witryny WWW i umieszczeniu aplikacji w predefiniowanym katalogu.
W pliku Web.config w głównym folderze aplikacji. Logowanie do bazy jest więc jednolite dla wszystkich modułów aplikacji.
Instalator może być w wersji Express, pobierany ze strony producenta. Trzeba jednak uwzględnić limity tej edycji, które zależą od ilości danych i liczby operacji w magazynie.
Glosariusz pojęć związanych z logowaniem do WMS
- Uwierzytelnianie Windows
- Metoda potwierdzania tożsamości, w której serwer Windows weryfikuje nazwę użytkownika i hasło konta.
- Autoryzacja
- Określenie, do jakich funkcji i danych ma dostęp uwierzytelniony użytkownik, na podstawie listy użytkowników w bazie aplikacji.
- IIS
- Serwer stron WWW firmy Microsoft, na którym działa witryna z aplikacją ASP.NET.
- Dostęp anonimowy
- Ustawienie witryny IIS, które pozwala wejść bez podawania nazwy użytkownika i hasła.
- Witryna WWW
- Konfiguracja w IIS z adresem IP, portem TCP, nagłówkiem hosta i katalogiem macierzystym aplikacji.
- Nagłówek hosta
- Nazwa, pod którą użytkownicy odwołują się do witryny, rozróżniająca kilka witryn na jednym adresie IP.
- Web.config
- Plik konfiguracyjny aplikacji ASP.NET w jej głównym folderze, który zawiera między innymi parametry połączenia z bazą.
- SQL Server Management Studio
- Narzędzie do zarządzania bazami Microsoft SQL Server, instalowane po silniku bazy.