Delen via


Zelfstudie: Federatieve verificatie implementeren tussen Microsoft Entra ID en SharePoint on-premises

Beschrijving van scenario

In deze zelfstudie configureert u een federatieve verificatie tussen Microsoft Entra ID en SharePoint on-premises. Het doel is om gebruikers toe te staan zich aan te melden bij Microsoft Entra ID en hun identiteit te gebruiken voor toegang tot de on-premises SharePoint-sites.

Vereisten

Voor het uitvoeren van de configuratie zijn de volgende resources nodig:

In dit artikel worden deze volgende waarden gebruikt:

  • Bedrijfstoepassingsnaam (in Microsoft Entra-id): SharePoint corporate farm
  • Vertrouwens-id (in Microsoft Entra-id) /realm (in SharePoint): urn:sharepoint:federation
  • loginUrl (naar Microsoft Entra-id): https://login.microsoftonline.com/dc38a67a-f981-4e24-ba16-4443ada44484/wsfed
  • De URL van SharePoint-site: https://spsites.contoso.local/
  • De antwoord-URL van SharePoint-site: https://spsites.contoso.local/_trust/
  • De naam van sharePoint-vertrouwensconfiguratie: MicrosoftEntraTrust
  • UserPrincipalName van de Microsoft Entra-testgebruiker: AzureUser1@demo1984.onmicrosoft.com

Een bedrijfstoepassing configureren in Microsoft Entra-id

Als u de federatie in Microsoft Entra-id wilt configureren, moet u een toegewezen Enterprise-toepassing maken. De configuratie hiervan wordt vereenvoudigd met behulp van de vooraf geconfigureerde sjabloon SharePoint on-premises die u kunt vinden in de toepassingsgalerie.

Bedrijfstoepassing maken

  1. Meld u als cloudtoepassingsbeheerder aan bij het Microsoft Entra-beheercentrum.
  2. Blader naar Bedrijfstoepassingen voor identiteitstoepassingen>>>Nieuwe toepassing.
  3. Voer in het zoekvak SharePoint on-premises in. Selecteer SharePoint on-premises in het resultatenvenster.
  4. Geef een naam op voor uw toepassing (in deze zelfstudie is dat SharePoint corporate farm) en klik op Maken om de toepassing toe te voegen.
  5. Selecteer in de nieuwe bedrijfstoepassing Eigenschappen en controleer de waarde voor Gebruikerstoewijzing vereist?. Voor dit scenario stelt u de waarde in op Nee en dan klikt u op Opslaan.

Bedrijfstoepassing configureren

In deze sectie configureert u de SAML-verificatie en vervolgens definieert u de claims die worden verzonden naar SharePoint na een geslaagde verificatie.

  1. In het overzicht van de Enterprise-toepassingSharePoint corporate farm, selecteert u 2. Stel eenmalige aanmelding in en kies de SAML in het volgende dialoogvenster.

  2. Selecteer op de pagina Eenmalige aanmelding instellen met SAML het pictogram voor Bewerken om het deelvenster Standaard SAML-configuratie.

  3. Voer deze stappen uit in het gedeelte Standaard SAML-configuratie:

    1. Zorg dat deze waarde aanwezig is in het vak Id : urn:sharepoint:federation.

    2. Voer in het vak Antwoord-URL een URL in met behulp van dit patroon: https://spsites.contoso.local/_trust/.

    3. Voer in het vak Aanmeldings-URL een URL in met dit patroon: https://spsites.contoso.local/.

    4. Selecteer Opslaan.

  4. Verwijder in de sectie Gebruikerskenmerken en -claims de volgende claimtypen, die nutteloos zijn, omdat ze niet worden gebruikt door SharePoint om machtigingen te verlenen:

    • 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. De instellingen zien er nu zo uit:

    Basis-SAML-instellingen

  6. Kopieer de informatie die u later nodig zult hebben in SharePoint:

    • Download het Certificaat (Base64) in de sectie SAML-handtekeningcertificaat. Dit is de openbare sleutel van het handtekeningcertificaat dat door Microsoft Entra-id wordt gebruikt om het SAML-token te ondertekenen. SharePoint heeft dit nodig om de integriteit van de binnenkomende SAML-tokens te controleren.

    • Kopieer in de sectie SharePoint-bedrijfsfarm instellen de aanmeldings-URL in een kladblok en vervang dan de volgreeks /saml2 door /wsfed.

    Belangrijk

    Vervang /saml2 door /wsfed om ervoor te zorgen dat microsoft Entra ID een SAML 1.1-token uitgeeft, zoals vereist door SharePoint.

    • Kopieer in de sectie SharePoint-bedrijfsfarm instellen dan de afmeldings-URL

SharePoint configureren om Microsoft Entra-id te vertrouwen

Het vertrouwen maken in SharePoint

In deze stap maakt u een SPTrustedLoginProvider om de configuratie op te slaan die SharePoint nodig heeft om de Microsoft Entra-id te vertrouwen. Hiervoor hebt u de informatie van Microsoft Entra-id nodig die u hierboven hebt gekopieerd. Houd er rekening mee dat het gebruik van Windows PowerShell sommige opdrachten kan mislukken. Start de SharePoint Management Shell en voer het volgende script uit om het te maken:

# 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

SharePoint-webtoepassing configureren

In deze stap configureert u een webtoepassing in SharePoint om de hierboven gemaakte Microsoft Entra Enterprise-toepassing te vertrouwen. Er zijn belangrijke regels waar u rekening mee moet houden:

  • Voor de standaardzone van de SharePoint-webtoepassing moet de Windows-verificatie zijn ingeschakeld. Dat is vereist voor de zoekcrawler.
  • De SharePoint-URL die gebruikmaakt van Microsoft Entra-verificatie moet worden ingesteld met HTTPS.
  1. Webtoepassing maken of uitbreiden. In dit artikel beschrijft twee mogelijke configuraties:

    • Als u een nieuwe webtoepassing maakt die gebruikmaakt van zowel Windows- als Microsoft Entra-verificatie in de standaardzone:

      1. Start de SharePoint Management Shell en voer dan het volgende script uit:

        # 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. Open vervolgens de site Centraal beheer van SharePoint.

      3. Selecteer Alternatieve toegangstoewijzingen configureren onder de Systeeminstellingen. Het vak Alternatieve verzameling toegangstoewijzingen wordt dan geopend.

      4. Filter de weergave met de nieuwe webtoepassing en controleer of u iets ziet wat hier op lijkt:

        De alternatieve toegangstoewijzingen van webtoepassing

    • Als u een bestaande webtoepassing uitbreidt voor het gebruik van Microsoft Entra-verificatie in een nieuwe zone:

      1. Start de SharePoint Management Shell en voer dan het volgende script uit:

        # 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. Open vervolgens de site Centraal beheer van SharePoint.

      3. Selecteer Alternatieve toegangstoewijzingen configureren onder de Systeeminstellingen. Het vak Alternatieve verzameling toegangstoewijzingen wordt dan geopend.

      4. Filter de weergave met de uitgebreide webtoepassing en controleer dan of u zoiets als dit ziet:

        Alternatieve toegangstoewijzingen van uitgebreide webtoepassing

Zodra de webtoepassing is gemaakt, kunt u een hoofdsiteverzameling maken en uw Windows-account toevoegen als de primaire beheerder van de siteverzameling.

  1. Certificaat maken voor de SharePoint-site

    Omdat de SharePoint-URL gebruikmaakt van het HTTPS-protocol (https://spsites.contoso.local/), moet er een certificaat worden ingesteld op de IIS-site (Internet Information Services). Volg de stappen om een zelfondertekend certificaat te genereren:

    Belangrijk

    De zelfondertekende certificaten zijn alleen geschikt voor testdoeleinden. In de productieomgevingen raden we u ten zeerste aan om in plaats daarvan certificaten te gebruiken die zijn uitgegeven door een certificeringsinstantie.

    1. Open Windows PowerShell-console.

    2. Voer het volgende script uit om een zelfondertekend certificaat te genereren en toe te voegen aan het 'MIJN archief' van de computer:

      New-SelfSignedCertificate -DnsName "spsites.contoso.local" -CertStoreLocation "cert:\LocalMachine\My"
      
  2. Certificaat instellen op de IIS-site

    1. Open console van Beheer van Internet Information Services.
    2. Vouw de server uit in de structuurweergave, vouw Sites uit, selecteer de site SharePoint - Microsoft Entra-id en selecteer Bindingen.
    3. Selecteer de HTTPS-binding en selecteer vervolgens Bewerken.
    4. Kies in het veld TLS/SSL-certificaat het certificaat dat u wilt gebruiken (bijvoorbeeld spsites.contoso.local dat hierboven is gemaakt) en selecteer OK.

    Notitie

    Als u meerdere webfront-endservers hebt, moet deze bewerking op elke server herhaald worden.

De basisconfiguratie van de vertrouwensrelatie tussen SharePoint en Microsoft Entra-id is nu voltooid. Laten we eens kijken hoe u zich als Microsoft Entra-gebruiker aanmeldt bij de SharePoint-site.

U aanmelden als lidgebruiker

Microsoft Entra ID heeft twee typen gebruikers: gastgebruikers en leden. We beginnen met een lidgebruiker. Dit is slechts een gebruiker die zich in uw organisatie bevindt.

Een lidgebruiker maken in Microsoft Entra-id

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een gebruikersbeheerder.
  2. Blader naar Identiteit>Gebruikers>Alle gebruikers.
  3. Selecteer Nieuwe gebruiker Nieuwe gebruiker> maken bovenaan het scherm.
  4. Voer in de gebruikerseigenschappen de volgende stappen uit:
    1. Voer in het veld Weergavenaam de tekst in B.Simon.
    2. Voer in het veld User Principal Name de username@companydomain.extensionnaam in. Bijvoorbeeld: B.Simon@contoso.com.
    3. Schakel het selectievakje Wachtwoord weergeven in en noteer de waarde die wordt weergegeven in het vak Wachtwoord.
    4. Selecteer Controleren + maken.
  5. Selecteer Maken.
  6. U kunt de site delen met deze gebruiker en toegang tot de site toestaan.

Machtigingen verlenen aan de Microsoft Entra-gebruiker in SharePoint

Meld u aan als uw Windows-account (beheerder van de siteverzameling) bij de SharePoint-hoofdsiteverzameling en klik op Delen.
In het dialoogvenster moet u bijvoorbeeld de exacte waarde van de userprincipalname AzureUser1@demo1984.onmicrosoft.comtypen en voorzichtig zijn met het resultaat van de naamclaim (beweeg de muis over een resultaat om het claimtype te zien)

Belangrijk

Zorg ervoor dat u de exacte waarde typt van de gebruiker die u wilt uitnodigen en kies daarna het juiste claimtype in de lijst, anders werkt het delen niet.

Schermopname van resultaten van personenkiezer zonder EntraCP.

Deze beperking vindt plaats omdat SharePoint de invoer van de personenkiezer niet valideert, wat verwarrend kan zijn en kan leiden tot spelfouten of gebruikers die per ongeluk het verkeerde claimtype kiezen.
Om dit scenario op te lossen, kan een opensource-oplossing met de naam EntraCP worden gebruikt om SharePoint 2019/2016/2013 te verbinden met Microsoft Entra ID en de invoer op te lossen voor uw Microsoft Entra-tenant. Zie EntraCP voor meer informatie.

Hieronder ziet u dezelfde zoekopdracht met EntraCP geconfigureerd: SharePoint retourneert werkelijke gebruikers op basis van de invoer:

Schermopname van resultaten van personenkiezer met EntraCP.

Belangrijk

EntraCP is geen Microsoft-product en wordt niet ondersteund door Microsoft Ondersteuning. Zie de EntraCP-website als u EntraCP wilt downloaden, installeren en configureren op de on-premises SharePoint-farm.

Microsoft Entra-gebruiker AzureUser1@demo1984.onmicrosoft.com kan nu zijn/haar identiteit gebruiken om u aan te melden bij de SharePoint-site https://spsites.contoso.local/.

Verleen de machtigingen aan een beveiligingsgroep

Het groepsclaimtype toevoegen aan bedrijfstoepassing

  1. Selecteer in overzicht van de enterprise-toepassingSharePoint corporate farm, 2. Eenmalige aanmelding instellen.

  2. Voer in de sectie Gebruikerskenmerken & Claims de volgende stappen uit als er geen groepsclaim aanwezig is:

    1. Selecteer Een groepsclaim toevoegen, selecteer dan Beveiligingsgroepen, zorg ervoor dat bronkenmerk is ingesteld op groeps-id
    2. Schakel De naam van de groepsclaim aanpassen in en schakel Groepen verzenden in als rolclaims en klik op Opslaan.
    3. De gebruikerskenmerken en -claims moeten er als volgt uitzien:

    Claims voor gebruikers en groep

Een beveiligingsgroep maken in Microsoft Entra-id

Laten we een beveiligingsgroep maken.

  1. Blader naar identiteitsgroepen>.

  2. Selecteer Nieuwe groep.

  3. Vul het Groepstype (beveiliging), de Groepsnaam (bijvoorbeeld AzureGroup1) en het Lidmaatschapstype in. Voeg de gebruiker toe die u eerder hebt gemaakt als lid en klik op Maken:

    Een Microsoft Entra-beveiligingsgroep maken

Machtigingen verlenen aan beveiligingsgroep in SharePoint

Microsoft Entra-beveiligingsgroepen worden geïdentificeerd met hun kenmerk Id, een GUID (bijvoorbeeld 00aa00aa-bb11-cc22-dd33-44ee44ee44ee).
Zonder een aangepaste claimprovider moeten gebruikers de exacte waarde (Id) van de groep in de personenkiezer typen en het bijbehorende claimtype selecteren. Dat is niet gebruiksvriendelijk of betrouwbaar.
Om dit te voorkomen, gebruikt dit artikel claimprovider EntraCP van derden om de groep op een beschrijvende manier te vinden in SharePoint:

Personenkiezer zoeken in Microsoft Entra-groep

De toegang van Gastgebruikers beheren

Er zijn twee soorten gastaccounts:

  • B2B-gastaccounts: Deze gebruikers bevinden zich in een externe Microsoft Entra-tenant
  • MSA-gastaccounts: de gebruikers bevinden zich in een Microsoft-identificatieprovider (Hotmail, Outlook) of een sociale accountprovider (Google of vergelijkbaar)

Standaard stelt Microsoft Entra-id zowel de unieke gebruikers-id als de claimnaam in op het kenmerk user.userprincipalname.
Helaas is dit kenmerk dubbelzinnig voor gastaccounts, zoals u de onderstaande tabel kunt zien:

Bronkenmerk ingesteld in Microsoft Entra-id Werkelijke eigenschap gebruikt door Microsoft Entra ID voor B2B-gasten Werkelijke eigenschap die wordt gebruikt door Microsoft Entra ID voor MSA-gasten De eigenschap waarop SharePoint kan vertrouwen om de identiteit te valideren
user.userprincipalname mail, bijvoorbeeld: guest@PARTNERTENANT userprincipalname, bijvoorbeeld: guest_outlook.com#EXT#@TENANT.onmicrosoft.com ambiguous (dubbelzinnig)
user.localuserprincipalname userprincipalname, bijvoorbeeld: guest_PARTNERTENANT#EXT#@TENANT.onmicrosoft.com userprincipalname, bijvoorbeeld: guest_outlook.com#EXT#@TENANT.onmicrosoft.com userprincipalname

Ten slotte, om er zeker van te zijn dat gastaccounts allemaal worden geïdentificeerd met hetzelfde kenmerk, moeten de id-claims van de bedrijfstoepassing worden bijgewerkt om het kenmerk user.localuserprincipalname te gebruiken in plaats van user.userprincipalname.

Toepassing bijwerken om een consistent kenmerk te gebruiken voor alle gastgebruikers

  1. Selecteer in overzicht van de enterprise-toepassingSharePoint corporate farm, 2. Eenmalige aanmelding instellen.

  2. Selecteer op de pagina Eenmalige aanmelding instellen met SAML het pictogram Bewerken in het deelvenster Gebruikerskenmerken & Claims .

  3. Voer in de sectie Gebruikerskenmerken en -claims de volgende stappen uit:

    1. Selecteer Unieke gebruikers-id (naam-id), wijzig vervolgens de eigenschap Bronkenmerk in user.localuserprincipalname en klik dan op Opslaan.

    2. Selecteer http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name, wijzig vervolgens de eigenschap Bronkenmerk in user.localuserprincipalname en klik dan op Opslaan.

    3. De gebruikerskenmerken en -claims moeten er als volgt uitzien:

    Gebruikerskenmerken en -claims voor gasten

De gastgebruikers uitnodigen in SharePoint

Notitie

In deze sectie wordt ervan uitgegaan dat claimprovider EntraCP wordt gebruikt

In de bovenstaande sectie hebt u de bedrijfstoepassing bijgewerkt zodat u een consistent kenmerk kan gebruiken voor alle gastaccounts.
Nu moet de configuratie van EntraCP worden bijgewerkt om die wijziging weer te geven en het kenmerk userprincipalname voor gastaccounts te gebruiken:

  1. Open vervolgens de site Centraal beheer van SharePoint.
  2. Selecteer onder Beveiliging de globale configuratie van EntraCP.
  3. In de sectie Eigenschap Gebruikers-id: Stel de gebruikers-id voor gastgebruikers in op het volgende: UserPrincipalName.
  4. Klik dan op OK

Schermopname van de configuratie van entraCP-gastenaccounts.

Nu kunt u elke gastgebruikers uitnodigen op de SharePoint-sites.

De federatie configureren voor meerdere webtoepassing

De configuratie werkt voor één webtoepassing. Als u dezelfde vertrouwde id-provider wilt gebruiken voor meerdere webtoepassingen, moet u aanvullende configuratiestappen uitvoeren. Stel dat u een afzonderlijke webtoepassing https://otherwebapp.contoso.local/ hebt en dat u er nu Microsoft Entra-verificatie op wilt inschakelen. Om dat te doen, configureert u SharePoint om de SAML WReply-parameter door te geven en dan voegt u de URL's toe in de bedrijfstoepassing.

SharePoint configureren om SAML WReply-parameter door te geven

  1. Open de SharePoint 201x-beheershell op de SharePoint-server en voer de volgende opdrachten uit. Gebruik dezelfde naam van de uitgever van het vertrouwde identiteitstoken dat u eerder hebt gebruikt.
$t = Get-SPTrustedIdentityTokenIssuer "MicrosoftEntraTrust"
$t.UseWReplyParameter = $true
$t.Update()

De URL's toevoegen in bedrijfstoepassing

  1. Meld u als cloudtoepassingsbeheerder aan bij het Microsoft Entra-beheercentrum.

  2. Blader naar Bedrijfstoepassingen voor identiteitstoepassingen>>> Selecteer de eerder gemaakte bedrijfstoepassing en selecteer Eenmalige aanmelding.

  3. Bewerk Standaard SAML-configuratie op de pagina Eenmalige aanmelding met SAML instellen.

  4. Voeg in de sectie Antwoord-URL (ASSERTION Consumer Service-URL) de URL (bijvoorbeeld https://otherwebapp.contoso.local/) toe van alle aanvullende webtoepassingen die gebruikers moeten aanmelden met Microsoft Entra-id en klik op Opslaan.

Extra webtoepassingen specificeren

De levensduur van het beveiligingstoken configureren

Standaard maakt Microsoft Entra ID een SAML-token dat 1 uur geldig is, die niet kan worden aangepast in Azure Portal of met behulp van beleid voor voorwaardelijke toegang.
Het is echter mogelijk om een aangepast beleid voor de levensduur van tokens te maken en toe te wijzen aan de bedrijfstoepassing die u hebt gemaakt voor SharePoint Server.
U kunt het onderstaande script uitvoeren om dit te bereiken:

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