Podešavanje SAML 2.0 dobavljača pomoću usluge AD FS

Active Directory Federation Services (AD FS) je jedan od SAML 2.0 dobavljača identiteta koje možete koristiti za potvrdu identiteta posetilaca vaše Power Pages lokacije. Možete da koristite bilo kog drugog dobavljača koji je u skladu sa SAML 2.0 specifikacijom.

Ovaj članak opisuje sledeće korake:

Važno

Koraci za podešavanje AD FS mogli bi se razlikovati u zavisnosti od verzije vašeg AD FS servera.

Podešavanje dobavljača AD FS u usluzi Power Pages

Podesite AD FS kao dobavljača identiteta za lokaciju.

  1. Na vašoj Power Pages veb lokaciji izaberite provajdere> bezbednosnogidentiteta.

    Ako se ne pojave dobavljači identiteta, uverite se da je spoljno prijavljivanje podešeno na Uključeno u opštim postavkama potvrde identiteta vaše lokacije.

  2. Izaberite opciju + Novi dobavljač.

  3. Među opcijama Izaberite dobavljača za prijavljivanje izaberite Ostali.

  4. U odeljku Protokol izaberite SAML 2.0.

  5. Unesite naziv dobavljača.

    Naziv dobavljača je tekst na dugmetu koji korisnici vide kada izaberu dobavljača identiteta na stranici za prijavljivanje.

  6. Izaberite Sledeće.

  7. U okviru URL adresa odgovora, izaberite stavku Kopiraj.

    Nemojte zatvarati karticu pregledača Power Pages. Vratićete joj se uskoro.

Kreirajte AD FS poverenje oslonjene strane

Takođe možete da koristite PowerShell skriptu da biste izvršili ove korake.

  1. U upravljaču serverima izaberite stavku Alatke, a zatim izaberite Upravljanje dobavljačem AD FS.

  2. Proširite uslugu.

  3. U tabli svojstava sa desne strane izaberite Dodaj opis zahteva.

  4. Unesite sledeće vrednosti:

    • ime za prikaz: Trajni identifikator

    • Identifikator potraživanja: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

    • Izaberite obe Objavi ovaj opis zahteva u spoljnim metapodacima… opcije.

  5. Izaberite U redu.

  6. Izaberite Relacije pouzdanosti>Poverenja oslonjene strane.

  7. Izaberite Dodaj poverenje oslonjene strane.

  8. Izaberite Započni.

  9. Izaberite Ručno unesite podatke o oslonjenoj strani, pa izaberite Dalje.

  10. Unesite naziv; npr. https://portal.contoso.com/.

  11. Izaberite Sledeće.

  12. Izaberite AD FS 2.0 profil, a zatim izaberite Sledeće.

  13. Na stranici Konfigurisanje certifikata izaberite Dalje.

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

  15. U okviru URL usluge oslonjene strane za SAML 2.0 SSO unesite URL adresu odgovora koju ste kopirali. AD FS zahteva da lokacija radi na protokolu HTTPS, ne na HTTP.

  16. Izaberite Sledeće.

  17. Na stranici Konfigurisanje identifikatora unesite URL adresu vaše lokacije, a zatim kliknite na Dodaj.

    Ako je potrebno, možete dodati više identiteta za svaku dodatnu lokaciju oslonjene strane. Korisnici mogu da potvrde identitet korišćenjem bilo kog dostupnog identiteta.

  18. Izaberite Sledeće.

  19. Na stranici Konfigurišete li sada potvrdu identiteta sa više faktora? izaberite opciju Ne želim da konfigurišem postavke potvrde identiteta sa više faktora za ovo poverenje oslonjene strane u ovom trenutku.

  20. Na stranici Odaberite pravila za izdavanje odobrenja izaberite Dozvoli svim korisnicima da pristupe ovoj oslonjenoj strani, a zatim izaberite Dalje.

  21. Pregledajte postavke pouzdanosti, a zatim izaberite opciju Dalje.

  22. Izaberite Zatvori.

  23. U odeljku Uređivanje pravila zahteva, izaberite jednu od sledećih kartica, u zavisnosti od pouzdanosti koju uređujete i u kom skupu pravila želite da kreirate pravilo:

    • Pravila transformacije prihvatanja
    • Pravila transformacije izdavanja
    • Pravila ovlašćenja za izdavanje
    • Pravila ovlašćenja za delegiranje
  24. Izaberite Dodaj pravilo.

  25. U listi Predložak pravila zahteva izaberite stavku Transformiši dolazni zahtev, a zatim kliknite na dugme Dalje.

  26. Unesite ili izaberite sledeće vrednosti:

    • Zahtev pravilo ime: Transformiši ime Vindouz naloga u ime ID

    • Tip dolaznog zahteva: Ime Vindovs naloga

    • Odlazni tip potraživanja: Ime ID

    • Odlazni ID format: Trajni identifikator

  27. Izaberite Prosledite putem svih vrednosti zahteva.

  28. Izaberite Završi, a zatim izaberite U redu.

Završavanje podešavanja dobavljača

Kada podesite AD FS poverenje oslonjene strane:

  1. Kreirajte registraciju aplikacije u Azure.

  2. Unesite postavke sajta Power Pages.

Prijavljivanje koje je pokrenuo dobavljač identiteta

AD FS podržava profil jedinstvenog prijavljivanja (SSO) koje je pokrenuo dobavljač identiteta SAML 2.0 specifikacije. Da bi veb-lokacija dobavljača usluga ispravno odgovorila na SAML zahtev dobavljača identiteta, morate šifrirati parametar RelayState.

Osnovna vrednost niske koja se šifrira u parametru SAML RelayState mora da bude u formatu ReturnUrl=/content/sub-content/, gde je /content/sub-content/ putanja do stranice na koju želite da odete na veb-lokaciji dobavljača usluge. Možete da navedete putanju do bilo koje važeće stranice na veb-lokaciji. Vrednost niske se šifrira i smešta u spremištu niske formata RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt;. Ova čitava niska se ponovo kodira i dodaje drugom spremištu formata <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=&lt;URL> encoded RPID/RelayState&gt;.

Na primer, s obzirom na putanju dobavljača usluge /content/sub-content/ i ID oslonjene strane https://portal.contoso.com/, pratite ove korake da konstruišete URL adresu:

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

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

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

  • Dodajte SSO putanju koju je pokrenuo AD FS dobavljač identiteta 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 konstrukciju URL adrese možete da koristite sledeću PowerShell skriptu. Sačuvajte skriptu u datoteku pod nazivom 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

Konfigurisanje usluge AD FS pomoću platforme PowerShell

Umesto da ručno dodajete pouzdanost oslonjene strane u AD FS, možete pokrenuti sledeću PowerShell skriptu na AD FS serveru. Sačuvajte skriptu u datoteku pod nazivom Add-AdxPortalRelyingPartyTrustForSaml.ps1. Nakon izvršavanja skripte, nastavite da konfigurišete postavke lokacije u 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 i ovo

Podesite SAML 2.0 provajdera
Podesite SAML 2.0 provajdera sa ID-om Microsoft Entra
SAML 2.0 Pitanja i odgovori