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:
- Konfigurere AD FS i Power Pages
- Oprette en AD FS relying party-tillid
- Fuldføre konfigurationen af udbyderen
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.
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.
Vælg + Ny udbyder.
Under Vælg logon-udbyder skal du vælge Anden.
Under Protokol skal du vælge SAML 2.0.
Angiv et navn til udbyderen.
Udbydernavnet vises på logonsiden for brugere som tekst på en knap, når de vælger denne identitetsudbyder.
Vælg Næste.
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.
I Serverstyring vælges Værktøjer og derefter AD FS Management.
Udvid service.
Vælg Add Claim Description i panelet i højre side.
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.
Vælg OK.
Vælg Hav tillid til relationer>Tillidsforhold til Relying Party.
Vælg Tilføj Relying Party-tillid.
Vælg Start.
Vælg Angiv data om en relying party manuelt, og vælg derefter Næste.
Angiv et navn, f.eks. https://portal.contoso.com/.
Vælg Næste.
Vælg AD FS 2.0-profil, og vælg derefter Næste.
Vælg Næste på siden Konfigurer certifikat.
Vælg Aktivér understøttelse af SAML 2.0 WebSSO-protokollen.
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.
Vælg Næste.
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.
Vælg Næste.
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.
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.
Gennemse betroede indstillinger, og vælg derefter Næste.
Vælg Luk.
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
Vælg Tilføj regel.
På listen Skabelon for kravsregel skal du vælge Transformér et indgående krav. Vælg derefter Næste.
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
Vælg Passér gennem alle kravsværdier.
Vælg Afslut, og vælg derefter OK.
Fuldføre konfigurationen af udbyderen
Når du har konfigureret Relying Party-tillid for AD FS:
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=<URL encoded RPID>&RelayState=<URL encoded RelayState>
. Hele strengen kodes igen og føjes til en anden objektbeholder med formatet <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL> encoded RPID/RelayState>
.
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