Konfigurere en SAML 2.0-udbyder for portaler med AD FS

Bemærk

Fra 12. oktober 2022 bliver Power Apps-portaler til Power Pages. Flere oplysninger: Microsoft Power Pages er nu generelt tilgængelig (blog)
Vi overfører og fletter snart dokumentationen til Power Apps-portalerne med Power Pages-dokumentationen.

Vigtigt

Trinnene til konfiguration af Active Directory Federation Services (AD FS) kan variere afhængigt af versionen af din AD FS-server.

Oprette en AD FS relying party-tillid

Bemærk

Se Konfigurere AD FS ved hjælp af PowerShell for oplysninger om, hvordan du udfører disse trin i et PowerShell-script.

  1. Brug værktøjet AD FS Management, og gå til Service > Claim Descriptions.

    1. Vælg Add Claim Description.

    2. Angiv kravet:

      • Visningsnavn: Persistent Identifier

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

      • Markér afkrydsningsfeltet for: Publish this claim description in federation metadata as a claim type that this federation service can accept

      • Markér afkrydsningsfeltet for: Publish this claim description in federation metadata as a claim type that this federation service can send

    3. Vælg OK.

  2. Brug værktøjet AD FS Management, og vælg Tillidsforhold >Relying Party-tillidsforhold.

    1. Vælg Tilføj Relying Party-tillid.

    2. Velkommen: Vælg Start.

    3. Vælg datakilde: Vælg Angiv data om en relying party manuelt, og vælg derefter Næste.

    4. Angiv vist navn: Angiv et navn, og vælg derefter Næste. Eksempel: https://portal.contoso.com/

    5. Vælg profil: Vælg AD FS 2.0 profil, og vælg derefter Næste.

    6. Konfigurer certifikat: Vælg Næste.

    7. Konfigurer URL-adresse: Markér afkrydsningsfeltet Aktivér support for SAML 2.0 WebSSO-protokollen. URL-adresse til Relying party SAML 2.0 SSO-tjeneste: Angiv https://portal.contoso.com/signin-saml2
      Bemærk, at AD FS kræver, at portalen kører på HTTPS.

      Bemærk

      Det resulterende slutpunkt har følgende indstillinger:

    8. Konfigurere identiteter: Angiv https://portal.contoso.com/, vælg Tilføj, og vælg derefter Næste. Hvis det er relevant, kan du tilføje flere identiteter for hver ekstra relying party-portal. Brugere kan godkendes på tværs af en eller alle tilgængelige identiteter.

    9. Vælg regler for godkendelse af udstedelse: Vælg Giv alle brugere adgang til denne Relying Party, og vælg derefter Næste.

    10. Klar til at tilføje tillid: Vælg Næste.

    11. Vælg Luk.

  3. Tilføj kravet Navn-id til den relying party-tillid:

    Omdan navn på Windows-firma til Navn-id-krav (Transformér et indgående krav):

    • Indgående kravtype: Windows-kontonavn

    • Udgående kravtype: Navn-id

    • Id-format for udgående navn: Persistent Identifier

    • Passér gennem alle kravsværdier

Konfigurere SAML 2.0-udbyderen

Når du har konfigureret AD FS-relying party-tillidsforholdet, kan du udføre trinnene under Konfigurere en SAML 2.0-udbyder for portaler.

Identitetsudbyder–startet logon

AD FS understøtter den identitetsudbyder–initierede SSO (single sign-on) som profil for SAML 2.0-specifikation. Hvis portalen (tjenesteudbyder) skal svare korrekt på den SAML-anmodning, der er startet af identitetsudbyderen, skal RelayState-parameteren være kodet korrekt.

Den grundlæggende strengværdi, der skal kodes i SAML-RelayState-parameteren, skal have formatet ReturnUrl=/content/sub-content/, hvor /content/sub-content/ er stien til den ønskede webside, der skal navigeres til på portalen (tjenesteudbyder). Stien kan erstattes af en hvilken som helst gyldig webside på portalen. Strengværdien kodes og placeres i en beholderstreng i formatet RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt;. Hele strengen kodes igen og føjes til en anden objektbeholder med formatet <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=&lt;URL> encoded RPID/RelayState&gt;.

Med eksempelvis tjenesteudbyderstien /content/sub-content/ og Relying Party-part-id'et https://portal.contoso.com/ skal du konstruere URL-adressen i følgende trin:

  • Kode værdien af ReturnUrl=/content/sub-content/ for at få ReturnUrl%3D%2Fcontent%2Fsub-content%2F

  • Kode værdien af https://portal.contoso.com/ for at få https%3A%2F%2Fportal.contoso.com%2F

  • Kode værdien af RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F for at få RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

  • Indsæt den AD FS-identitetsudbyder–initierede SSO-sti for at få den endelige URL-adresse https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

Du kan bruge følgende PowerShell-script til at konstruere URL-adressen. Gem scriptet i en fil med navnet 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

Konfigurere AD FS ved hjælp af PowerShell

Processen for tilføjelse af et Relying Party-tillidsforhold i AD FS kan også udføres ved at køre følgende PowerShell-script på AD FS-serveren. Gem scriptet i en fil med navnet Add-AdxPortalRelyingPartyTrustForSaml.ps1. Efter kørsel af scriptet skal du fortsætte med at konfigurere indstillingerne for portalwebstedet.

<# 

.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

Konfigurere en SAML 2.0-udbyder

Når du har konfigureret AD FS-relying party-tillidsforholdet, kan du udføre trinnene under Konfigurere en SAML 2.0-udbyder for portaler.

Se også

Konfigurere en SAML 2.0-udbyder for portaler med Azure AD
Ofte stillede spørgsmål om brug af SAML 2.0 i portaler
Konfigurere en SAML 2.0-udbyder for portaler

Bemærk

Kan du fortælle os om dine sprogpræferencer for dokumentation? Tag en kort undersøgelse. (bemærk, at denne undersøgelse er på engelsk)

Undersøgelsen tager ca. syv minutter. Der indsamles ingen personlige data (erklæring om beskyttelse af personlige oplysninger).