Dela via


Konfigurera SAML 2.0-provider med AD FS

Active Directory Federation Services (AD FS) är en av de SAML 2.0 identitetsprovider du kan använda för att autentisera besökare på din Power Pages-webbplats. Du kan använda vilken annan provider som helst som följer SAML 2.0-specifikation.

Denna artikel beskriver följande steg:

Viktigt!

Stegen för konfigurationen av AD FS kan variera beroende på vilken version av AD FS-servern du har.

Konfigurera AD FS i Power Pages

Konfigurera AD FS som en identitetskälla för webbplats

  1. På din Power Pages-webbplats kan du välja Säkerhet>Identitetsproviders.

    Om inga identitetsleverantörer visas, se till Extern inloggning anges till i webbplatsens allmänna autentiseringsinställningar.

  2. Välj + Ny provider.

  3. Under Välj inloggningsprovider som Annat.

  4. Under protokoll som SAML 2.0.

  5. Ange ett namn på leverantören.

    Leverantörens namn är texten på knappen som användare ser när de väljer sin identitetsleverantör på inloggningssidan.

  6. Välj Nästa.

  7. Under Svars-URL, välj Kopiera.

    Stäng inte webbläsarfliken Power Pages. Du kommer snart tillbaka till det.

Skapa en AD FS beroende parts förtroende

Du kan också använda ett PowerShell-skript för att utföra dessa steg.

  1. I Serverhanteraren, välj Verktyg och välj sedan AD FS-hantering.

  2. Visa tjänst.

  3. I vänster panel väljer du Lägg till beskrivning av anspråk.

  4. Ange följande värden:

    • Visningsnamn: Permanent identifierare

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

    • Markera båda Publicera den här anspråksbeskrivningen i federationsmetadata… alternativ.

  5. Välj OK.

  6. Välj Förtroenderelationer>Beroende parts förtroende.

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

  8. Välj start.

  9. Välj Ange data som berör beroende part manuellt och välj sedan Nästa.

  10. Ange ett namn, till exempel https://portal.contoso.com/.

  11. Välj Nästa.

  12. Välj AD FS 2.0 profil, och välj Nästa.

  13. På sidan Konfigurera certifikat välj Nästa.

  14. Välj Aktivera support för SAML 2.0 WebSSO-protokollet.

  15. Under förlitande part SAML 2.0 SSO tjänst-URL, ange det svars-URL du kopierade. Obs! AD FS kräver att webbplatsen kör HTTPS, inte HTTP.

  16. Välj Nästa.

  17. På sidan Konfigurera identifierare ange webbplatsens URL och välj Lägg till.

    Du kan lägga till fler identiteter för varje ytterligare beroende parts webbplats om det behövs. Användare kan autentisera med alla tillgänglig identiteter.

  18. Välj Nästa.

  19. På sidan konfigurera multifaktorautentisering nu?, välj Jag vill inte konfigurera inställningar av multifaktorautentisering för denna förlitande part för närvarande.

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

  21. Granska inställningar av förtroende och välj sedan Nästa.

  22. Välj Stäng.

  23. I Redigera anspråksregler, väljer du en av följande flikar, beroende på vilket förtroende du redigerar och i vilken regeluppsättning du vill skapa regeln:

    • Regler för acceptansomvandling
    • Regler för utfärdande omvandling
    • Regler för utfärdande auktorisering
    • Regler för delegering av auktorisering
  24. Välj Lägg till regel.

  25. I listan Mall för anspråksregel, välj Omvandla ett inkommande anspråk och välj Nästa.

  26. Ange eller välj följande värden:

    • Namnet på anspråksregeln: Omvandla Windows-kontonamnet till namn-ID

    • Inkommande anspråkstyp: Windows-kontonamn

    • Utgående anspråkstyp: Namn-ID

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

  27. Välj Passera alla anspråksvärden.

  28. Välj Avsluta, och välj OK.

Slutför inställningen av leverantören

När du har ställt in AD FS beroende parts förtroende:

  1. Skapa en appregistrering i Azure.

  2. Ange webbplatsinställningar i Power Pages.

Identitetsleverantörinitierad inloggning

AD FS stöder profilen identitetsprovider-initierad enkel inloggning (SSO) för SAML 2.0-specifikationen. För att tjänstleverantörens webbplats ska kunna svara korrekt på identitetsproviderns SAML-begäran måste du koda RelayState parametern.

Grundläggande strängvärde som ska kodas i SAML RelayState-parametern måste vara i formatet ReturnUrl=/content/sub-content/, där /content/sub-content/ är sökvägen till sidan du vill gå till på tjänsteleverantörens webbplats. Du kan ange sökvägen till en giltig sida på webbplatsen. 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 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

Konfigurera AD FS genom att använda PowerShell

Istället för att lägga till ett förlitande part-förtroende manuellt i AD FS kan köra följande PowerShell-skript på AD FS-servern. Spara skriptet i en fil med namnet Add-AdxPortalRelyingPartyTrustForSaml.ps1. När skriptet har körts fortsätter du att konfigurera webbplatsinställningarna i 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

Se även

Konfigurera SAML 2.0-provider
Konfigurera SAML 2.0-provider med Microsoft Entra ID
Vanliga frågor och svar om SAML 2.0