Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
- Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací.
- Přejděte k Entra ID>Podnikové aplikace>Nová aplikace.
- Do vyhledávacího pole zadejte SharePoint on-premises. Vyberte SharePoint on-premise z podokna výsledků.
- 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. - 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.
V části Přehled podnikové aplikace
SharePoint corporate farm
vyberte 2. Nastavte jednotné přihlašování a v dalším dialogovém okně zvolte SAML .Na stránce Nastavit jedinečný Sign-On pomocí SAML vyberte ikonu Upravit v podokně Základní konfigurace SAML.
V části Základní konfigurace SAML postupujte takto:
V poli Identifikátor se ujistěte, že je tato hodnota přítomna:
urn:sharepoint:federation
.Do pole Adresa URL odpovědi zadejte adresu URL pomocí tohoto vzoru:
https://spsites.contoso.local/_trust/
.Do pole Sign on URL (Přihlásit se adresa URL ) zadejte adresu URL pomocí tohoto vzoru:
https://spsites.contoso.local/
.Vyberte Uložit.
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
Nastavení by teď mělo vypadat takto:
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.
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ě:
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
Otevřete web Centrální správy SharePointu .
V části Nastavení systému vyberte Konfigurovat mapování alternativních přístupů. Otevře se okno Kolekce mapování alternativních přístupů .
Vyfiltrujte zobrazení pomocí nové webové aplikace a ověřte, že se zobrazí něco takového:
Pokud rozšíříte existující webovou aplikaci tak, aby používala ověřování Microsoft Entra v nové zóně:
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
Otevřete web Centrální správy SharePointu .
V části Nastavení systému vyberte Konfigurovat mapování alternativních přístupů. Otevře se okno Kolekce mapování alternativních přístupů .
Vyfiltrujte zobrazení pomocí rozšířené webové aplikace a ověřte, že se zobrazí něco takového:
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ů.
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.
Otevřete konzolu Windows PowerShellu.
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"
Nastavení certifikátu na webu služby IIS
- Otevřete konzolu Internetová informační služba Manager.
- Rozbalte server ve stromovém zobrazení, rozbalte lokality, vyberte lokalitu SharePoint – Microsoft Entra ID a vyberte Vazby.
- Vyberte vazbu https a pak vyberte Upravit.
- 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
- Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce uživatelů.
- Přejděte na Entra ID>Uživatelé.
- V horní části obrazovky vyberte Nový uživatel>Vytvořit nového uživatele.
- Ve vlastnostech uživatele postupujte takto:
- Do pole Zobrazovaný název zadejte
B.Simon
. - Do pole Hlavní název uživatele zadejte .username@companydomain.extension Například
B.Simon@contoso.com
. - Zaškrtněte políčko Zobrazit heslo a potom poznamenejte hodnotu, která se zobrazí v poli Heslo .
- Vyberte Zkontrolovat + vytvořit.
- Do pole Zobrazovaný název zadejte
- Vyberte Vytvořit.
- 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.
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:
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
V části Přehled podnikové aplikace
SharePoint corporate farm
vyberte 2. Nastavte jednotné přihlašování.V části Atributy a deklarace identity uživatele postupujte podle těchto kroků, pokud neexistuje žádná deklarace identity skupiny:
- Vyberte Přidat deklaraci identity skupiny, vyberte Skupiny zabezpečení a ujistěte se, že je zdrojový atribut nastavený na ID skupiny.
- 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.
- Atributy uživatele a deklarace identity by měly vypadat takto:
Vytvoření skupiny zabezpečení v Microsoft Entra ID
Pojďme vytvořit skupinu zabezpečení.
Přejděte doskupin>.
Vyberte Nová skupina.
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:
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:
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 |
mail například: guest@PARTNERTENANT |
userprincipalname například: guest_outlook.com#EXT#@TENANT.onmicrosoft.com |
Nejednoznačné |
user.localuserprincipalname |
userprincipalname například: guest_PARTNERTENANT#EXT#@TENANT.onmicrosoft.com |
userprincipalname napří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
V části Přehled podnikové aplikace
SharePoint corporate farm
vyberte 2. Nastavte jednotné přihlašování.Na stránce Nastavit Single Sign-On pomocí SAML vyberte ikonu Upravit v podokně Uživatelské atributy a deklarace identity.
V části Atributy a deklarace identity uživatele postupujte takto:
Vyberte jedinečný identifikátor uživatele (ID názvu), změňte jeho vlastnost Atribut zdroje na user.localuserprincipalname a vyberte Uložit.
Vyberte
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
, změňte jeho vlastnost Source Attribute na user.localuserprincipalname a vyberte Uložit.Atributy uživatele a deklarace identity by měly vypadat takto:
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ů:
- Otevřete web Centrální správy SharePointu .
- V části Zabezpečení vyberte globální konfiguraci EntraCP.
- V části User identifier vlastnost: Nastavte identifikátor uživatele pro uživatele typu Host: na UserPrincipalName.
- 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
- 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
Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací.
Přejděte dopodnikové aplikace>Entra ID>, vyberte dříve vytvořenou podnikovou aplikaci a vyberte Jednotné přihlašování.
Na stránce Nastavit jednu Sign-On pomocí SAML upravte Základní konfiguraci SAML.
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.
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