Sdílet prostřednictvím


Kurz: Implementace federovaného ověřování mezi místním ID Microsoft Entra a SharePointem

Popis scénáře

V tomto kurzu 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:

  • Tenant Microsoft Entra. Pokud žádné 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 sharepointový web: 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 podnikovým aplikacím>Identita>Aplikace>– Nová aplikace.
  3. Do vyhledávacího pole zadejte místní SharePoint. V podokně výsledků vyberte místní SharePoint.
  4. Zadejte název aplikace (v tomto kurzu je SharePoint corporate farm) a kliknutím na 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 klikněte na 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í odešlou 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 Nastavení jednotného přihlašování 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. Zvolte 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 SAML stáhněte certifiká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 tak, aby důvěřovala ID Microsoft Entra

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

V tomto kroku vytvoříte SPTrustedLoginProvider pro uložení konfigurace, kterou SharePoint potřebuje důvěřovat ID Microsoft Entra. 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 prohledávací modul vyhledávání.
  • 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 certifikát podepsaný svým držitelem:

    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 weby, vyberte sharepointový web – 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 člena, který je pouze uživatelem, který je ve vaší organizaci domovem.

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 do části Identita>Uživatelé>Všichni 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 a 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 Systému Windows (správce kolekce webů) a klikněte na Sdílet.
V dialogovém okně musíte zadat přesnou hodnotu userprincipalname, například AzureUser1@demo1984.onmicrosoft.coma pečlivě vybrat výsledek deklarace identity názvu (přesuňte myš na výsledek, aby se zobrazil typ deklarace identity).

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í nebude fungovat.

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

Důvodem tohoto omezení je to, že SharePoint neověřuje vstup z nástroje pro výběr osob, což může být matoucí a vést k neúmyslnému výběru nesprávného typu deklarace identity nebo uživatelům.
Tento scénář vyřešíte tak, že k připojení SharePointu 2019 / 2016 / 2013 s ID Microsoft Entra ID a překladu vstupu do tenanta Microsoft Entra se dá použít opensourcové řešení s názvem EntraCP . 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 deklarace identity skupiny 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 potom zaškrtněte políčko Generovat skupiny jako deklarace identity rolí a klikněte na Uložit.
    3. Atributy uživatele a deklarace identity by měly vypadat takto:

    Deklarace identity pro uživatele a skupinu

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

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

  1. Přejděte do skupin identit>.

  2. Vyberte Nová skupina.

  3. Zadejte typ skupiny (zabezpečení), název skupiny (napříkladAzureGroup1) a typ členství. Přidejte uživatele, který jste vytvořili výše jako člena, a klikněte na 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 zprostředkovatele deklarací identity musí uživatelé zadat přesnou hodnotuId () skupiny ve výběru osob a vybrat odpovídající typ deklarace identity. 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:

Výběr osob ve skupině Microsoft Entra

Správa přístupu uživatelů typu host

Existují dva typy účtů hostů:

  • Účty hostů B2B: Tito uživatelé se nacházejí v externím tenantovi Microsoft Entra.
  • Účty hosta MSA: Tito uživatelé jsou doma ve zprostředkovateli identifikace Microsoftu (Hotmail, Outlook) nebo poskytovateli sociálních účtů (Google nebo podobný).

Ve výchozím nastavení microsoft Entra ID nastaví "Jedinečný identifikátor uživatele" a deklaraci identity "name" atributu 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á vlastnost používaná Id Microsoft Entra pro hosty B2B Skutečná vlastnost používaná Microsoft Entra ID 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 jednotné přihlašování pomocí SAML vyberte ikonu Upravit v podokně Atributy a deklarace identity uživatele.

  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 klikněte na uložit.

    2. Vyberte http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name, změňte jeho vlastnost Source Attribute na user.localuserprincipalname a klepněte na tlačítko 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á entraCP zprostředkovatele deklarací identity.

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. Klikněte na ok.

Snímek obrazovky s konfigurací účtů hostů EntraCP

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 vystavitele důvěryhodného 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 k podnikovým aplikacím> Identita>,>vyberte dříve vytvořenou podnikovou aplikaci a vyberte Jednotné přihlašování.

  3. Na stránce Nastavit jednotné přihlašování 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í Microsoft Entra ID a klikněte na 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ý nelze přizpůsobit na webu Azure Portal nebo pomocí zásad podmíněného přístupu.
Je však 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