Compartir por


Configurar un fornecedor de SAML 2.0 con AD FS

Active Directory Federation Services (AD FS) é un dos provedores de identidade SAML 2.0 que pode usar para autenticar visitantes do seu sitio de Power Pages. Pode usar calquera outro provedor que cumpra coa especificación de SAML 2.0.

Este artigo describe os pasos seguintes:

Importante

Os pasos para a configuración de AD FS poderían variar dependendo da versión do servidor de AD FS.

Configurar AD FS en Power Pages

Configure AD FS como un fornecedor de identidades para o seu sitio.

  1. No seu sitio de Power Pages, seleccione Configurar>Fornecedores de identidade.

    Se non aparece ningún fornecedor de identidade, asegúrese de que Inicio de sesión externo está configurado como Activado na configuración xeral de autenticación do seu sitio.

  2. Seleccione + Novo fornecedor.

  3. En Seleccionar fornecedor de inicio de sesión, seleccione Outro.

  4. En Protocolo, seleccione SAML 2.0.

  5. Escribir un nome para o fornecedor.

    O nome do fornecedor é o texto que aparece no botón que ven os usuarios cando seleccionan o seu fornecedor de identidade na páxina de inicio de sesión.

  6. Seleccione Seguinte.

  7. En URL de resposta, seleccione Copiar.

    Non peche o separador do explorador Power Pages. Pronto volverá a el.

Crear unha confianza das partes que dependan de FS AD

Tamén pode utilizar un script de PowerShell para realizar estes pasos.

  1. No Xestor de servidores, seleccione Ferramentas e, a seguir, seleccione Xestión de AD FS.

  2. Expanda Servizo.

  3. No panel lateral dereito, seleccione Engadir descrición de reclamación.

  4. Introduza os seguintes valores:

    • Nome para mostrar: Identificador persistente

    • Identificador da reclamación: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

    • Seleccione Publicar esta descrición da reclamación nos metadatos da federación… opcións.

  5. Seleccione Aceptar.

  6. Seleccione Relacións de confianza>Grupos de confianza.

  7. Seleccione Engadir Confianza das partes dependentes.

  8. Seleccione Iniciar.

  9. Seleccione Introducir datos acerca do grupo manualmente e seleccione Seguinte.

  10. Introduza un nome, por exemplo, https://portal.contoso.com/.

  11. Seleccione Seguinte.

  12. Seleccione Perfil de AD FS 2.0 e, a seguir, seleccione Seguinte.

  13. Na páxina Configurar certificado, seleccione Seguinte.

  14. Seleccione Habilitar compatibilidade co protocolo SAML 2.0 WebSSO.

  15. En URL do servizo SSO de SAML 2.0 da parte de confianza, introduza o URL de resposta que copiou. AD FS require que o sitio web se execute en HTTPS, non HTTP.

  16. Seleccione Seguinte.

  17. Na páxina Configurar identificadores, introduza o URL do seu sitio e, a seguir, seleccione Engadir.

    Pode engadir máis identidades para cada sitio web adicional do grupo de confianza se é necesario. Os usuarios poden autenticarse con calquera das identidades dispoñibles.

  18. Seleccione Seguinte.

  19. Na páxina Configurar agora a autenticación multifactor?, seleccione Non quero configurar a autenticación multifactor para esta confianza da parte de confianza neste momento.

  20. Na páxina Escoller regras de autorización de emisión, seleccione Permitir a todos os usuarios acceso a este grupo de confianza e seleccione Seguinte.

  21. Revise a configuración de confianza e, a seguir, seleccione Seguinte.

  22. Seleccione Pechar.

  23. En Editar regras de reclamación, seleccione un dos seguintes separadores, dependendo da confianza que estea editando e do conxunto de regras no que quere crear a regra:

    • Regras de transformación de aceptación
    • Regras de transformación de emisión
    • Normas de autorización de emisión
    • Regras de autorización de delegación
  24. Seleccione Engadir regra.

  25. Na lista Modelo de regra de reclamación, seleccione Transformar unha reclamación entrante e, a continuación, seleccione Seguinte.

  26. Introduza ou seleccione os seguintes valores:

    • Nome de regra de reclamación: Transforma o nome da conta de Windows en ID de nome

    • Tipo de reclamación entrante: Nome de conta de Windows

    • Tipo de reclamación saínte: ID de nome

    • Formato de ID do nome de saída: Identificador persistente

  27. Seleccione Transmitir a través de todos os valores de reclamación.

  28. Seleccione Finalizar e, a seguir, seleccione Aceptar.

Rematar a configuración do provedor

Despois de configurar a confianza da parte de confianza de AD FS:

  1. Cree un rexistro de aplicación en Azure.

  2. Introduza a configuración do sitio en Power Pages.

Inicio de sesión iniciado por un provedor de identidade

AD FS admite o perfil de inicio de sesión único (SSO) iniciado polo provedor de identidade da especificación SAML 2.0. Para que o sitio web do provedor de servizos responda correctamente á solicitude SAML do provedor de identidade, debe codificar o parámetro RelayState .

O valor de cadea básica que se vai codificar nun parámetro RelayState de SAML debe estar no formato ReturnUrl=/content/sub-content/, onde /content/sub-content/ é o camiño á páxina á que quere ir no sitio web do provedor do servizo. Pode especificar o camiño a calquera páxina válida do sitio web. O valor de cadea está codificado e colócase nunha cadea de contedor do formato RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt;. Esta cadea vólvese a codificar de novo completamente e engádese a outro contedor do formato <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=&lt;URL> encoded RPID/RelayState&gt;.

Por exemplo, co camiño do fornecedor do servizo /content/sub-content/ e o ID da parte dependente https://portal.contoso.com/, siga estes pasos para crear o URL:

  • Codifique o valor ReturnUrl=/content/sub-content/ para obter ReturnUrl%3D%2Fcontent%2Fsub-content%2F

  • Codifique o valor https://portal.contoso.com/ para obter https%3A%2F%2Fportal.contoso.com%2F

  • Codifique o valor RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F para obter RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

  • Engada o camiño de SSO iniciado do provedor de identidades de AD FSpara obter o 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

Pode usar o seguinte script PowerShell para construír o URL. Garde o script nun ficheiro chamado 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

Configurar AD FS utilizando PowerShell

En lugar de engadir unha confianza de participante dependente en AD FS manualmente, pode executar o seguinte script de PowerShell no servidor AD FS. Garde o script nun ficheiro chamado Add-AdxPortalRelyingPartyTrustForSaml.ps1. Despois de executar o script, continúe configurando a configuración do sitio en 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

Consulte tamén

Configurar un fornecedor de SAML 2.0
Configurar un provedor de SAML 2.0 con Microsoft Entra ID
Preguntas frecuentes sobre SAML 2.0