Konfigurere en SAML 2.0-leverandør med AD FS
Active Directory Federation Services (AD FS) er en av ID-leverandørene for SAML 2.0 som du kan bruke til å godkjenne besøkende på Power Pages-webområdet ditt. Du kan bruke en hvilken som helst leverandør som overholder SAML 2.0-spesifikasjon.
Denne artikkelen beskriver følgende trinn:
- Konfigurer AD FS i Power Pages
- Opprette en klarering for AD FS-beroende part
- Fullfør konfigurering av leverandøren
Viktig
Fremgangsmåten for konfigurasjonen av AD FS kan variere avhengig av versjonen av AD FS-serveren.
Konfigurer AD FS i Power Pages
Angi AD FS som en identitetsleverandør for området.
Velg Sikkerhet>Identitetsleverandører på Power Pages-nettstedet.
Hvis ingen identitetsleverandører vises, må du kontrollere at ekstern pålogging er satt til På i områdets generelle godkjenningsinnstillinger.
Velg + Ny leverandør.
Under Velg påloggingsleverandør velger du Annen.
Under Protokoll velger du SAML 2.0.
Angi et navn for leverandøren.
Leverandørnavnet er tekst på knappen som brukere ser når de velger identitetsleverandør på påloggingssiden.
Velg Neste.
Velg Kopier under Svar-URL-adresse.
Ikke lukk Power Pages-webleserkategorien. Du kommer tilbake til det snart.
Opprette en klarering for AD FS-beroende part
Du kan også bruke et PowerShell-skript til å utføre disse trinnene.
I Serverbehandling velger du Verktøy, og velg deretter AD FS Management.
Utvid tjeneste.
I høyre sidepanel velger du Legg til kravbeskrivelse.
Angi følgende verdier:
Visningsnavn: Fast identifikator
Erklæringsidentifikator: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
Velg begge Publiser denne kravbeskrivelsen i metadata for federering... alternativer.
Velg OK.
Velg Klareringsrelasjoner>Relasjoner for beroende part.
Velg Legg til klarering for beroende part.
Velg Start.
Velg Angi data om den beroende parten manuelt, og velg deretter Neste.
Angi et navn, for eksempel https://portal.contoso.com/.
Velg Neste.
Velg AD FS 2.0-profil, og velg deretter Neste.
Velg Neste på siden Konfigurer sertifikat.
Velg Aktiver støtte for SAML 2.0 WebSSO-protokollen.
Under URL-adresse for SAML 2.0 SSO-tjeneste for beroende part angir du svar-URL-en du kopierte. AD FS krever at nettstedet kjører HTTPS, ikke HTTP.
Velg Neste.
På siden Konfigurer identifikatorer angir du områdets URL og deretter velger du Legg til.
Du kan legge til flere identiteter for hver ekstra nettsted for beroende part om nødvendig. Brukere kan godkjenne ved hjelp av en enhver tilgjengelig identitet.
Velg Neste.
På siden Konfigurere flerfaktorautentisering nå? velger du Jeg vil ikke konfigurere innstillinger for flerfaktorautentisering for denne klareringen for beroende part nå.
På siden Velg godkjenningsregler for utstedelse velger du La alle brukere få tilgang til denne beroende parten, og velg deretter Neste.
Se gjennom klareringsinnstillingene, og velg deretter Neste.
Velg Lukk.
I Rediger kravregler ve;ger di følgende kategorier, avhengig av klareringen du redigerer, og i hvilket regelsett du vil opprette regelen i:
- Godkjenningstransformeringsregler
- Utstedelsestransformeringsregler
- Utstedelsesgodkjenningsregler
- Delegeringsgodkjenningsregler
Velg Legg til regel.
I Kravregelmal-listen velger du Transformer et innkommende krav, og velg deretter Neste.
Angi eller velg følgende verdier:
Navn på erklæringsregel: Transformer navn på Windows-konto til navn-ID
Innkommende erklæringstype: Windows-kontonavn
Utgående erklæringstype: Navn-ID
Format for utgående navn-ID: Fast identifikator
Velg Sende videre alle kravverdier.
Velg Avslutt og deretter OK.
Fullfør konfigurering av leverandøren
Når du har konfigurert klarering for AD FS-beroende part:
Pålogging igangsatt av identitetsleverandør
AD FS støtter profilen for identitetsleverandørinitiert enkel pålogging (SSO) for SAML-2.0-spesifikasjonen. Hvis webområdet for tjenesteleverandøren skal kunne svare riktig på identitetsleverandørens SAML-forespørsel, må du kode RelayState
-parameteren.
Den grunnleggende verdien som skal kodes i SAML-RelayState
-parameteren må være i formatet ReturnUrl=/content/sub-content/
, der /content/sub-content/
er banen til siden du ønsker å gå til på webstedet til tjenesteleverandøren. Du kan angi banen til en gyldig side på webområdet. Strengverdien kodes og plasseres i en beholderstreng i formatet RPID=<URL encoded RPID>&RelayState=<URL encoded RelayState>
. Hele strengen kodes på nytt og legges til en annen beholder i formatet <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL> encoded RPID/RelayState>
.
Eksempel: gitt banen til tjenesteleverandøren, /content/sub-content/
og ID-en for beroende part, https://portal.contoso.com/
, konstruer nettadressen med denne fremgangsmåten:
Kod verdien
ReturnUrl=/content/sub-content/
for å fåReturnUrl%3D%2Fcontent%2Fsub-content%2F
Kod verdien
https://portal.contoso.com/
for å fåhttps%3A%2F%2Fportal.contoso.com%2F
Kod verdien
RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F
for å fåRPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F
Legg til foran AD FS-identitetsleverandørinitiert SSO-bane for å få den endelige nettadressen
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 bruke følgende PowerShell-skript til å konstruere URL-adressen. Lagre skriptet 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 hjelp av PowerShell
I stedet for å legge til en beroende partsklarering i AD FS manuelt, kan du kjøre følgende PowerShell-skript på AD FS-serveren. Lagre skriptet i en fil med navnet Add-AdxPortalRelyingPartyTrustForSaml.ps1
. Når skriptet har kjørt, fortsetter du å konfigurere områdeinnstillingene 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å
Konfigurer en SAML 2.0-leverandør
Konfigurer en SAML 2.0-leverandør med Microsoft Entra ID
Vanlige spørsmål om SAML 2.0