Nastavitev ponudnika SAML 2.0 z AD FS

Active Directory Federation Services (AD FS) je eden od ponudnikov identitete SAML 2.0, ki ga lahko uporabite za preverjanje pristnosti obiskovalcev na svojem mestu Power Pages. Uporabite lahko poljubnega ponudnika, ki ustreza specifikacijam SAML 2.0.

V tem članku so opisani naslednji koraki:

Pomembno

Koraki za nastavitev storitve AD FS se lahko razlikujejo glede na različico strežnika AD FS.

Nastavitev storitve AD FS v storitvi Power Pages

Nastavite AD FS kot ponudnika identitete za svoje mesto.

  1. Na svojem spletnem mestu izberite Varnost Ponudniki identitete. Power Pages >

    Če ni prikazan noben ponudnik identitet, se prepričajte, da je možnost Zunanja prijava v splošnih nastavitvah preverjanja pristnosti nastavljena na Vklopljeno.

  2. Izberite + Nov ponudnik.

  3. V razdelki Izberite ponudnika prijave izberite Drugo.

  4. V razdelku Protokol izberite SAML 2.0.

  5. Vnesite ime ponudnika.

    Ime ponudnika je besedilo na gumbu, ki ga uporabniki vidijo, ko na strani za vpis izberejo ponudnika identitet.

  6. Izberite Naprej.

  7. V razdelku URL za odgovor izberite Kopiraj.

    Ne zapirajte zavihka brskalnika za Power Pages, saj se boste kmalu vrnili vanj.

Ustvarite zaupanje odvisne strani AD FS

Za izvedbo teh korakov lahko uporabite tudi skript PowerShell.

  1. V upravitelju strežnika izberite Orodja in nato še Upravljanje AD FS.

  2. Razširite Storitev.

  3. V desni stranski plošči izberite Dodaj opis zahtevka.

  4. Vnesite naslednje vrednosti:

    • Prikazno ime: Trajni identifikator

    • Identifikator zahtevka: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

    • Izberite obe možnosti v Objavi ta opis zahtevka v metapodatkih združevanja… .

  5. izberite V redu.

  6. Izberite Razmerja zaupanj>Zaupanja odvisnih strani.

  7. Izberite Dodaj zaupanje odvisne strani.

  8. Izberite Začni.

  9. Izberite Ročni vnos podatkov o odvisni strani in nato še Naprej.

  10. Vnesite ime, na primer https://portal.contoso.com/.

  11. Izberite Naprej.

  12. Izberite Profil AD FS 2.0 in nato še Naprej.

  13. Na strani Konfiguriranje potrdila izberite Naprej.

  14. Izberite Omogoči podporo za protokol SAML 2.0 WebSSO.

  15. V razdelku URL storitve odvisne strani SSO SAML 2.0 vnesite URL odgovora, ki ste ga kopirali. AD FS zahteva, da se spletno mesto izvaja prek HTTPS in ne HTTP.

  16. Izberite Naprej.

  17. Na strani Konfiguriranje identifikatorjev vnesite URL svojega mesta in nato izberite Dodaj.

    Po potrebi lahko za spletno mesto vsake dodatne odvisne strani dodate več identitet. Preverjanje pristnosti uporabnikov se lahko izvaja s poljubnimi razpoložljivimi identitetami.

  18. Izberite Naprej.

  19. Na strani Ali želite zdaj konfigurirati večkratno preverjanje pristnosti? izberite Trenutno ne želim konfigurirati nastavitev večkratnega preverjanja pristnosti za to zaupanje odvisne stranke.

  20. Na strani Izbira pravil za overjanje izdajanja izberite Dovoli vsem uporabnikom dostop do te odvisne strani in nato še Naprej.

  21. Preglejte nastavitve zaupanja in nato izberite Naprej.

  22. Izberite Zapri.

  23. V oknu Urejanje pravil za zahtevo izberite enega od naslednjih zavihkov glede na zaupanje, ki ga urejate, in nabor pravil, v katerem želite ustvariti pravilo:

    • Pravila pretvorbe sprejema
    • Pravila za preoblikovanje izdaje
    • Pravila za izdajo dovoljenj
    • Pravila za pooblastitev delegiranja
  24. Izberite Dodaj pravilo.

  25. Na seznamu Predloga pravila za zahtevo izberite Preoblikovanje dohodne zahteve in nato še Naprej.

  26. Vnesite ali izberite naslednje vrednosti:

    • Ime pravila zahtevka: Pretvori ime računa Windows v ID imena

    • Vrsta dohodnega zahtevka: Ime računa Windows

    • Vrsta odhodnega zahtevka: ID imena

    • Oblika odhodnega ID-ja imena: Trajni identifikator

  27. Izberite Prehod vseh vrednosti zahteve.

  28. Izberite Dokončaj in nato še V redu.

Dokončanje nastavitve ponudnika

Ko nastavite zaupanje odvisne strani AD FS:

  1. Ustvarite registracijo aplikacije v storitvi Azure.

  2. Vnesite nastavitve spletnega mesta v Power Pages.

Prijava, ki jo zažene ponudnik identitete

AD FS podpira profil enotne prijave (SSO), ki jo zažene ponudnik identitete za specifikacije SAML 2.0. Da se spletno mesto ponudnika storitev pravilno odzove na zahtevo SAML ponudnika identitete, morate šifrirati parameter RelayState.

Vrednost osnovnega niza za šifriranje v parameter SAML RelayState mora biti v obliki ReturnUrl=/content/sub-content/, kjer je /content/sub-content/ pot do želene strani na spletnem mestu ponudnika storitve. Določite lahko pot do katere koli veljavne strani na spletnem mestu. Vrednost niza je kodirana in umeščena v niz vsebnika v obliki RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt;. Ta celoten niz se vnovič kodira in doda v drug vsebnik v obliki <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=&lt;URL> encoded RPID/RelayState&gt;.

Primer: na podlagi podane poti ponudnika storitve /content/sub-content/ in ID-ja odvisne strani https://portal.contoso.com/ ustvarite URL z naslednjimi koraki:

  • Kodirajte vrednost ReturnUrl=/content/sub-content/, da pridobite ReturnUrl%3D%2Fcontent%2Fsub-content%2F

  • Kodirajte vrednost https://portal.contoso.com/, da pridobite https%3A%2F%2Fportal.contoso.com%2F

  • Kodirajte vrednost RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F, da pridobite RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

  • Na začetek dodajte pot AD FS enotne prijave (SSO), ki jo zažene ponudnik identitete, da dobite končni 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

Za izdelavo URL-ja lahko uporabite naslednji skript PowerShell. Skript shranite v datoteko z imenom 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

Konfiguracija AD FS s PowerShell

Namesto ročnega dodajanja zaupanja odvisne strani v AD FS lahko spodnji skript PowerShell zaženete tudi v strežniku AD FS. Skript shranite v datoteko z imenom Add-AdxPortalRelyingPartyTrustForSaml.ps1. Ko se skript izvede, nadaljujte s konfiguracijo nastavitev spletnega mesta v storitvi 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

Glejte tudi

Nastavitev ponudnika SAML 2.0
Nastavite ponudnika SAML 2.0 z ID-jem Microsoft Entra
Pogosta vprašanja o SAML 2.0