Sdílet prostřednictvím


Konfigurace místního SharePointu pro jednotné přihlašování pomocí Microsoft Entra ID

Popis scénáře

V tomto článku nakonfigurujete federované ověřování mezi místním ID Microsoft Entra a SharePointem. Cílem je umožnit uživatelům přihlásit se k ID Microsoft Entra a použít jejich identitu pro přístup k místním webům SharePointu.

Požadavky

K provedení konfigurace potřebujete následující prostředky: – uživatelský účet Microsoft Entra s aktivním předplatným. Pokud ho ještě nemáte, můžete si zdarma vytvořit účet. – Jedna z následujících rolí: Správce aplikace - Správce cloudové aplikace - Vlastník aplikace. Pokud ho nemáte, můžete si vytvořit bezplatný účet.

  • Farma SharePointu 2013 nebo novější

Tento článek používá následující hodnoty:

  • Název podnikové aplikace (v Microsoft Entra ID): SharePoint corporate farm
  • Identifikátor důvěryhodnosti (v Microsoft Entra ID) / sféra (v SharePointu): urn:sharepoint:federation
  • loginUrl (do Microsoft Entra ID): https://login.microsoftonline.com/dc38a67a-f981-4e24-ba16-4443ada44484/wsfed
  • Adresa URL sharepointového webu: https://spsites.contoso.local/
  • Adresa URL odpovědi na web SharePoint: https://spsites.contoso.local/_trust/
  • Název konfigurace důvěryhodnosti SharePointu: MicrosoftEntraTrust
  • UserPrincipalName testovacího uživatele Microsoft Entra: AzureUser1@demo1984.onmicrosoft.com

Konfigurace podnikové aplikace v Microsoft Entra ID

Pokud chcete nakonfigurovat federaci v Microsoft Entra ID, musíte vytvořit vyhrazenou podnikovou aplikaci. Jeho konfigurace je zjednodušená pomocí předem nakonfigurované šablony SharePoint on-premises , kterou najdete v galerii aplikací.

Vytvoření podnikové aplikace

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací.
  2. Přejděte k Entra ID>Podnikové aplikace>Nová aplikace.
  3. Do vyhledávacího pole zadejte SharePoint on-premises. Vyberte SharePoint on-premise z podokna výsledků.
  4. Zadejte název pro vaši aplikaci (v tomto článku je to SharePoint corporate farm), a výběrem Vytvořit přidejte aplikaci.
  5. V nové podnikové aplikaci vyberte Vlastnosti a zkontrolujte požadovanou hodnotu přiřazení uživatele?. Pro tento scénář nastavte jeho hodnotu na Ne a vyberte Uložit.

Konfigurace podnikové aplikace

V této části nakonfigurujete ověřování SAML a definujete deklarace identity, které se po úspěšném ověření odesílají do SharePointu.

  1. V části Přehled podnikové aplikace SharePoint corporate farmvyberte 2. Nastavte jednotné přihlašování a v dalším dialogovém okně zvolte SAML .

  2. Na stránce Nastavit jedinečný Sign-On pomocí SAML vyberte ikonu Upravit v podokně Základní konfigurace SAML.

  3. V části Základní konfigurace SAML postupujte takto:

    1. V poli Identifikátor se ujistěte, že je tato hodnota přítomna: urn:sharepoint:federation.

    2. Do pole Adresa URL odpovědi zadejte adresu URL pomocí tohoto vzoru: https://spsites.contoso.local/_trust/.

    3. Do pole Sign on URL (Přihlásit se adresa URL ) zadejte adresu URL pomocí tohoto vzoru: https://spsites.contoso.local/.

    4. Vyberte Uložit.

  4. V části Atributy a deklarace identity uživatele odstraňte následující typy deklarací identity, které jsou zbytečné, protože SharePoint je nebude používat k udělení oprávnění:

    • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
    • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
    • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
  5. Nastavení by teď mělo vypadat takto:

    Základní nastavení SAML

  6. Zkopírujte informace, které budete potřebovat později v SharePointu:

    • V části Podpisový certifikát SAMLstáhnětecertifikát (Base64). Toto je veřejný klíč podpisového certifikátu používaného ID Microsoft Entra k podepsání tokenu SAML. SharePoint ho bude potřebovat k ověření integrity příchozích tokenů SAML.

    • V části Nastavit podnikovou farmu SharePointu zkopírujte přihlašovací adresu URL v poznámkovém bloku a nahraďte koncový řetězec /saml2/wsfed.

    Důležité

    Nezapomeňte nahradit /saml2/wsfed , abyste zajistili, že ID Microsoft Entra vydá token SAML 1.1, jak vyžaduje SharePoint.

    • V části Nastavení podnikové farmy SharePointu zkopírujte adresu URL odhlášení.

Konfigurace SharePointu pro důvěru k Microsoft Entra ID

Vytvoření vztahu důvěryhodnosti v SharePointu

V tomto kroku vytvoříte SPTrustedLoginProvider pro uložení konfigurace, kterou SharePoint potřebuje k tomu, aby byl Microsoft Entra ID důvěryhodný. K tomu potřebujete informace z ID Microsoft Entra, které jste zkopírovali výše. Mějte na paměti, že použití Windows PowerShellu může některé příkazy selhat. Spusťte prostředí SharePoint Management Shell a spuštěním následujícího skriptu ho vytvořte:

# Path to the public key of the Microsoft Entra SAML signing certificate (self-signed), downloaded from the Enterprise application in the Azure portal
$signingCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Microsoft Entra app\SharePoint corporate farm.cer")
# Unique realm (corresponds to the "Identifier (Entity ID)" in the Microsoft Entra enterprise application)
$realm = "urn:sharepoint:federation"
# Login URL copied from the Microsoft Entra enterprise application. Make sure to replace "saml2" with "wsfed" at the end of the URL:
$loginUrl = "https://login.microsoftonline.com/dc38a67a-f981-4e24-ba16-4443ada44484/wsfed"

# Define the claim types used for the authorization
$userIdentifier = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" -IncomingClaimTypeDisplayName "name" -LocalClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"
$role = New-SPClaimTypeMapping "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming

# Let SharePoint trust the Microsoft Entra signing certificate
New-SPTrustedRootAuthority -Name "Microsoft Entra signing certificate" -Certificate $signingCert

# Create a new SPTrustedIdentityTokenIssuer in SharePoint
$trust = New-SPTrustedIdentityTokenIssuer -Name "MicrosoftEntraTrust" -Description "Microsoft Entra ID" -Realm $realm -ImportTrustCertificate $signingCert -ClaimsMappings $userIdentifier, $role -SignInUrl $loginUrl -IdentifierClaim $userIdentifier.InputClaimType

Konfigurace webové aplikace SharePoint

V tomto kroku nakonfigurujete webovou aplikaci v SharePointu tak, aby důvěřovala výše vytvořené aplikaci Microsoft Entra Enterprise. Je potřeba mít na paměti důležitá pravidla:

  • Výchozí zóna webové aplikace SharePoint musí mít povolené ověřování systému Windows. To se vyžaduje pro vyhledávací modul.
  • Adresa URL SharePointu, která bude používat ověřování Microsoft Entra, musí být nastavena pomocí protokolu HTTPS.
  1. Vytvořte nebo rozšiřte webovou aplikaci. Tento článek popisuje dvě možné konfigurace:

    • Pokud vytvoříte novou webovou aplikaci, která používá ověřování Windows i Microsoft Entra ve výchozí zóně:

      1. Spusťte prostředí SharePoint Management Shell a spusťte následující skript:

        # This script creates a new web application and sets Windows and Microsoft Entra authentication on the Default zone
        # URL of the SharePoint site federated with Microsoft Entra
        $trustedSharePointSiteUrl = "https://spsites.contoso.local/"
        $applicationPoolManagedAccount = "Contoso\spapppool"
        
        $winAp = New-SPAuthenticationProvider -UseWindowsIntegratedAuthentication -DisableKerberos:$true
        $sptrust = Get-SPTrustedIdentityTokenIssuer "MicrosoftEntraTrust"
        $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust    
        
        New-SPWebApplication -Name "SharePoint - Microsoft Entra" -Port 443 -SecureSocketsLayer -URL $trustedSharePointSiteUrl -ApplicationPool "SharePoint - Microsoft Entra" -ApplicationPoolAccount (Get-SPManagedAccount $applicationPoolManagedAccount) -AuthenticationProvider $winAp, $trustedAp
        
      2. Otevřete web Centrální správy SharePointu .

      3. V části Nastavení systému vyberte Konfigurovat mapování alternativních přístupů. Otevře se okno Kolekce mapování alternativních přístupů .

      4. Vyfiltrujte zobrazení pomocí nové webové aplikace a ověřte, že se zobrazí něco takového:

        Mapování alternativních přístupů webové aplikace

    • Pokud rozšíříte existující webovou aplikaci tak, aby používala ověřování Microsoft Entra v nové zóně:

      1. Spusťte prostředí SharePoint Management Shell a spusťte následující skript:

        # This script extends an existing web application to set Microsoft Entra authentication on a new zone
        # URL of the default zone of the web application
        $webAppDefaultZoneUrl = "http://spsites/"
        # URL of the SharePoint site federated with ADFS
        $trustedSharePointSiteUrl = "https://spsites.contoso.local/"
        $sptrust = Get-SPTrustedIdentityTokenIssuer "MicrosoftEntraTrust"
        $ap = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
        $wa = Get-SPWebApplication $webAppDefaultZoneUrl
        
        New-SPWebApplicationExtension -Name "SharePoint - Microsoft Entra" -Identity $wa -SecureSocketsLayer -Zone Internet -Url $trustedSharePointSiteUrl -AuthenticationProvider $ap
        
      2. Otevřete web Centrální správy SharePointu .

      3. V části Nastavení systému vyberte Konfigurovat mapování alternativních přístupů. Otevře se okno Kolekce mapování alternativních přístupů .

      4. Vyfiltrujte zobrazení pomocí rozšířené webové aplikace a ověřte, že se zobrazí něco takového:

        Mapování alternativních přístupů rozšířené webové aplikace

Po vytvoření webové aplikace můžete vytvořit kořenovou kolekci webů a přidat svůj účet Systému Windows jako primární správce kolekce webů.

  1. Vytvoření certifikátu pro sharepointový web

    Vzhledem k tomu, že adresa URL služby SharePoint používá protokol HTTPS (https://spsites.contoso.local/), musí být certifikát nastavený na odpovídajícím webu Internetová informační služba (IIS). Postupujte podle těchto kroků a vygenerujte samopodepsaný certifikát:

    Důležité

    Certifikáty podepsané svým držitelem jsou vhodné pouze pro testovací účely. V produkčních prostředích důrazně doporučujeme místo toho používat certifikáty vydané certifikační autoritou.

    1. Otevřete konzolu Windows PowerShellu.

    2. Spuštěním následujícího skriptu vygenerujte certifikát podepsaný svým držitelem a přidejte ho do úložiště MY počítače:

      New-SelfSignedCertificate -DnsName "spsites.contoso.local" -CertStoreLocation "cert:\LocalMachine\My"
      
  2. Nastavení certifikátu na webu služby IIS

    1. Otevřete konzolu Internetová informační služba Manager.
    2. Rozbalte server ve stromovém zobrazení, rozbalte lokality, vyberte lokalitu SharePoint – Microsoft Entra ID a vyberte Vazby.
    3. Vyberte vazbu https a pak vyberte Upravit.
    4. V poli certifikátu TLS/SSL zvolte certifikát, který chcete použít (například spsites.contoso.local vytvořený výše) a vyberte OK.

    Poznámka:

    Pokud máte více webových front-endových serverů, musíte tuto operaci opakovat na každém z nich.

Základní konfigurace vztahu důvěryhodnosti mezi SharePointem a ID Microsoft Entra je nyní dokončena. Pojďme se podívat, jak se přihlásit k sharepointovém webu jako uživatel Microsoft Entra.

Přihlášení jako člen

ID Microsoft Entra má dva typy uživatelů: uživatelé typu host a členové. Začněme s uživatelem, který je členem, což je pouze uživatel umístěný ve vaší organizaci.

Vytvoření člena uživatele v Microsoft Entra ID

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce uživatelů.
  2. Přejděte na Entra ID>Uživatelé.
  3. V horní části obrazovky vyberte Nový uživatel>Vytvořit nového uživatele.
  4. Ve vlastnostech uživatele postupujte takto:
    1. Do pole Zobrazovaný název zadejte B.Simon.
    2. Do pole Hlavní název uživatele zadejte .username@companydomain.extension Například B.Simon@contoso.com.
    3. Zaškrtněte políčko Zobrazit heslo a potom poznamenejte hodnotu, která se zobrazí v poli Heslo .
    4. Vyberte Zkontrolovat + vytvořit.
  5. Vyberte Vytvořit.
  6. Web můžete sdílet s tímto uživatelem a povolit k němu přístup.

Udělení oprávnění uživateli Microsoft Entra v SharePointu

Přihlaste se ke kořenové kolekci webů SharePointu jako účet Windows (správce kolekce webů) a vyberte Sdílet.
V dialogovém okně musíte zadat přesnou hodnotu userprincipalname, například AzureUser1@demo1984.onmicrosoft.com, a pečlivě vybrat výsledek deklarace názvu name (přesuňte myš na výsledek, aby se zobrazil jeho typ deklarace).

Důležité

Dávejte pozor, abyste zadali přesnou hodnotu uživatele, kterého chcete pozvat, a v seznamu zvolte vhodný typ deklarace identity, jinak sdílení nefunguje.

Snímek obrazovky s výsledky výběru osob bez EntraCP

Důvodem tohoto omezení je, že SharePoint neověřuje vstup z nástroje pro výběr osob, což může být matoucí a vést k překlepům nebo neúmyslnému vybrání nesprávného typu deklarace identity uživateli.
Tento scénář můžete vyřešit použitím open-source řešení s názvem EntraCP k připojení SharePointu 2019 / 2016 / 2013 s Microsoft Entra ID a pro ověření vstupu vůči vašemu tenantovi Microsoft Entra. Další informace naleznete v tématu EntraCP.

Níže je stejné vyhledávání s nakonfigurovaným EntraCP: SharePoint vrátí skutečné uživatele na základě vstupu:

Snímek obrazovky s výsledky výběru osob pomocí EntraCP

Důležité

EntraCP není produktem Microsoftu a není podporovaný podpora Microsoftu. Pokud chcete stáhnout, nainstalovat a nakonfigurovat EntraCP na místní farmě SharePointu, podívejte se na web EntraCP .

Uživatel AzureUser1@demo1984.onmicrosoft.com Microsoft Entra teď může použít svou identitu k přihlášení na sharepointový web https://spsites.contoso.local/.

Udělení oprávnění skupině zabezpečení

Přidání typu skupinového nároku do podnikové aplikace

  1. V části Přehled podnikové aplikace SharePoint corporate farmvyberte 2. Nastavte jednotné přihlašování.

  2. V části Atributy a deklarace identity uživatele postupujte podle těchto kroků, pokud neexistuje žádná deklarace identity skupiny:

    1. Vyberte Přidat deklaraci identity skupiny, vyberte Skupiny zabezpečení a ujistěte se, že je zdrojový atribut nastavený na ID skupiny.
    2. Zaškrtněte políčko Přizpůsobit název deklarace identity skupiny a pak zaškrtněte políčko Generovat skupiny jako deklarace identity rolí a vyberte Uložit.
    3. Atributy uživatele a deklarace identity by měly vypadat takto:

    Přístupová práva pro uživatele a skupiny

Vytvoření skupiny zabezpečení v Microsoft Entra ID

Pojďme vytvořit skupinu zabezpečení.

  1. Přejděte doskupin>.

  2. Vyberte Nová skupina.

  3. Zadejte typ skupiny (zabezpečení), název skupiny (například AzureGroup1) a typ členství. Přidejte uživatele, který jste vytvořili výše jako člena, a vyberte Vytvořit:

    Vytvoření skupiny zabezpečení Microsoft Entra

Udělení oprávnění skupině zabezpečení v SharePointu

Skupiny zabezpečení Microsoft Entra jsou identifikovány pomocí jejich atributu Id, což je GUID (například 00aa00aa-bb11-cc22-dd33-44ee44ee44ee).
Bez vlastního poskytovatele deklarací musí uživatelé ve výběru osob zadat přesnou hodnotu Id skupiny a vybrat odpovídající typ deklarace. To není uživatelsky přívětivé ani spolehlivé.
Aby se tomu zabránilo, tento článek používá entraCP zprostředkovatele deklarací identity třetích stran k vyhledání skupiny přátelským způsobem v SharePointu:

Vyhledávač osob ve skupině Microsoft Entra

Správa přístupu hostujících uživatelů

Existují dva typy účtů hostů:

  • Účty hostů B2B: Tito uživatelé jsou umístěni v externím tenantovi Microsoft Entra.
  • Účty hosta MSA: Tito uživatelé mají účet u poskytovatele identity Microsoft (Hotmail, Outlook) nebo poskytovatele sociálních účtů (Google nebo podobného).

Ve výchozím nastavení Microsoft Entra ID nastaví "Jedinečný identifikátor uživatele" a nárok "name" na atribut user.userprincipalname.
Tento atribut je bohužel nejednoznačný pro účty hostů, jak ukazuje následující tabulka:

Zdrojový atribut nastavený v Microsoft Entra ID Skutečný atribut používaný Microsoft Entra ID pro hosty B2B Skutečná vlastnost, kterou Microsoft Entra ID používá pro hosty MSA Vlastnost, na kterou může SharePoint spoléhat na ověření identity
user.userprincipalname mailnapříklad: guest@PARTNERTENANT userprincipalnamenapříklad: guest_outlook.com#EXT#@TENANT.onmicrosoft.com Nejednoznačné
user.localuserprincipalname userprincipalnamenapříklad: guest_PARTNERTENANT#EXT#@TENANT.onmicrosoft.com userprincipalnamenapříklad: guest_outlook.com#EXT#@TENANT.onmicrosoft.com userprincipalname

Závěrem je třeba zajistit, aby všechny účty hostů byly identifikovány se stejným atributem, měly by se deklarace identity identifikátoru podnikové aplikace aktualizovat tak, aby používaly atribut user.localuserprincipalname místo user.userprincipalname.

Aktualizace aplikace tak, aby používala konzistentní atribut pro všechny uživatele typu host

  1. V části Přehled podnikové aplikace SharePoint corporate farmvyberte 2. Nastavte jednotné přihlašování.

  2. Na stránce Nastavit Single Sign-On pomocí SAML vyberte ikonu Upravit v podokně Uživatelské atributy a deklarace identity.

  3. V části Atributy a deklarace identity uživatele postupujte takto:

    1. Vyberte jedinečný identifikátor uživatele (ID názvu), změňte jeho vlastnost Atribut zdroje na user.localuserprincipalname a vyberte Uložit.

    2. Vyberte http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name, změňte jeho vlastnost Source Attribute na user.localuserprincipalname a vyberte Uložit.

    3. Atributy uživatele a deklarace identity by měly vypadat takto:

    Atributy a deklarace identity uživatelů pro hosty

Pozvání uživatelů typu host v SharePointu

Poznámka:

V této části se předpokládá, že se používá poskytovatel identitních údajů EntraCP.

V předchozí části jste aktualizovali podnikovou aplikaci tak, aby používala konzistentní atribut pro všechny účty hostů.
Teď je potřeba aktualizovat konfiguraci entraCP tak, aby odrážela tuto změnu a používala atribut userprincipalname pro účty hostů:

  1. Otevřete web Centrální správy SharePointu .
  2. V části Zabezpečení vyberte globální konfiguraci EntraCP.
  3. V části User identifier vlastnost: Nastavte identifikátor uživatele pro uživatele typu Host: na UserPrincipalName.
  4. Vybrat ok

Teď můžete pozvat libovolného uživatele typu host na sharepointových webech.

Konfigurace federace pro více webových aplikací

Konfigurace funguje pro jednu webovou aplikaci, ale pokud chcete použít stejného důvěryhodného zprostředkovatele identity pro více webových aplikací, je potřeba další konfigurace. Předpokládejme například, že máte samostatnou webovou aplikaci https://otherwebapp.contoso.local/ a teď na ní chcete povolit ověřování Microsoft Entra. Uděláte to tak, že nakonfigurujete SharePoint tak, aby předal parametr SAML WReply a přidal adresy URL v podnikové aplikaci.

Konfigurace SharePointu pro předání parametru SAML WReply

  1. Na serveru SharePoint otevřete prostředí SharePoint 201x Management Shell a spusťte následující příkazy. Použijte stejný název pro důvěryhodného vystavitele tokenu identity, který jste použili dříve.
$t = Get-SPTrustedIdentityTokenIssuer "MicrosoftEntraTrust"
$t.UseWReplyParameter = $true
$t.Update()

Přidání adres URL v podnikové aplikaci

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací.

  2. Přejděte dopodnikové aplikace>Entra ID>, vyberte dříve vytvořenou podnikovou aplikaci a vyberte Jednotné přihlašování.

  3. Na stránce Nastavit jednu Sign-On pomocí SAML upravte Základní konfiguraci SAML.

  4. V části Adresa URL odpovědi (adresa URL služby Assertion Consumer Service) přidejte adresu URL (například https://otherwebapp.contoso.local/) všech dalších webových aplikací, které potřebují přihlásit uživatele pomocí Id Microsoft Entra a vybrat Uložit.

Určení dalších webových aplikací

Konfigurace životnosti tokenu zabezpečení

Ve výchozím nastavení vytvoří ID Microsoft Entra token SAML, který je platný 1 hodinu, který se nedá přizpůsobit na webu Azure Portal ani pomocí zásad podmíněného přístupu.
Je ale možné vytvořit vlastní zásadu životnosti tokenů a přiřadit ji podnikové aplikaci, kterou jste vytvořili pro SharePoint Server.
Můžete spustit následující skript, abyste toho dosáhli:

Install-Module Microsoft.Graph
Connect-MgGraph -Scopes "Policy.ReadWrite.ApplicationConfiguration","Policy.Read.All","Application.ReadWrite.All"

$appDisplayName = "SharePoint corporate farm"
$sp = Get-MgServicePrincipal -Search DisplayName:"$appDisplayName" -ConsistencyLevel eventual

$oldPolicy = Get-MgServicePrincipalTokenLifetimePolicy -ServicePrincipalId $sp.Id
if ($null -ne $oldPolicy) {
	# There can be only 1 TokenLifetimePolicy associated to the service principal (or 0, as by default)
    Remove-MgServicePrincipalAppManagementPolicy -AppManagementPolicyId $oldPolicy.Id -ServicePrincipalId $sp.Id
}

# Get / create a custom token lifetime policy
$policyDisplayName = "WebPolicyScenario"
$policy = Get-MgPolicyTokenLifetimePolicy -Filter "DisplayName eq '$policyDisplayName'"
if ($null -eq $policy) {
	$params = @{
		Definition = @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"4:00:00"}}') 
		DisplayName = $policyDisplayName
		IsOrganizationDefault = $false
	}
	$policy = New-MgPolicyTokenLifetimePolicy -BodyParameter $params
}

# Assign the token lifetime policy to an app
$body = @{
	"@odata.id" = "https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies/$($policy.Id)"
}
Invoke-GraphRequest -Uri ('https://graph.microsoft.com/v1.0/servicePrincipals/{0}/tokenLifetimePolicies/$ref' -f $sp.Id) -Method POST -Body $body