Delen via


Een SAML 2.0-provider instellen met AD FS

Active Directory Federation Services (AD FS) is een van de SAML 2.0-identiteitsproviders die u kunt gebruiken om bezoekers te verifiëren die naar uw Power Pages-site komen. U kunt elke provider gebruiken die voldoet aan de SAML 2.0-specificatie.

Dit artikel beschrijft de volgende stappen:

Belangrijk

De stappen voor het configureren van AD FS kunnen anders zijn, afhankelijk van de versie van uw AD FS-server.

AD FS instellen in Power Pages

Stel AD FS in als een id-provider voor uw site.

  1. Selecteer op uw Power Pages-site de optie Instellen>Identiteitsproviders.

    Als er geen id-providers verschijnen, zorg er dan voor dat Extern aanmelden is ingesteld op Aan in de algemene verificatie-instellingen van uw site.

  2. Selecteer + Nieuwe provider.

  3. Selecteer onder Aanmeldingsprovider selecteren de waarde Overig.

  4. Selecteer onder Protocol de optie SAML 2.0.

  5. Voer een naam voor de webinarprovider in.

    De providernaam is de tekst op de knop die gebruikers zien wanneer ze hun id-provider selecteren op de aanmeldpagina.

  6. Selecteer Volgende.

  7. Onder Antwoord-URL selecteert u Kopiëren.

    Sluit uw Power Pages-browsertabblad niet. U hebt het snel nodig.

Maak een AD FS Relying Party Trust aan

U kunt ook een PowerShell-script gebruiken om deze stappen uit te voeren.

  1. Selecteer in serverbeheer Tools en daarna AD FS-beheer.

  2. Vouw Service uit.

  3. Selecteer in het zijvenster aan de rechterkant Claimbeschrijving toevoegen.

  4. Voer de volgende waarden in:

    • Weergavenaam: Permanente id

    • Claim-id: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

    • Selecteer de opties Publiceer deze claimbeschrijving in federatieve metadata… .

  5. Selecteer OK.

  6. Selecteer Vertrouwensrelaties>Relying Party Trusts.

  7. Selecteer Relying Party Trust toevoegen.

  8. Selecteer Starten.

  9. Selecteer Handmatig gegevens voor de Relying Party invoeren en selecteer daarna Volgende.

  10. Voer een naam in, bijvoorbeeld https://portal.contoso.com/.

  11. Selecteer Volgende.

  12. Selecteer AD FS 2.0-profiel en daarna Volgende.

  13. Selecteer op de pagina Certificaat configureren de optie Volgende.

  14. Selecteer Ondersteuning inschakelen voor het SAML 2.0 WebSSO-protocol.

  15. Voer onder Relying Party SAML 2.0 SSO-service-URL de antwoord-URL in die u hebt gekopieerd. AD FS vereist dat de website HTTPS, niet HTTP uitvoert.

  16. Selecteer Volgende.

  17. Voer op de pagina Id's configureren de URL van uw site in en selecteer Toevoegen.

    U kunt zo nodig meer identiteiten toevoegen voor elke extra Relying Party-website. Gebruikers kunnen met alle beschikbare identiteiten verificatie uitvoeren.

  18. Selecteer Volgende.

  19. Selecteer op de pagina Multifactorverificatie nu configureren? de optie Ik wil op dit moment geen instellingen voor multifactorverificatie configureren voor deze Relying Party Trust.

  20. Selecteer op de pagina Regels voor uitgifte-autorisatieregels kiezen de optie Alle gebruikers toegang geven tot deze relying party en selecteer vervolgens Volgende.

  21. Bekijk de Trust-instellingen en selecteer daarna Volgende.

  22. Selecteer Sluiten.

  23. Selecteer in Claimregels bewerken een van de volgende tabbladen, afhankelijk van de trust die u aan het bewerken bent en in welke regelset u de regel wilt maken:

    • Regels voor acceptatietransformatie
    • Regels voor uitgiftetransformatie
    • Regels voor uitgifte-autorisatie
    • Regels voor delegatie-autorisatie
  24. Selecteer Regel toevoegen.

  25. Selecteer in de lijst Claimregelsjabloon de optie Een binnenkomende claim transformeren en selecteer Volgende.

  26. Voer de volgende waarden in of selecteer deze:

    • Claimregelnaam: Windows-accountnaam transformeren in Naam-id

    • Binnenkomend claimtype: Windows-accountnaam

    • Uitgaand claimtype: Naam-id

    • De indeling van uitgaande naam-id: Permanente id

  27. Selecteer Alle claimwaarden passeren.

  28. Selecteer Voltooien en dan OK.

Configuratie van de provider voltooien

Nadat u de AD FS Relying Party Trust hebt ingesteld:

  1. Maak een app-registratie in Azure.

  2. Voer site-instellingen in Power Pages in.

Door identiteitsprovider geïnitieerde aanmelding

AD FS ondersteunt het door de identiteitsprovider geïnitieerde SSO-profiel (eenmalige aanmelding) van de SAML 2.0-specificatie. Om ervoor te zorgen dat de website van de serviceprovider correct reageert op de SAML-aanvraag van de id-provider, moet u de parameter RelayState coderen.

De basistekenreekswaarde die in de parameter RelayState van SAML moet worden gecodeerd, moet de volgende indeling hebben: ReturnUrl=/content/sub-content/, waarbij /content/sub-content/ het pad is voor navigatie naar de gewenste pagina op de website van de serviceprovider. U kunt het pad naar elke geldige pagina op de website specificeren. De tekenreekswaarde wordt gecodeerd en in een containertekenreeks met de indeling RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt; geplaatst. Deze gehele tekenreeks wordt opnieuw gecodeerd en toegevoegd aan een andere container met de indeling <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=&lt;URL> encoded RPID/RelayState&gt;.

Voorbeeld: gegeven het serviceprovider-pad: /content/sub-content/ en de Relying Party-id https://portal.contoso.com/, stelt u de URL samen met de volgende stappen:

  • Codeer de waarde ReturnUrl=/content/sub-content/ om ReturnUrl%3D%2Fcontent%2Fsub-content%2F te krijgen.

  • Codeer de waarde https://portal.contoso.com/ om https%3A%2F%2Fportal.contoso.com%2F te krijgen.

  • Codeer de waarde RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F om RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F te krijgen.

  • Voeg het door de AD FS-identiteitsprovider geïnitieerde SSO-pad vooraan toe om de uiteindelijke URL https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F te verkrijgen

U kunt u het volgende PowerShell-script gebruiken om de URL samen te stellen. Sla het script op in een bestand met de naam Get-IdPInitiatedUrl.ps1.


<#
.SYNOPSIS 
Constructs an IdP-initiated SSO URL to access a website page on the service provider.
.PARAMETER path
The path to the website page.
.PARAMETER rpid
The relying party identifier.
.PARAMETER adfsPath
The AD FS IdP initiated SSO page.
.EXAMPLE
PS C:\\> .\\Get-IdPInitiatedUrl.ps1 -path "/content/sub-content/" -rpid "https://portal.contoso.com/" -adfsPath "https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx"
#>
param
(
[parameter(mandatory=$true,position=0)]
$path,
[parameter(mandatory=$true,position=1)]
$rpid,
[parameter(position=2)]
$adfsPath = https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx
)
$state = ReturnUrl=$path
$encodedPath = [uri]::EscapeDataString($state)
$encodedRpid = [uri]::EscapeDataString($rpid)
$encodedPathRpid = [uri]::EscapeDataString("RPID=$encodedRpid&RelayState=$encodedPath")
$idpInitiatedUrl = {0}?RelayState={1} -f $adfsPath, $encodedPathRpid
Write-Output $idpInitiatedUrl

AD FS configureren met PowerShell

In plaats van dat u handmatig een Relying Party Trust in AD FS toevoegt, kunt u ook het volgende PowerShell-script uitvoeren op de AD FS-server. Sla het script op in een bestand met de naam Add-AdxPortalRelyingPartyTrustForSaml.ps1. Nadat het script is uitgevoerd, gaat u verder met configureren van de site-instellingen in Power Pages.

<# 
.SYNOPSIS
Adds a SAML 2.0 relying party trust entry for a website.
.PARAMETER domain
The domain name of the website.
.EXAMPLE
PS C:\\> .\\Add-AdxPortalRelyingPartyTrustForSaml.ps1 -domain portal.contoso.com
#>
param
(
[parameter(Mandatory=$true,Position=0)]
$domain,
[parameter(Position=1)]
$callbackPath = /signin-saml2
)
$VerbosePreference = Continue
$ErrorActionPreference = Stop
Import-Module adfs
Function Add-CrmRelyingPartyTrust
{
param (
[parameter(Mandatory=$true,Position=0)]
$name
)
$identifier = https://{0}/ -f $name
$samlEndpoint = New-ADFSSamlEndpoint -Binding POST -Protocol SAMLAssertionConsumer -Uri (https://{0}{1} -f $name, $callbackPath)
$identityProviderValue = Get-ADFSProperties | % { $_.Identifier.AbsoluteUri }
$issuanceTransformRules = @'
@RuleTemplate = MapClaims
@RuleName = Transform [!INCLUDE[pn-ms-windows-short](../../../includes/pn-ms-windows-short.md)] Account Name to Name ID claim
c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
=> issue(Type = "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["https://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] = "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent");
@RuleTemplate = LdapClaims
@RuleName = Send LDAP Claims
c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(store = "[!INCLUDE[pn-active-directory](../../../includes/pn-active-directory.md)]", types = ("https://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), query = ";givenName,sn,mail;{{0}}", param = c.Value);
'@ -f $identityProviderValue
$issuanceAuthorizationRules = @'
@RuleTemplate = AllowAllAuthzRule
=> issue(Type = https://schemas.microsoft.com/authorization/claims/permit, Value = true);
'@
Add-ADFSRelyingPartyTrust -Name $name -Identifier $identifier -SamlEndpoint $samlEndpoint -IssuanceTransformRules $issuanceTransformRules -IssuanceAuthorizationRules $issuanceAuthorizationRules
}
# add the 'Identity Provider' claim description if it is missing
[!INCLUDE[cc-pages-ga-banner](../../../includes/cc-pages-ga-banner.md)]
if (-not (Get-ADFSClaimDescription | ? { $_.Name -eq Persistent Identifier })) {
Add-ADFSClaimDescription -name "Persistent Identifier" -ClaimType "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" -IsOffered:$true -IsAccepted:$true
}
# add the website relying party trust
[!INCLUDE[cc-pages-ga-banner](../../../includes/cc-pages-ga-banner.md)]
Add-CrmRelyingPartyTrust $domain

Zie ook

Een SAML 2.0-provider instellen
Een SAML 2.0-provider instellen met Microsoft Entra ID
Veelgestelde vragen over SAML 2.0