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:
- Podesite AD FS u Power Pages
- Kreirajte poverenje AD FS oslanjajuće stranke
- Završite podešavanje provajdera
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.
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.
Izaberite opciju + Novi dobavljač.
Među opcijama Izaberite dobavljača za prijavljivanje izaberite Ostali.
U odeljku Protokol izaberite SAML 2.0.
Unesite naziv dobavljača.
Naziv dobavljača je tekst na dugmetu koji korisnici vide kada izaberu dobavljača identiteta na stranici za prijavljivanje.
Izaberite Sledeće.
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.
U upravljaču serverima izaberite stavku Alatke, a zatim izaberite Upravljanje dobavljačem AD FS.
Proširite uslugu.
U tabli svojstava sa desne strane izaberite Dodaj opis zahteva.
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.
Izaberite U redu.
Izaberite Relacije pouzdanosti>Poverenja oslonjene strane.
Izaberite Dodaj poverenje oslonjene strane.
Izaberite Započni.
Izaberite Ručno unesite podatke o oslonjenoj strani, pa izaberite Dalje.
Unesite naziv; npr. https://portal.contoso.com/.
Izaberite Sledeće.
Izaberite AD FS 2.0 profil, a zatim izaberite Sledeće.
Na stranici Konfigurisanje certifikata izaberite Dalje.
Izaberite opciju Omogući podršku za SAML 2.0 WebSSO protokol.
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.
Izaberite Sledeće.
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.
Izaberite Sledeće.
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.
Na stranici Odaberite pravila za izdavanje odobrenja izaberite Dozvoli svim korisnicima da pristupe ovoj oslonjenoj strani, a zatim izaberite Dalje.
Pregledajte postavke pouzdanosti, a zatim izaberite opciju Dalje.
Izaberite Zatvori.
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
Izaberite Dodaj pravilo.
U listi Predložak pravila zahteva izaberite stavku Transformiši dolazni zahtev, a zatim kliknite na dugme Dalje.
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
Izaberite Prosledite putem svih vrednosti zahteva.
Izaberite Završi, a zatim izaberite U redu.
Završavanje podešavanja dobavljača
Kada podesite AD FS poverenje oslonjene strane:
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=<URL encoded RPID>&RelayState=<URL encoded RelayState>
. Ova čitava niska se ponovo kodira i dodaje drugom spremištu formata <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL> encoded RPID/RelayState>
.
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/
uReturnUrl%3D%2Fcontent%2Fsub-content%2F
Kodirajte vrednost
https://portal.contoso.com/
uhttps%3A%2F%2Fportal.contoso.com%2F
Kodirajte vrednost
RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F
uRPID%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