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.
Utilizând instrumentul AD FS Management, mergeți la Serviciul > Descrieri revendicare.
Selectați Adăugare descriere revendicare.
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
Selectați OK.
Utilizând instrumentul AD FS Management, selectați Relații de încredere >Autorizări părți de încredere.
Selectați Adăugare autorizare parte terță.
Bun venit: Selectați Start.
Selectați sursa de date: selectați Introduceți manual date despre partea terță și apoi selectați Următorul.
Specificați numele afișat: introduceți un nume, selectați Următorul. Exemplu: https://portal.contoso.com/
Alege profilul: Selectați profil AD FS 2.0 și apoi selectați Următorul.
Configurați certificatul: selectați Următorul.
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:
- Punctul final de tip: Puncte finale consum afirmație SAML
- Obligatoriu: POST
- Indice: n/a (0)
- URL: https://portal.contoso.com/signin-saml2
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.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.
Pregătit pentru a adăuga autorizarea: selectați Următorul.
Selectați Închidere.
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=<URL encoded RPID>&RelayState=<URL encoded RelayState>
. Acest șir este din nou codificat și adaugă un alt recipient de format <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL> encoded RPID/RelayState>
.
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țineReturnUrl%3D%2Fcontent%2Fsub-content%2F
Codificați valoarea
https://portal.contoso.com/
pentru a obținehttps%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țineRPID%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).