Een SAML 2.0-provider configureren voor portals met AD FS

Notitie

Met ingang van 12 oktober 2022 wordt Power Apps-portals hernoemd tot Power Pages. Meer informatie: Microsoft Power Pages is nu algemeen beschikbaar (blog)
We zullen binnenkort de documentatie voor Power Apps-portals migreren en samenvoegen met Power Pages-documentatie.

Belangrijk

De stappen voor het configureren van Active Directory Federation Services (AD FS) kunnen anders zijn, afhankelijk van de versie van uw AD FS-server.

Maak een AD FS Relying Party Trust aan

Notitie

Zie AD FS configureren met PowerShell voor informatie over hoe u deze stappen uitvoert in een PowerShell-script.

  1. Ga naar Service > Claimbeschrijvingen met het AD FS-beheerprogramma.

    1. Selecteer Claimbeschrijving toevoegen.

    2. Geef de claim op:

      • Weergavenaam: Permanente id

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

      • Selectievakje Inschakelen voor: publiceren van deze claimbeschrijving in federatieve metagegevens als claimtype dat door deze federatieve service kan worden geaccepteerd

      • Selectievakje Inschakelen voor: publiceren van deze claimbeschrijving in federatieve metagegevens als claimtype dat door deze federatieve service kan worden verzonden

    3. Selecteer OK.

  2. Met het AD FS-beheerprogramma selecteert u Vertrouwensrelaties >Relying Party Trusts.

    1. Selecteer Relying Party Trust toevoegen.

    2. Welkom: selecteer Start.

    3. Gegevensbron selecteren: selecteer Handmatig gegevens voor de relying party invoeren en selecteer daarna Volgende.

    4. Weergavenaam opgeven: voer een naam in en selecteer daarna Volgende. Voorbeeld: https://portal.contoso.com/

    5. Profiel kiezen: selecteer AD FS 2.0-profiel en selecteer daarna Volgende.

    6. Certificaat configureren: selecteer Volgende.

    7. URL configureren: schakel het selectievakje Ondersteuning inschakelen voor het SAML 2.0 WebSSO-protocol in. De service-URL van de relying party SAML 2.0 SSAO-service: Typ https://portal.contoso.com/signin-saml2
      Opmerking: AD FS vereist dat de portal op HTTPS wordt uitgevoerd.

      Notitie

      Het eindpunt dat u hebt geconfigureerd, heeft de volgende instellingen:

    8. Identiteiten configureren: voer https://portal.contoso.com/ in, selecteer Toevoegen en selecteer daarna Volgende. Indien van toepassing kunt u meer identiteiten toevoegen voor elke extra relying party-portal. Gebruikers kunnen voor alle beschikbare identiteiten verificatie uitvoeren.

    9. Regels voor uitgifte-autorisatieregels kiezen: selecteer Alle gebruikers toegang geven tot deze relying party en selecteer daarna Volgende.

    10. Gereed om Trust toe te voegen: selecteer Volgende.

    11. Selecteer Sluiten.

  3. Voeg de Naam-ID-claim aan de trust van de relying party toe:

    Zet Windows-accountnaam om in Naam-id-claim (Een binnenkomende claim transformeren):

    • Type binnenkomende claim: Windows-accountnaam

    • Uitgaand claimtype: Naam ID

    • De indeling van uitgaande naam-ID: Permanente ID

    • Alle claimwaarden passeren

De SAML 2.0-provider configureren

Nadat u de vertrouwensrelatie met een AD FS Relying Party hebt ingesteld, kunt u de stappen volgen in Een SAML 2.0-provider configureren voor portals.

Door identiteitsprovider geïnitieerde aanmelding

AD FS ondersteunt het door de identiteitsprovider geïnitieerde SSO-profiel (eenmalige aanmelding) van de SAML 2.0-specificatie. Als u de portal (serviceprovider) correct wilt laten reageren op de SAML-aanvraag die de identiteitsprovider heeft gestart, moet de parameter RelayState op de juiste wijze zijn gecodeerd.

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 webpagina in de portal (serviceprovider). Het pad kan worden vervangen door elke geldige webpagina in de portal. De tekenreekswaarde wordt gecodeerd en geplaatst in een containertekenreeks met de indeling RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt;. 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 portal page on the service provider.

.PARAMETER path

The path to the portal 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

Het proces voor het toevoegen van een relying party trust in AD FS kan ook worden uitgevoerd door het volgende PowerShell-script uit te voeren 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 door met de configuratie van de portalsite-instellingen.

<# 

.SYNOPSIS

Adds a SAML 2.0 relying party trust entry for a website.

.PARAMETER domain

The domain name of the portal.

.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 portal relying party trust


[!INCLUDE[cc-pages-ga-banner](../../../includes/cc-pages-ga-banner.md)]

Add-CrmRelyingPartyTrust $domain

Een SAML 2.0-provider configureren

Nadat u de vertrouwensrelatie met een AD FS Relying Party hebt ingesteld, kunt u de stappen volgen in Een SAML 2.0-provider configureren voor portals.

Zie ook

Een SAML 2.0-provider configureren voor portals met Azure AD
Veelgestelde vragen over het gebruik van SAML 2.0 in portals
Een SAML 2.0-provider configureren voor portals

Notitie

Laat ons uw taalvoorkeuren voor documentatie weten! Beantwoord een korte enquête. (houd er rekening mee dat deze in het Engels is)

De enquête duurt ongeveer zeven minuten. Er worden geen persoonlijke gegevens verzameld (privacyverklaring).