Configurar un proveïdor SAML 2.0 amb AD FS
L'Active Directory Federation Services (AD FS) és un dels proveïdors d'identitat SAML 2.0 que podeu utilitzar per autenticar els visitants del vostre lloc de Power Pages. Podeu utilitzar qualsevol altre proveïdor que s'ajusti a l'especificació de SAML 2.0.
Aquest article descriu els següent passos:
- Configurar l'AD FS a Power Pages
- Crear una confiança de l'entitat de confiança d'AD FS
- Finalitzar la configuració del proveïdor
Important
Els passos per a la configuració de l'AD FS poden variar depenent de la versió del vostre servidor de l'AD FS.
Configurar AD FS a Power Pages
Establir AD FS com a proveïdor d'identitat per al vostre lloc.
Al lloc Power Pages web, seleccioneu Proveïdors> d'identitat de seguretat.
Si no apareixen proveïdors d'identitats, assegureu-vos que Inici de sessió extern estigui definit com a Activat la configuració d'autenticació general del lloc.
Seleccioneu + Nou proveïdor.
A Seleccionar proveïdor d'inici de sessió, seleccioneu Altres.
A Protocol, seleccioneu SAML 2.0.
Introduïu un nom per al proveïdor.
El nom del proveïdor és el text del botó que veuen els usuaris quan seleccionen el proveïdor d'identitat a la pàgina d'inici de sessió.
Seleccioneu Següent.
A Adreça URL de resposta, seleccioneu Copia.
No tanqueu la pestanya del navegador de Power Pages. Ben aviat hi tornareu.
Creeu una relació de confiança per a un usuari autenticat de l'AD FS
També podeu utilitzar un script del PowerShell per dur a terme aquests passos.
A Administrador de servidors, seleccioneu Eines i, a continuació, seleccioneu Administració AD FS.
Expandiu Servei.
A la subfinestra dreta, seleccioneu Afegeix descripció de declaració.
Introduïu els valors següents:
Nom de visualització: identificador persistent
Identificador de reclamació: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
Seleccioneu les dues opcions de Publiqueu aquesta descripció de la declaració a les metadades de federació... .
Seleccioneu D'acord.
Seleccioneu Relacions de confiança>Relacions de confiança per a un usuari autenticat.
Seleccioneu Afegeix relació de confiança per a un usuari autenticat.
Seleccioneu Inicia.
Seleccioneu Introdueix les dades de l'usuari de confiança manualment i Següent.
Introduïu un nom, per exemple, https://portal.contoso.com/.
Seleccioneu Següent.
Seleccioneu Perfil AD FS 2.0 i, a continuació, Següent.
A la pàgina Configura certificat, seleccioneu Següent.
Seleccioneu Habilita la compatibilitat amb el protocol SAML 2.0 WebSSO.
A Adreça URL del servei de l'SSO del SAML 2.0 de l'usuari de confiança, introduïu l'adreça URL de resposta que heu copiat. L'AD FS requereix que el lloc web s'executi a l'HTTPS no HTTP.
Seleccioneu Següent.
A la pàgina Configura els identificadors , introduïu l'adreça URL del lloc i, a continuació, seleccioneu Afegeix.
Si escau, podeu afegir més identitats per a cada lloc web de l'usuari de confiança addicional. Els usuaris es poden autenticar a través de qualsevol de les identitats disponibles.
Seleccioneu Següent.
A la pàgina Configura autenticació multifactorial ara seleccioneu No vull configurar l'autenticació multifactorial per a aquesta relació de confiança per a un usuari autenticat ara.
A la pàgina Trieu Regles d'autorització de l'emissió seleccioneu Permet que tots els usuaris accedeixin a aquest usuari de confiança i seleccioneu Següent.
Reviseu la configuració de confiança i, a continuació, seleccioneu Següent.
Seleccioneu Tanca.
A Edita les regles de declaració, seleccioneu una de les pestanyes següents, en funció de la confiança que editeu i del conjunt de regles per a la qual voleu crear la regla:
- Regles de transformació d'acceptació
- Regles de transformació d'emissió
- Normes d'autorització d'emissió
- Normes d'autorització de delegació
Seleccioneu Afegeix regla.
A la llista Plantilla de regla de declaració, seleccioneu Transforma una declaració entrant i, a continuació, seleccioneu Següent.
Introduïu o seleccioneu els valors següents:
Nom de la regla de reclamació: Transforma el nom del compte del Windows a ID de nom
Tipus de reclamació entrant: nom del compte del Windows
Tipus de reclamació de sortida: identificador de nom
Format d'identificador del nom de sortida: identificador persistent
Seleccioneu Passeu per tots els valors de declaració.
Seleccioneu Acaba i, a continuació, D'acord.
Acabar de configurar el proveïdor
Després de configurar relació de confiança per a un usuari autenticat de l'AD FS:
Inici de sessió iniciat pel proveïdor d'identitats
L'AD FS és compatible amb el perfil d'inici de sessió únic (SSO) iniciat pel proveïdor d'identitats de l'especificació SAML 2.0. Perquè el lloc web del proveïdor de serveis respongui correctament a la sol·licitud SAML del proveïdor d'identitats, heu de codificar el paràmetre RelayState
.
El valor de cadena bàsic que es codificarà en el paràmetre RelayState
del SAML ha de tenir el format: ReturnUrl=/content/sub-content/
, on /content/sub-content/
és el camí a la pàgina desitjada del lloc web del proveïdor del servei a la qual accedireu. Podeu especificar el camí a qualsevol pàgina vàlida del lloc web. El valor de cadena està codificat i ubicat en una cadena de contenidor del format: RPID=<URL encoded RPID>&RelayState=<URL encoded RelayState>
. Aquesta cadena sencera es torna a codificar i afegir a un altre contenidor del format: <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL> encoded RPID/RelayState>
.
Per exemple, amb el camí del proveïdor del servei /content/sub-content/
i l'identificador d'usuari de confiança: https://portal.contoso.com/
, seguiu aquests passos per crear l'adreça URL:
Codifiqueu el valor
ReturnUrl=/content/sub-content/
per obtenirReturnUrl%3D%2Fcontent%2Fsub-content%2F
Codifiqueu el valor
https://portal.contoso.com/
per obtenirhttps%3A%2F%2Fportal.contoso.com%2F
Codifiqueu el valor
RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F
per obtenirRPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F
Poseu el camí de l'SSO iniciat pel proveïdor d'identitats de l'AD FS per obtenir l'adreça URL 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
Podeu utilitzar l'script següent del PowerShell per construir l'adreça URL. Deseu l'script en un fitxer anomenat 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
Configuració de l'AD FS mitjançant PowerShell
En comptes d'afegir un usuari de confiança a l'AD FS manualment, també es pot dur a terme executant l'script del PowerShell següent al servidor de l'AD FS. Deseu l'script en un fitxer anomenat Add-AdxPortalRelyingPartyTrustForSaml.ps1
. Un cop executat l'script, continueu configurant els paràmetres del lloc a 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
Consulteu també
Configurar un proveïdor SAML 2.0
Configurar un proveïdor SAML 2.0 amb Microsoft Entra ID
Preguntes freqüents sobre SAML 2.0