Configurați un furnizor SAML 2.0 pentru portaluri cu AD FS

Notă

Începând cu 12 octombrie 2022, portalurile Power Apps sunt Power Pages. Mai multe informații: Microsoft Power Pages este acum disponibil în general (blog)
În curând vom migra și vom îmbina documentația portalurilor Power Apps cu documentația Power Pages.

Important

Pașii pentru configurarea Active Directory Federation Services (AD FS) pot varia în funcție de versiunea serverului AD FS.

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

Notă

Consultați Configurarea AD FS utilizând PowerShell, pentru informații despre cum să efectuați acești pași într-un script PowerShell.

  1. Utilizând instrumentul AD FS Management, mergeți la Serviciul > Descrieri revendicare.

    1. Selectați Adăugare descriere revendicare.

    2. Specificați revendicarea:

      • Nume afișat: identificator persistent

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

      • Activați caseta de selectare pentru: publicați această descriere de revendicare în metadatele de federație ca tip de revendicare pe care acest serviciu de federație îl poate accepta

      • Activați caseta de selectare pentru: publicați această descriere de revendicare în metadatele de federație ca tip de revendicare pe care acest serviciu de federație îl poate trimite

    3. Selectați OK.

  2. Utilizând instrumentul AD FS Management, selectați Relații de încredere >Autorizări părți de încredere.

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

    2. Bun venit: Selectați Start.

    3. Selectați sursa de date: selectați Introduceți manual date despre partea terță și apoi selectați Următorul.

    4. Specificați numele afișat: introduceți un nume, selectați Următorul. Exemplu: https://portal.contoso.com/

    5. Alege profilul: Selectați profil AD FS 2.0 și apoi selectați Următorul.

    6. Configurați certificatul: selectați Următorul.

    7. Configurați URL-ul: selectați caseta de selectare Activați suportul pentru protocolul SAML 2.0 WebSSO. Parte suport URL serviciu SAML 2.0 SSO: introduceți https://portal.contoso.com/signin-saml2
      Observați că AD FS necesită ca portalul să ruleze pe HTTPS.

      Notă

      Punctul final rezultat are urmatoarele setari:

    8. Configurarea identităților: introduceți https://portal.contoso.com/, selectați Adăugare, apoi selectați Următorul. Dacă este cazul, puteți să adăugați mai multe identități pentru fiecare portal parte de încredree suplimentar. Utilizatorii pot să se autentifice cu oricare sau cu toate identitățile disponibile.

    9. 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.

    10. Pregătit pentru a adăuga autorizarea: selectați Următorul.

    11. Selectați Închidere.

  3. Adaugați revendicarea ID nume la autorizația părții de încredere:

    Transformați numele de cont Windows în revendicare ID nume (transformarea unei revendicări de intrare):

    • Tip de solicitare de intrare: nume de cont Windows

    • Tip revendicare de ieșire: ID nume

    • Format ID nume ieșire: Identificator persistent

    • Trecere prin toate valorile revendicărilor

Configurați furnizorul SAML 2.0

După configurarea încrederii părții de încredere AD FS, puteți urma pașii din Configurarea un furnizor SAML 2.0 pentru portale.

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 portalul (furnizorul de servicii) să răspundă în mod corespunzător la cererea SAML începută de furnizorul de identitate, parametrul RelayState trebuie să fie codificat în mod corespunzător.

Valoarea șir de bază codificată în parametrul SAML RelayState trebuie să fie în formatul: ReturnUrl=/content/sub-content/ în cazul în care /content/sub-content/ este calea spre pagina web pe care doriți să navigheze pe portalul (furnizor de serviciu). Calea poate fi înlocuită cu orice pagină web valabilă pe portal. Valoarea rândului este codificată și plasată într-un șir de containere de format 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/, construiți URL-ul cu pașii următori:

  • 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

  • Setare furnizor de identitate AD FS–cale SSO inițiată 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 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

Configurarea AD FS utilizând PowerShell

Procesul de adăugare a unei părți de încredere în AD FS poate fi realizat și prin rularea următorului script PowerShell pe serverul AD FS. Salvați scriptul într-un fișier numit Add-AdxPortalRelyingPartyTrustForSaml.ps1. După rularea scriptului, continuați cu configurarea setărilor de portal de site.

<# 

.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


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


[!INCLUDE[cc-pages-ga-banner](../../../includes/cc-pages-ga-banner.md)]

Add-CrmRelyingPartyTrust $domain

Configurarea unui furnizor SAML 2.0

După configurarea încrederii părții dependente de AD FS, puteți urma pașii din Configurați un furnizor SAML 2.0 pentru portaluri.

Consultați și

Configurați un furnizor SAML 2.0 pentru portale cu Azure AD
Întrebări frecvente pentru utilizarea SAML 2.0 în portaluri
Configurați un furnizor SAML 2.0 pentru portale

Notă

Ne puteți spune care preferințele dvs. lingvistice pentru documentație? Răspundeți la un chestionar scurt. (rețineți că acest chestionar este în limba engleză)

Chestionarul va dura aproximativ șapte minute. Nu sunt colectate date personale (angajament de respectare a confidențialității).