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:
- Configurați AD FS în Power Pages
- Creați o parte de încredere AD FS
- Finalizați configurarea furnizorului
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.
Pe Power Pages site-ul dvs., selectați Securitate>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.
Selectați + Furnizor nou.
Sub Selectare furnizor de conectare, selectați Altul.
Sub Protocol, selectați SAML 2.0.
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.
Selectați Următorul.
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.
În Server Manager, selectați Instrumente, apoi selectați Gestionare AD FS.
Extindeți Serviciul.
În panoul de proprietăți din partea dreaptă, selectați Adăugare descriere revendicare.
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… .
Selectați OK.
Selectați Relații de încredere>Autorizări părți de încredere.
Selectați Adăugare autorizare parte terță.
Selectați Start.
Selectați Introduceți manual date despre partea terță și apoi selectați Următorul.
Introduceți un nume, de exemplu https://portal.contoso.com/.
Selectați Următorul.
Selectați Profil AD FS 2.0, apoi selectați Următorul.
În pagina Configurați certificatul, selectați Următorul.
Selectați Activare suport pentru protocolul SAML 2.0 WebSSO.
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.
Selectați Următorul.
Î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.
Selectați Următorul.
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.
Î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.
Revizuiți setările pentru încredere și apoi selectați Următorul.
Selectați Închidere.
Î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 a emisiunii
- Reguli de autorizare a emiterii
- Reguli de autorizare a delegarii
Selectați Adăugați regula.
În lista Șablon de regulă de revendicare, selectați Transformați o revendicare primită, apoi selectați Următorul.
Introduceți sau selectați valorile următoare:
Revendicați numele regulii: Transformați numele contului Windows în ID nume
Tip revendicare primită: Numele contului Windows
Tip revendicare trimisă: ID de nume
Format ID de nume de ieșire: Identificator persistent
Selectați Trecere prin toate valorile revendicărilor.
Selectați Finalizați, apoi selectați OK.
Finalizați configurarea furnizorului
După ce ați configurat încrederea pentru partea de încredere AD FS:
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=<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/
, urmați acești pași pentru a construi adresa URL:
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
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
Configurați un furnizor SAML 2.0
Configurați un furnizor SAML 2.0 cu Microsoft Entra ID
Întrebări frecvente SAML 2.0