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.
I AD FS-hanteringsverktyget, gå till Tjänst > Anspråksbeskrivningar.
Välj Lägg till anspråksbeskrivning.
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
Välj OK.
Använd AD FS-hanteringsvekrtyget, markera Förtroenderelationer >Beroende parts förtroende.
Välj Lägg till beroende parts förtroende.
Välkommen: Välj Starta.
Välj datakälla: Välj Ange data som berör beroende part manuellt och välj sedan Nästa.
Ange visningsnamn: Ange ett namn och välj sedan Nästa. Exempel: https://portal.contoso.com/
Välj profil: Välj AD FS 2.0-profil och välj sedan Nästa.
Konfigurera certifikat: Välj Nästa.
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:
- Slutpunktstyp:Sslutpunkt framställning av målslutpunkter
- Bindning:POST
- Index: saknas (0)
- URL: https://portal.contoso.com/signin-saml2
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).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.
Klar att lägga till betrodda: Välj Nästa.
Välj Stäng.
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=<URL encoded RPID>&RelayState=<URL encoded RelayState>
. Hela strängen kodas återigen och läggs till en annan behållare av formatet: <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL> encoded RPID/RelayState>
.
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).