dotyczy wersji 2017.1.x.x; autor: Mateusz Syrek
SharePoint Server zapewnia możliwość uwierzytelniania użytkowników opartego na rozszerzeniach Claims.
Daje to możliwość autentykacji użytkowników za pomocą różnych dostawców tożsamości, którym ufasz ale ktoś inny nimi zarządza.
W artykule zostanie opisana konfiguracja zewnętrznego providera którym będzie Azure Active Directory z Sharepoint Server 2019 (analogiczna konfiguracja dla SharePoint Server 2016).
Wymagania wstępne
- Katalog Azure Active Directory z licencją Azure AD Premium P2Na potrzeby artykułu skorzystam z istniejącego katalogu WEBCON sp. z o.o. (demo).
- Web Aplikacja działająca na protokole HTTPS
Konfiguracja nowej aplikacji Azure AD
W tym punkcie zostanie pokazana krok po kroku konfiguracja aplikacji Enterprise Azure AD, która będzie naszym zewnętrznym dostawcą tożsamości.
Aby mieć możliwość dodania takiej aplikacji potrzebujemy posiadać co najmniej licencję Azure AD Premium P2
Po zalogowaniu się na https://azure.portal.com, otwieramy nasz katalog Azure Active Directory i wchodzimy w zakładkę Enterprise applications. Z tego poziomu dodajemy nową aplikację spoza galerii, która będzie nam służyć za providera autentykacji.
Po dodaniu nowej aplikacji przechodzimy do konfiguracji Single sign-on w którym konfigurujemy Identyfikator aplikacji (Identifier), adres na który powinniśmy wrócić po poprawnym uwierzytelnieniu (Reply URL) oraz adres logowania (Sign on URL).
Użytkowników będziemy identyfikować za pomocą: user.userprincipalname.
Pamiętaj, żeby zmienić w adresach URL class.webconbps.com na witrynę Twojej aplikacji.
Na tym etapie przygotujmy wszystkie potrzebne informacje do konfiguracji naszego providera logowania. W tym celu tworzymy tabelkę z wszystkimi potrzebnymi wartościami.
Realm | urn:sharepoint:class.webconbps.com |
Full path to SAML signing certificate file | C:\temp\Sharepoint SAML Integration.cer |
SAML single sign-on service URL | https://login.microsoftonline.com/a50e0b60-fbaf-454d-9c4e-0f51456f8589/wsfed |
Application Object ID | 7b02e37f-73dd-445a-9138-5289e8b73ac2 |
Realm jest identyfikatorem naszej aplikacji.
Pełną ścieżkę certyfikatu logowania pobieramy z panelu konfiguracji Single sign-on z sekcji SAML Signing Certificate. Wybieramy certyfikat RAW.
Kolejną ważną informacją jest adres strony logowania który znajdziemy w sekcji konfiguracji Single sign-on w sekcji Set up SharePoint SAML Integration. Po skopiowaniu należy zmienić końcówkę adresu z /saml2 na /wsfed.
Ostatnim krokiem w przygotowaniu tabeli jest skopiowanie ID naszej aplikacji. Znajdziemy go w panelu Właściwości w polu Object ID.
Z poprawnie wypełnioną tabelką możemy przystąpić do konfiguracji providera logowania w SharePoint.
Realm | urn:sharepoint:class.webconbps.com |
Full path to SAML signing certificate file | C:\temp\Sharepoint SAML Integration.cer |
SAML single sign-on service URL | https://login.microsoftonline.com/a50e0b60-fbaf-454d-9c4e-0f51456f8589/wsfed |
Application Object ID | 7b02e37f-73dd-445a-9138-5289e8b73ac2 |
Konfiguracja providera logowania
Do skonfigurowania naszego providera logowania w SharePoint użyjemy skryptu Powershell.
Add-PSSnapin "Microsoft.SharePoint.PowerShell"
$ realm = "<Realm from Table>"
$wsfedurl="<SAML single sign-on service URL from Table>"
$filepath="<Full path to SAML signing certificate file from Table>"
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($filepath)
New-SPTrustedRootAuthority -Name "AzureAD" -Certificate $cert
$map = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" -IncomingClaimTypeDisplayName "UPN" -LocalClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"
$ap = New-SPTrustedIdentityTokenIssuer -Name "AzureAD Provider" -Description "SharePoint secured by Azure AD" -realm $realm -ImportTrustCertificate $cert -ClaimsMappings $map -SignInUrl $wsfedurl -IdentifierClaim "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
W miejsce zmiennych $realm, $wsfedurl, $filepath wstawiamy wartości z przygotowanej tabelki.
Następnie w konsoli centralnej administracji MS SharePoint, w sekcji Manage Web Application dodajemy nowego providera autentykacji którego przed chwilą utworzyliśmy.
Następnym krokiem w SharePoint jest zmiana polityki autentykacji tokenu z wersji SAML 2.0 na SAML 1.1.
Gdy aplikacja AzureAD została utworzona w Portalu, to domyślnie używa ona polityki autentykacji tokenu w wersji SAML 2.0.
SharePoint server wymaga tokenu autentykacji w wersji SAML 1.1.
Konfiguracja SAML 1.1 w SharePoint
W tym celu należy usunąć politykę autentykacji SAML 2.0 i dodać politykę SAML 1.1
Taka modyfikacja wymaga użycia kilku skryptów które usuwają domyślną politykę SAML 2.0 i dodają nową politykę tokenów autentykacji SAML 1.1
Pierwszym krokiem jest pobranie z repozytorium https://github.com/kaevans/spsaml11/tree/master/scripts skryptów Initialize.ps1 oraz MSGraphTokenLifetimePolicy.psm1 i postępowanie według instrukcji.
Oba skrypty najlepiej zapisać w jednej lokalizacji.
Należy otworzyć Powershell, zaimportować moduł Initialize.ps1 i uruchomić:
Add-TokenIssuancePolicy -DisplayName "SharePointSAML1.1" -SigningAlgorithm "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" -TokenResponseSigningPolicy TokenOnly -SamlTokenVersion "1.1"
Następnym krokiem jest zdefiniowanie funkcji AssignSaml11PolicyToAppPrincipal za pomocą której usunięta zostanie aktualna polityka autentykacji tokenów i dodana zostanie polityka SAML 1.1.
Aby zdefiniować funkcję, należy wcześniej zdefiniować dwie zmienne: $pathToInitializeScriptFile i $appObjectid
Pierwsza zmienna jest pełną ścieżką do skryptu Initialize.ps1, druga to ID naszej aplikacji Azure AD które wkleiliśmy do wcześniej przygotowanej tabelki.
Ostatnim krokiem w tej konfiguracji jest uruchomienie funkcji ze zmiennymi.
AssignSaml11PolicyToAppPrincipal $pathToInitializeScriptFile $appObjectid
Nadanie uprawnień w SharePoint
Użytkownicy uzyskali dostęp w usłudze Azure AD, ale muszą także uzyskać dostęp do web aplikacji SharePoint.
Jednym z sposobów jest nadanie ich z poziomu ustawień witryny.
W tym celu należy wejść w ustawienia witryny, otworzyć uprawnienia witryny i nadać wszystkim użytkownikom aplikacji Azure AD uprawnienia.
Weryfikacja
Po wejściu na witrynę webaplikacji powinna pojawić się opcja wyboru providera autentykacji.
Po poprawnej autentykacji, powinna się otworzyć witryna Web Aplikacji.
Aby korzystać tylko z autentykacji Azure AD, należy zdefiniować domyślną stronę logowania w konfiguracji Web Aplikacji.
WEBCON BPS
Opisana konfiguracja dotyczy autentykacji i dostępu do witryn SharePoint. Aby takie konto pojawiło się w systemie WEBCON BPS należy dodać nazwę zewnętrznego dostawcy logowania do konfiguracji synchronizacji listy użytkowników.
Nazwa dostawcy znajduje się w Centralnej Administracji SharePoint. Należy przejść do zarządzania Web Aplikacjami, na wstędze kliknąć Dostawcy Autentykacji, następnie znaleźć grupę z zaufanymi dostawcami autentykacji.
Po dodaniu i zapisaniu zewnętrznego dostawcy, przy kolejnej synchronizacji listy użytkowników, osoby które logowały się za jego pomocą będą traktowane jako zewnętrzni użytkownicy BPS.
Skrypty