Konfiguriranje davatelja protokola SAML 2.0 za portale pomoću značajke AD FS

Važno

Koraci za konfiguraciju Active Directory Federation Services (AD FS) mogu se razlikovati ovisno o verziji vašeg poslužitelja AD FS.

Stvaranje pouzdanosti strane koja prihvaća za AD FS

Napomena

Pogledajte Konfiguriranje značajke AD FS pomoću okvira PowerShell, kako biste saznali način izvođenja tih koraka u skripti okvira PowerShell.

  1. Uz pomoć alata za upravljanje AD FS odaberite Servis > Opisi zahtjeva.

    1. Kliknite Dodaj opis zahtjeva.

    2. Navedite zahtjev:

      • Prikaz naziva: Trajni identifikator

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

      • Omogućite potvrdni okvir za: Objavi ovaj opis zahtjeva u metapodacima vanjskog pristupa kao vrstu zahtjeva koju ova usluga vanjskog pristupa može prihvatiti

      • Omogućite potvrdni okvir za: Objavi ovaj opis zahtjeva u metapodacima vanjskog pristupa kao vrstu zahtjeva koju ova usluga vanjskog pristupa može poslati

    3. Odaberite U redu.

  2. Uz pomoć alata za upravljanje AD FS odaberite Pouzdani odnosi >Pouzdana strana oslanjanja.

    1. Kliknite Dodavanje pouzdane strane oslanjanja.

    2. Dobro došli: odaberite Početak.

    3. Odabir izvora podataka: odaberite Ručni unos podataka o pouzdanoj strani, pa kliknite Dalje.

    4. Odredite zaslonski naziv: unesite naziv, pa kliknite Dalje. Primjer: https://portal.contoso.com/

    5. Odabir profila: odaberite AD FS 2.0 profil, a zatim odaberite Dalje.

    6. Konfiguracija certifikata: kliknite Dalje.

    7. Konfiguriranje URL-a: potvrdite Omogući protokol SAML 2.0 WebSSO. URL usluge strane za oslanjanje SAML 2.0 SSO: unesite https://portal.contoso.com/signin-saml2
      Napominjemo da za AD FS portal mora raditi na protokolu HTTPS.

      Napomena

      Dobivena krajnja točka ima sljedeće postavke:

    8. Konfiguriranje identiteta: unesite https://portal.contoso.com/, odaberite Dodaj i zatim odaberite Sljedeće. Ako je primjenjivo, za svaki dodatni portal strane za oslanjanje možete dodati više identiteta. Korisnici mogu provjeriti autentičnost putem jednog ili svih dostupnih identiteta.

    9. Odaberite pravila autorizacije izdavanja: odaberite Dozvoli svim korisnicima pristup ovoj pouzdanoj strani, kliknite Dalje.

    10. Spremni za dodavanje oslanjanja: kliknite Dalje.

    11. Odaberite Zatvori.

  3. Dodajte zahtjev Naziv ID-a pouzdanosti strane za oslanjanje:

    PretvoriteWindows naziv računa u zahtjev ID naziva (Transformacija dolaznog zahtjeva):

    • Vrsta dolaznog zahtjeva: Windows naziv računa

    • Vrsta odlaznog zahtjeva: Naziv ID-a

    • Izlazni oblik ID-a naziva: trajni identifikator

    • Prolaz kroz sve vrijednosti zahtjeva

Konfigurirajte SAML 2.0 davatelja

Nakon postavljanja pouzdane strane oslanjanja značajke AD FS, možete slijediti korake u odjeljku Konfiguriranje davatelja protokola SAML 2.0 za portale.

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 portal (davatelj usluga) ispravno odgovarao na zahtjeve protokola SAML koje pokreće davatelj identiteta, parametar stanjaprijenosa mora biti pravilno kodiran.

Osnovna vrijednost niza za šifriranje u parametar SAML StanjaPrijenosa mora biti u obliku: ReturnUrl=/content/sub-content/, gdje je /content/sub-content/ putanja željene web-stranice za otvaranje na portalu (davatelj usluge). Putanja može biti zamijenjena bilo kojom valjanom web-stranicom na portalu. 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 portal page on the service provider.

.PARAMETER path

The path to the portal 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

Proces dodavanja pouzdane strane oslanjanja u AD FS može se obaviti i pokretanjem skripte okvira PowerShell na AD FS poslužitelju. Spremite skriptu u datoteku naziva Add-AdxPortalRelyingPartyTrustForSaml.ps1. Nakon pokretanja skripte nastavite s konfiguriranjem postavki web-mjesta portala.

<# 

.SYNOPSIS

Adds a SAML 2.0 relying party trust entry for a website.

.PARAMETER domain

The domain name of the portal.

.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

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 portal relying party trust

Add-CrmRelyingPartyTrust $domain

Konfiguriranje davatelja protokola SAML 2.0

Nakon postavljanja pouzdane strane oslanjanja značajke AD FS, možete slijediti korake u odjeljku Konfiguriranje davatelja protokola SAML 2.0 za portale.

Pogledajte

Konfiguriranje davatelja usluge SAML 2.0 za portale s Azure AD
Najčešća pitanja o korištenju protokola SAML 2.0 na portalima
Konfigurirajte davatelja protokola SAML 2.0 za portale