Postavljanje davatelja SAML 2.0 s pomoću AD FS

Active Directory Federation Services (AD FS) jedan je od davatelja identiteta na usluzi SAML 2.0 koje možete upotrebljavati za provjeru autentičnosti posjetitelja svog web-mjesta na usluzi Power Pages. Možete upotrebljavati bilo kojeg drugog davatelja koji je usklađen sa specifikacijom usluge SAML 2.0.

U ovom se članku opisuju sljedeći koraci:

Važno

Koraci za postavljanje rješenja AD FS mogu se razlikovati ovisno o verziji vašeg poslužitelja AD FS.

Postavljanje rješenja AD FS na usluzi Power Pages

Postavite rješenje AD FS kao davatelja identiteta za svoje web-mjesto.

  1. Na Power Pages web-mjestu odaberite Davatelji> usluga sigurnosnogidentiteta.

    Ako se ne pojave davatelji identiteta, provjerite je li Vanjska prijava postavljena na Uključeno u općim postavkama provjere autentičnosti vašeg web-mjesta.

  2. Odaberite + Novi davatelj.

  3. U odjeljku Odabir davatelja za prijavu odaberite Drugi.

  4. U odjeljku Protokol odaberite SAML 2.0.

  5. Unesite naziv davatelja.

    Naziv davatelja je tekst na tipku koji korisnici vide prilikom odabira svog davatelja identiteta na stranici za prijavu.

  6. Odaberite Dalje.

  7. U odjeljku URL odgovora odaberite Kopiraj.

    Nemojte zatvarati karticu preglednika na usluzi Power Pages. Uskoro ćete se vratiti na nju.

Stvaranje pouzdanosti strane koja prihvaća za AD FS

Također možete upotrebljavati skriptu PowerShell za izvođenje ovih koraka.

  1. U Upravitelju poslužitelja odaberite Alati, a zatim odaberite Upravljanje rješenjem AD FS.

  2. Proširite opciju Usluga.

  3. Na desnom panelu odaberite Dodaj opis zahtjeva.

  4. Unesite sljedeće vrijednosti:

    • Zaslonski naziv: trajni identifikator

    • Identifikator zahtjeva: urn:oasis:names:tc:SAML:2.0:nameid-format:trajni

    • Odaberite oboje Objavi ovaj opis zahtjeva u metapodacima vanjskog pristupa… opcije,

  5. Odaberite U redu.

  6. Odaberite mogućnosti Pouzdani odnosi i>Pouzdane strane za oslanjanje.

  7. Kliknite Dodavanje pouzdane strane oslanjanja.

  8. Odaberite mogućnost Početak.

  9. Odaberite Ručni unos podataka o pouzdanoj strani, a zatim odaberite Dalje.

  10. Unesite ime; na primjer, https://portal.contoso.com/.

  11. Odaberite Dalje.

  12. Odaberite profil rješenja AD FS 2.0, a zatim odaberite Dalje.

  13. Na stranici Konfiguriraj certifikat odaberite Dalje.

  14. Odaberite Omogući podršku za protokol SAML 2.0 WebSSO.

  15. U odjeljak URL usluge strane za oslanjanje SAML 2.0 SSO unesite URL odgovora koji ste kopirali. AD FS zahtijeva da web-mjesto upotrebljava protokol HTTPS umjesto protokola HTTP.

  16. Odaberite Dalje.

  17. Na stranici Konfiguriraj identifikatore unesite URL svog web-mjesta, a zatim odaberite Dodaj.

    Za svako dodatno web-mjesto pouzdane strane za oslanjanje možete dodati više identiteta, ako je potrebno. Korisnici mogu provjeriti autentičnost putem bilo kojeg dostupnog identiteta.

  18. Odaberite Dalje.

  19. Na stranici „Odmah konfiguriraj višestruku autentifikaciju?“ odaberite mogućnost Trenutačno ne želim konfigurirati postavke višestruke provjere autentičnosti za ovu pouzdanu stranu za oslanjanje.

  20. Na stranici Odaberite pravila za izdavanje autorizacije odaberite Omogućite pristup ovoj pouzdanoj strani svim korisnicima, a zatim odaberite Dalje.

  21. Pregledajte postavke pouzdanosti, a zatim odaberite Dalje.

  22. Odaberite Zatvori.

  23. Na stranici Uredi pravila za podnošenje zahtjeva odaberite jednu od sljedećih kartica, ovisno o pouzdanosti koju uređujete te ovisno o tome u kojem skupu pravila želite stvoriti pravilo:

    • Pravila transformacije prihvaćanja
    • Pravila transformacije izdavanja
    • Pravila autorizacije izdavanja
    • Pravila autorizacije delegiranja
  24. Odaberite Dodaj pravilo

  25. Na popisu Predložak pravila za podnošenje zahtjeva odaberite Pretvori dolazni zahtjev, a zatim odaberite Dalje.

  26. Unesite ili odaberite sljedeće vrijednosti:

    • Naziv pravila polaganja prava: Pretvorite naziv računa sustava Windows u ID naziva

    • Vrsta dolaznog zahtjeva: Naziv računa sustava Windows

    • Vrsta odlaznog zahtjeva: ID imena

    • Format ID-a odlaznog imena: trajni identifikator

  27. Odaberite mogućnost Prolaz kroz sve vrijednosti zahtjeva.

  28. Odaberite mogućnost Završi, a zatim odaberite mogućnost U redu.

Dovršite postavljanje davatelja usluga

Nakon postavljanja pouzdane strane za oslanjanje za rješenje AD FS:

  1. Stvorite registraciju aplikacije na platformi Azure.

  2. Unesite postavke Power Pages web-mjesta.

Prijava koju pokreće davatelj identiteta

AD FS podržava profil jedinstvene prijave (SSO) koju pokreće davatelj identiteta za specifikaciju protokola SAML 2.0. Kako bi web-mjesto davatelja usluga ispravno odgovorilo na SAML zahtjev davatelja identiteta, morate kodirati parametar RelayState .

Osnovna vrijednost niza za šifriranje u parametar SAML RelayState mora biti u obliku ReturnUrl=/content/sub-content/, gdje je /content/sub-content/ putanja željene web-stranice za otvaranje na web-mjestu davatelja usluge. Možete navesti putanju do bilo koje važeće stranice na web-mjestu. Vrijednost niza šifrirana je i postavljena u niz spremnika oblika RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt;. Cijeli niz ponovno je šifriran i dodan drugom spremniku oblika <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=&lt;URL> encoded RPID/RelayState&gt;.

Na primjer, uz putanju davatelja usluge /content/sub-content/ i ID pouzdane strane https://portal.contoso.com/, sastavite URL pomoću sljedećih koraka:

  • Šifrirajte vrijednost ReturnUrl=/content/sub-content/ da biste dohvatili ReturnUrl%3D%2Fcontent%2Fsub-content%2F

  • Šifrirajte vrijednost https://portal.contoso.com/ da biste dohvatili https%3A%2F%2Fportal.contoso.com%2F

  • Šifrirajte vrijednost RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F da biste dohvatili RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

  • Na početak dodajte putanju SSO-a koju pokreće davatelj identiteta značajke AD FS da biste dobili konač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 sastavljanje URL-a možete koristiti sljedeću skriptu okvira PowerShell. Spremite skriptu u datoteku naziva 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

Konfiguriranje AD FS s pomoću okvira PowerShell

Umjesto dodavanja pouzdane strane oslanjanja u AD FS ručno, možete i pokrenuti sljedeću skriptu okvira PowerShell na AD FS poslužitelju. Spremite skriptu u datoteku naziva Add-AdxPortalRelyingPartyTrustForSaml.ps1. Nakon što se skripta izvrši, nastavite s konfiguriranjem postavki web-mjesta na usluzi 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

Pogledajte

Postavljanje davatelja usluga SAML 2.0
Postavljanje davatelja usluga SAML 2.0 s ID-om Microsoft Entra
SAML 2.0 Česta pitanja