Del via


Opsætte en SAML 2.0-provider med AD FS

AD FS (Active Directory Federation Services) er en af de SAML 2.0-identitetsudbydere, du kan bruge til at godkende besøgende på dit Power Pages-websted. Du kan bruge en hvilken som helst anden udbyder, der overholder SAML 2.0-specifikationen.

Denne artikel beskriver følgende trin:

Vigtigt

Trinnene til konfiguration af AD FS kan variere afhængigt af versionen af din AD FS-server.

Konfigurer AD FS i Power Pages

Konfigurere AD FS som identitetsudbyder for dit websted.

  1. Vælg Sikkerhed>Identitetsudbydere på Power Pages-webstedet.

    Hvis der ikke vises identitetsudbydere, skal du kontrollere, at Eksternt logon er angivet til Til i de generelle godkendelsesindstillinger for dit websted.

  2. Vælg + Ny udbyder.

  3. Under Vælg logon-udbyder skal du vælge Anden.

  4. Under Protokol skal du vælge SAML 2.0.

  5. Angiv et navn til udbyderen.

    Udbydernavnet vises på logonsiden for brugere som tekst på en knap, når de vælger denne identitetsudbyder.

  6. Vælg Næste.

  7. Vælg Kopiér under URL-adresse til svar.

    Luk ikke fanen Power Pages i browseren. Den vender du snart tilbage til.

Oprette en AD FS relying party-tillid

Du kan også bruge et PowerShell-script til at udføre disse trin.

  1. I Serverstyring vælges Værktøjer og derefter AD FS Management.

  2. Udvid service.

  3. Vælg Add Claim Description i panelet i højre side.

  4. Angiv følgende værdier:

    • Vist navn: Persistent Identifier

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

    • Vælg begge Udgiv denne beskrivelse af kravet i organisationsmetadata... indstillinger.

  5. Vælg OK.

  6. Vælg Hav tillid til relationer>Tillidsforhold til Relying Party.

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

  8. Vælg Start.

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

  10. Angiv et navn, f.eks. https://portal.contoso.com/.

  11. Vælg Næste.

  12. Vælg AD FS 2.0-profil, og vælg derefter Næste.

  13. Vælg Næste på siden Konfigurer certifikat.

  14. Vælg Aktivér understøttelse af SAML 2.0 WebSSO-protokollen.

  15. Angiv den kopierede svarwebadresse under Relying Party SAML 2.0 SSO-tjenestewebadressen ,du har kopieret. AD FS kræver, at webstedet kører på HTTPS - ikke HTTP.

  16. Vælg Næste.

  17. Angiv webstedets webadresse på siden Konfigurer id'er, og vælg derefter Tilføj på siden Konfigurer id'er.

    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.

  18. Vælg Næste.

  19. Skal du nu konfigurere godkendelse med flere faktorer? skal du vælge Jeg vil ikke konfigurere indstillinger for multifaktorgodkendelse for denne Relying Party-tillid på nuværende tidspunkt.

  20. På siden Vælg regler for godkendelse af udstedelse skal du vælge Giv alle brugere adgang til denne Relying Party og derefter vælge Næste.

  21. Gennemse betroede indstillinger, og vælg derefter Næste.

  22. Vælg Luk.

  23. Under Rediger kravsregler skal du vælge en af følgende faner, afhængigt af den tillid du redigerer, og i hvilken regelsæt du vil oprette reglen:

    • Regler for acceptér transformering
    • Udstedelse af regler for transformering
    • Regler for godkendelse af udstedelse
    • Regler for godkendelse af delegering
  24. Vælg Tilføj regel.

  25. På listen Skabelon for kravsregel skal du vælge Transformér et indgående krav. Vælg derefter Næste.

  26. Angiv eller vælg følgende værdier:

    • Navn på kravsregel: Transformér navn på Windows-konto til navn-id

    • Indgående kravtype: Windows-kontonavn

    • Udgående kravtype: Navn-id

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

  27. Vælg Passér gennem alle kravsværdier.

  28. Vælg Afslut, og vælg derefter OK.

Fuldføre konfigurationen af udbyderen

Når du har konfigureret Relying Party-tillid for AD FS:

  1. Oprette en appregistrering i Azure.

  2. Angive indstillinger for websted i Power Pages.

Identitetsudbyderstartet logon

AD FS understøtter den identitetsudbyderinitierede SSO (single sign-on)-profil for SAML 2.0 specifikation. Hvis tjenesteudbyderwebstedet skal reagere korrekt på identitetsudbyderens SAML-anmodning, skal du kode RelayState-parameteren.

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å tjenesteudbyder. Du kan angive stien til en gyldig side på webstedet. 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 følge disse trin for at konstruere URL-adressen:

  • 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-identitetsudbyderinitierede sti for enkeltlogon 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 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

Konfigurere AD FS ved hjælp af PowerShell

I stedet for manuel tilføjelse af et Relying Party-tillidsforhold i AD FS kan du udføre følgende PowerShell-script på AD FS-serveren. Gem scriptet i en fil med navnet Add-AdxPortalRelyingPartyTrustForSaml.ps1. Når scriptet er udført, skal du fortsætte med at konfigurere indstillingerne for webstedet 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 også

Opsætte en SAML 2.0-provider
Opsætte en SAML 2.0-provider med Microsoft Entra ID
Ofte stillede spørgsmål om SAML 2.0