Partajați prin


Configurarea unui furnizor SAML 2.0 cu AD FS

Active Directory Federation Services (AD FS) este unul dintre furnizorii de identitate SAML 2.0 pe care îi puteți utiliza pentru autentificarea vizitatorilor la site-ul dvs. Power Pages. Puteți utiliza orice alt furnizor care se conformează soecificației SAML 2.0.

Acest articol descrie următorii pași:

Important

Pașii pentru configurarea AD FS pot varia în funcție de versiunea serverului AD FS.

Configurarea AD FS în Power Pages

Utilizați AD FS ca furnizor de identitate pentru site-ul dvs.

  1. Pe site-ul dvs. Power Pages, selectați Configurare>Furnizori de identitate.

    Dacă nu apare niciun furnizor de identitate, asigurați-vă că Conectare externă este setat la Activat în setările de autentificare generale ale site-ului dvs.

  2. Selectați + Furnizor nou.

  3. Sub Selectare furnizor de conectare, selectați Altul.

  4. Sub Protocol, selectați SAML 2.0.

  5. Introduceți un nume pentru furnizor.

    Numele furnizorului este textul de pe butonul pe care utilizatorii îl văd când își selectează furnizorul de identitate pe pagina de conectare.

  6. Selectați Următorul.

  7. Sub Adresa URL de răspuns, selectați Copiere.

    Nu închideți fila de browser Power Pages. Veți reveni la ea în curând.

Creați un AD FS care se bazează pe încrederea părților

De asemenea, puteți utiliza un script PowerShell pentru a efectua acești pași.

  1. În Server Manager, selectați Instrumente, apoi selectați Gestionare AD FS.

  2. Extindeți Serviciul.

  3. În panoul de proprietăți din partea dreaptă, selectați Adăugare descriere revendicare.

  4. Introduceți următoarele valori:

    • Nume afișat: identificator persistent

    • Identificator revendicare: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

    • Selectați ambele opțiuni Publicați această descriere a revendicării în metadatele federației… .

  5. Selectați OK.

  6. Selectați Relații de încredere>Autorizări părți de încredere.

  7. Selectați Adăugare autorizare parte terță.

  8. Selectați Start.

  9. Selectați Introduceți manual date despre partea terță și apoi selectați Următorul.

  10. Introduceți un nume, de exemplu https://portal.contoso.com/.

  11. Selectați Următorul.

  12. Selectați Profil AD FS 2.0, apoi selectați Următorul.

  13. În pagina Configurați certificatul, selectați Următorul.

  14. Selectați Activare suport pentru protocolul SAML 2.0 WebSSO.

  15. Sub Adresa URL a serviciului SSO SAML 2.0 al părții de încredere, introduceți adresa URL de răspuns pe care ați copiat-o. AD FS necesită ca portalul să ruleze pe HTTPS, nu HTTP.

  16. Selectați Următorul.

  17. În pagina Configurați identificatori, introduceți adresa URL a site-ului dvs., apoi selectați Adăugați.

    Dacă este cazul, puteți să adăugați mai multe identități pentru fiecare site suplimentar care este parte de încredere. Utilizatorii pot să se autentifice cu orice identități disponibile.

  18. Selectați Următorul.

  19. Pe pagina Configurați acum autentificarea cu mai mulți factori?, selectați Nu vreau să configurez setările de autentificare cu mai mulți factori pentru această parte de încredere la adresa de data aceasta.

  20. În pagina Alegeți reguli de emitere a autorizației, selectați Permiteți tuturor utilizatorilor să acceseze această parte terță și apoi selectați Următorul.

  21. Revizuiți setările pentru încredere și apoi selectați Următorul.

  22. Selectați Închidere.

  23. În Editați regulile de revendicare, selectați una dintre următoarele file, în funcție de încrederea pe care o editați și în ce set de reguli doriți să creați regula:

    • Reguli de transformare de acceptare
    • Reguli de transformare de emitere
    • Reguli de autorizare de emitere
    • Reguli de autorizare de delegare
  24. Selectați Adăugați regula.

  25. În lista Șablon de regulă de revendicare, selectați Transformați o revendicare primită, apoi selectați Următorul.

  26. Introduceți sau selectați valorile următoare:

    • Revendicați numele regulii: Transformați numele contului Windows în ID de nume

    • Tip revendicare de intrare: Numele contului Windows

    • Tip revendicare de ieșire: ID nume

    • Format ID nume ieșire: identificator persistent

  27. Selectați Trecere prin toate valorile revendicărilor.

  28. Selectați Finalizați, apoi selectați OK.

Finalizați configurarea furnizorului

După ce ați configurat încrederea pentru partea de încredere AD FS:

  1. Crearea unei înregistrări a aplicației în Azure.

  2. Introducerea setărilor site-ului în Power Pages.

Conectare inițiată de furnizorul de identitate

AD FS acceptă profilul de conectare unică (SSO) inițiată de furnizorul de identitate al specificației SAML 2.0. Pentru ca site-ul web al furnizorului de servicii să răspundă corect la solicitarea SAML a furnizorului de identitate, trebuie să codificați parametrul RelayState .

Valoarea șir de bază pentru codificarea în SAML a parametrului RelayState trebuie să fie în formatul ReturnUrl=/content/sub-content/, unde /content/sub-content/ este calea spre pagina la care doriți să navigați în site-ul web al furnizorului de servicii. Puteți specifica calea către orice pagină validă de pe site. Valoarea rândului este codificată și plasată într-un șir de containere cu formatul RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt;. Acest șir este din nou codificat și adaugă un alt recipient de format <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=&lt;URL> encoded RPID/RelayState&gt;.

De exemplu, având în vedere calea furnizorului de serviciu /content/sub-content/ și bazându-se pe partea de sprijin ID https://portal.contoso.com/, urmați acești pași pentru a construi adresa URL:

  • Codificați valoarea ReturnUrl=/content/sub-content/ pentru a obține ReturnUrl%3D%2Fcontent%2Fsub-content%2F

  • Codificați valoarea https://portal.contoso.com/ pentru a obține https%3A%2F%2Fportal.contoso.com%2F

  • Codificați valoarea RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F pentru a obține RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

  • Setarea căii SSO inițiate de furnizorul de identitate AD FS pentru a obține URL-ul final https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

Puteți utiliza următorul script PowerShell pentru a construi adresa URL. Salvați scriptul într-un fișier numit 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

Configurarea AD FS utilizând PowerShell

În loc să adăugați o parte de încredere manual în AD FS, puteți rula următorul script PowerShell pe serverul AD FS. Salvați scriptul într-un fișier numit Add-AdxPortalRelyingPartyTrustForSaml.ps1. După ce se rulează scriptul, continuați să configurați setările site-ului în 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

Consultați și

Configurarea unui furnizor SAML 2.0
Configurați un furnizor SAML 2.0 cu Microsoft Entra ID
Întrebări frecvente SAML 2.0