Dela via


Konfigurera SAML 2.0 provider för portaler med AD FS

Anteckning

Från och med den 12 oktober 2022 byter Power Apps-portaler namn till Power Pages. Mer information: Microsoft Power Pages är nu allmänt tillgänglig (blogg)
Vi kommer snart migrera och sammanfoga dokumentationen för Power Apps-portaler med Power Pages-dokumentationen.

Viktigt

Stegen för konfigurationen av Active Directory Federation Services (AD FS) kan variera beroende på vilken version av AD FS-servern du har.

Skapa en AD FS beroende parts förtroende

Anteckning

Se Konfigurera AD FS genom att använda PowerShell, för information om hur du utför dessa steg i ett PowerShell-skript.

  1. I AD FS-hanteringsverktyget, gå till Tjänst > Anspråksbeskrivningar.

    1. Välj Lägg till anspråksbeskrivning.

    2. Specificera anspråket:

      • VisningsnamnPermanent identifierare

      • Anspråksidentifierare:urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

      • Aktivera kryssruta för: Publicera denna anspråksbeskrivning i federationens metadata som en anspråkstyp som federationstjänsten kan acceptera

      • Aktivera kryssruta för: Publicera denna anspråksbeskrivningen i federationens metadata som en anspråkstyp som federationstjänsten kan skicka

    3. Välj OK.

  2. Använd AD FS-hanteringsvekrtyget, markera Förtroenderelationer >Beroende parts förtroende.

    1. Välj Lägg till beroende parts förtroende.

    2. Välkommen: Välj Starta.

    3. Välj datakälla: Välj Ange data som berör beroende part manuellt och välj sedan Nästa.

    4. Ange visningsnamn: Ange ett namn och välj sedan Nästa. Exempel: https://portal.contoso.com/

    5. Välj profil: Välj AD FS 2.0-profil och välj sedan Nästa.

    6. Konfigurera certifikat: Välj Nästa.

    7. Konfigurera URL: markera kryssrutan Aktivera stöd för protokollet SAML 2.0 WebSSO. Tjänste-URL för beroende part SAML 2.0 SSO: Besök https://portal.contoso.com/signin-saml2
      Obs! AD FS kräver att portalen körs på HTTPS.

      Anteckning

      Den resulterande slutpunkten har följande inställningar:

    8. Konfigurera identiteter: Ange https://portal.contoso.com/, välj Lägg till och välj Nästa. Om så är tillämpligt, kan du lägga till flera identiteter för varje ytterligare beroende parts portal. Användare kommer att kunna autentisera över någon eller alla tillgänglig(a) identitet(er).

    9. Välj utfärdande auktoriseringsregler: Välj Tillåt alla användare att få åtkomst till denna beroende part, och välj sedan Nästa.

    10. Klar att lägga till betrodda: Välj Nästa.

    11. Välj Stäng.

  3. Lägg till namn-ID-kravet till beroende parts förtroende:

    OmvandlaWindows-kontonamn till Namn-ID-anspråk (omvandla inkommande anspråk):

    • Inkommande anspråkstyp:Windows-kontonamn

    • Utgående typ: namn-ID

    • Utgående namn-ID-format: Permanent identifierare

    • Passera alla anspråksvärden

Konfigurera SAML 2.0-leverantör

Efter att du har ställt in förtroendet för AD FS-förlitande part kan du följa stegen för konfigurera SAML 2.0-leverantör för portalen.

Identitetsleverantör–initierad inloggning

AD FS stöder identitetsprovider–-initierad enkel inloggning (SSO)-profil för SAML 2.0 specifikationen. För att portalen (tjänstleverantör) ska kunna svara korrekt på den SAML-begäran som startats av identitetsprovider måste RelayState-parametern kodas korrekt.

Grundläggande strängvärde som ska kodas i SAML RelayState-parametern måste vara i formatet: ReturnUrl=/content/sub-content/ om /content/sub-content/ är sökvägen till önskad webbsida att navigera till på portalen (tjänstleverantören). Sökvägen kan ersättas av en giltig webbsida på portalen. Strängvärdet kodas och placeras i en behållarsträng i formatet: RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt;. Hela strängen kodas återigen och läggs till en annan behållare av formatet: <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=&lt;URL> encoded RPID/RelayState&gt;.

Exempelvis anges sökvägen tjänstleverantör: /content/sub-content/ och beroende parts ID: https://portal.contoso.com/, bygger upp URL:en med stegen:

  • Koda värdet ReturnUrl=/content/sub-content/ för att få ReturnUrl%3D%2Fcontent%2Fsub-content%2F

  • Koda värdet https://portal.contoso.com/ för att få https%3A%2F%2Fportal.contoso.com%2F

  • Koda värdet RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F för att få RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

  • Lägg till AD FS identitetsprovider–-initierad SSO-sökväg för att få slutgiltigt 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

Du kan skapa URL:en med hjälp av följande PowerShell-skript. Spara skriptet i en fil med namnet 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

Konfigurera AD FS genom att använda PowerShell

Processen att lägga till ett förlitande part-förtroende i AD FS kan också utföras genom att köra följande PowerShell-skript på AD FS-servern. Spara skriptet i en fil med namnet Add-AdxPortalRelyingPartyTrustForSaml.ps1. När du har kört skriptet fortsätter du med att konfigurera inställningar för portalwebbplatsen.

<# 

.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

Konfigurera en SAML 2.0-leverantör

Efter att du har ställt in förtroendet för AD FS-förlitande part kan du följa stegen för konfigurera SAML 2.0-leverantör för portalen.

Se även

Konfigurera SAML 2.0 provider för portaler med Azure AD
Vanliga frågor om hur du använder SAML 2.0 i portaler
Konfigurera SAML 2.0-provider för portaler

Anteckning

Kan du berätta om dina inställningar för dokumentationsspråk? Svara i en kort undersökning. (observera att undersökningen är på engelska)

Undersökningen tar ungefär sju minuter. Inga personuppgifter samlas in (sekretesspolicy).