> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Aprenda a conectar su aplicación con Active Directory Federation Services (ADFS) mediante conexiones empresariales.

# Conecte su aplicación con ADFS

export const AuthCodeBlock = ({filename, icon, language, highlight, children}) => {
  const [displayText, setDisplayText] = useState(children);
  const [copyText, setCopyText] = useState(children);
  const wrapperRef = React.useRef(null);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      if (!window.autorun || !window.rootStore) {
        return;
      }
      unsubscribe = window.autorun(() => {
        let processedChildrenForDisplay = children;
        let processedChildrenForCopy = children;
        for (const [key, value] of window.rootStore.variableStore.values.entries()) {
          const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
          let displayValue = value;
          if (key === "{yourClientSecret}" && value !== "{yourClientSecret}") {
            displayValue = value.substring(0, 3) + "*****ENMASCARADO*****";
          }
          processedChildrenForDisplay = processedChildrenForDisplay.replaceAll(new RegExp(escapedKey, "g"), displayValue);
          processedChildrenForCopy = processedChildrenForCopy.replaceAll(new RegExp(escapedKey, "g"), value);
        }
        setDisplayText(processedChildrenForDisplay);
        setCopyText(processedChildrenForCopy);
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  useEffect(() => {
    if (!wrapperRef.current) return;
    const originalWriteText = navigator.clipboard.writeText.bind(navigator.clipboard);
    let isOverriding = false;
    const handleClick = e => {
      const button = e.target.closest('[data-testid="copy-code-button"]');
      if (!button || !wrapperRef.current.contains(button)) return;
      isOverriding = true;
      navigator.clipboard.writeText = text => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
          return originalWriteText(copyText);
        }
        return originalWriteText(text);
      };
      setTimeout(() => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
        }
      }, 100);
    };
    const wrapper = wrapperRef.current;
    wrapper.addEventListener('click', handleClick, true);
    return () => {
      wrapper.removeEventListener('click', handleClick, true);
      if (navigator.clipboard.writeText !== originalWriteText) {
        navigator.clipboard.writeText = originalWriteText;
      }
    };
  }, [copyText]);
  return <div ref={wrapperRef}>
      <CodeBlock filename={filename} icon={icon} language={language} lines highlight={highlight}>
        {displayText}
      </CodeBlock>
    </div>;
};

Para conectar su aplicación con Active Directory Federation Services (ADFS) de Microsoft, deberá proporcionar la siguiente información a su administrador de ADFS:

* Identificador de Realm: `urn:auth0:{yourTenant}`
* Punto de conexión: `https://{yourDomain}/login/callback` o `https://<YOUR CUSTOM DOMAIN>/login/callback`, si está usando un [dominio personalizado](/es/docs/customize/custom-domains).

<Card title="Metadatos de federación">
  El archivo de metadatos de federación contiene información sobre los certificados del servidor ADFS. Si el endpoint de Federation Metadata (`/FederationMetadata/2007-06/FederationMetadata.xml`) está habilitado en ADFS, Auth0 puede buscar periódicamente (una vez al día) cambios en la configuración, como la incorporación de un nuevo certificado de firma para prepararse para una rotación. Por ello, es preferible habilitar el endpoint de Federation Metadata en lugar de proporcionar un archivo de metadatos independiente. Si proporciona un archivo de metadatos independiente, le notificaremos por correo electrónico cuando los certificados estén próximos a caducar.
</Card>

Puede usar un script para configurar la conexión o hacerlo manualmente.

<div id="scripted-setup">
  ## Configuración mediante script
</div>

Ejecute los dos comandos siguientes en la ventana de Windows PowerShell.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Debe ejecutar este script como administrador del sistema.
</Callout>

```powershell wrap lines theme={null}
(new-object Net.WebClient -property @{Encoding = [Text.Encoding]::UTF8}).DownloadString("https://raw.github.com/auth0/adfs-auth0/master/adfs.ps1") | iex
```

export const codeExample1 = `AddRelyingParty "urn:auth0:{yourTenant}" "https://{yourDomain}/login/callback"`;

<AuthCodeBlock children={codeExample1} language="powershell" />

Para la integración automatizada, este script usa el [ADFS PowerShell SnapIn](http://technet.microsoft.com/en-us/library/adfs2-powershell-basics.aspx) para crear y configurar una **<Tooltip tip="Parte de confianza: entidad (como un servicio o una aplicación) que depende de un proveedor de identidad de terceros para autenticar a un usuario." cta="Ver glosario" href="/es/docs/glossary?term=Relying+Party">Parte de confianza</Tooltip>** que emitirá, para el usuario autenticado, los siguientes claims: **correo electrónico**, **upn**, **nombre** y **apellido**.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Si usa la función de [dominios personalizados](/es/docs/customize/custom-domains), deberá reemplazar el valor de `$webAppEndpoint` por `https://<YOUR CUSTOM DOMAIN>/login/callback`.
</Callout>

El script crea la relación de confianza de parte de confianza en ADFS de la siguiente manera:

export const codeExample2 = `$realm = "urn:auth0:{yourTenant}";
$webAppEndpoint = "https://{yourDomain}/login/callback";
Add-PSSnapin Microsoft.Adfs.Powershell
Add-ADFSRelyingPartyTrust -Name $realm -Identifier $realm -WSFedEndpoint $webAppEndpoint
$rp = Get-ADFSRelyingPartyTrust -Name $realm`;

<AuthCodeBlock children={codeExample2} language="powershell" />

El script también crea reglas para devolver los atributos más comunes, como correo electrónico, UPN, nombre o apellido:

```powershell lines theme={null}
$rules = @'
@RuleName = "Store: ActiveDirectory -> Mail (ldap attribute: mail), Name (ldap attribute: displayName), Name ID (ldap attribute: userPrincipalName), GivenName (ldap attribute: givenName), Surname (ldap attribute: sn)"
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(store = "Active Directory",
    types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
             "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
             "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
             "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname",
             "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname"), query = ";mail,displayName,userPrincipalName,givenName,sn;{0}", param = c.Value);
'@
Set-ADFSRelyingPartyTrust –TargetName $realm -IssuanceTransformRules $rules
$rSet = New-ADFSClaimRuleSet –ClaimRule '=> issue(Type = "http://schemas.microsoft.com/authorization/claims/permit", Value = "true");'
Set-ADFSRelyingPartyTrust –TargetName $realm –IssuanceAuthorizationRules $rSet.ClaimRulesString
```

<div id="manual-setup-part-1-add-a-relying-party-trust">
  ## Configuración manual, parte 1: Agregar una relación de confianza de parte de confianza
</div>

1. Abra la Consola de administración de ADFS.
2. En el lado derecho de la consola, haga clic en **Agregar relación de confianza de parte de confianza**\*
3. Haga clic en **Iniciar**.
4. Seleccione **Especificar manualmente los datos sobre la parte de confianza** y haga clic en **Siguiente**.
5. Escriba un nombre (como `{yourAppName}`) y haga clic en **Siguiente**.
6. Use la opción predeterminada (`ADFS 2.0 profile`) y haga clic en **Siguiente**.
7. Use la opción predeterminada (`no encryption certificate`) y haga clic en **Siguiente**.
8. Marque **Habilitar compatibilidad con WS-Federation...** y escriba este valor en el cuadro de texto:
   `https://{yourDomain}/login/callback`, o, si usa un [dominio personalizado](/es/docs/customize/custom-domains), `https://<YOUR CUSTOM DOMAIN>/login/callback`
9. Haga clic en **Siguiente**.
10. Agregue un identificador de relación de confianza de parte de confianza con este valor:
    `urn:auth0:{yourTenant}`
11. Haga clic en **Agregar** y luego en **Siguiente**.
12. Deje la opción predeterminada `Permit all users...` y haga clic en **Siguiente**.
13. Haga clic en **Siguiente** y luego en **Cerrar**.

<div id="manual-setup-part-2-add-a-claim-issuance-policy-rule">
  ## Configuración manual, parte 2: agregar una regla de directiva de emisión de claims
</div>

1. Si usa Windows Server 2019, el cuadro de diálogo Edit Claim Issuance Policy se abre automáticamente al finalizar el asistente Add Relying Party Trust. Si usa Windows Server 2012 o 2016, siga estos pasos:

| En Windows Server 2012                                                                                                                                 | En Windows Server 2016                                                                                                                                                                                                                       |
| ------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| En el panel Actions, a la derecha de la consola, busque la parte de confianza que acaba de crear. Debajo, haga clic en **Edit Claim Issuance Policy**. | En el árbol de la consola, en ADFS, haga clic en **Relying Party Trusts**. A la derecha de la consola, busque la parte de confianza que acaba de crear. Haga clic con el botón derecho sobre ella y luego en **Edit Claim Issuance Policy**. |

2. En la ventana Edit Claim Issuance Policy, en Issuance Transform Rules, haga clic en **Add Rule...**.
3. Deje la opción predeterminada `Send LDAP Attributes as Claims`.
4. Asigne a la regla un nombre que describa lo que hace.
5. En Attribute Store, seleccione **Active Directory**.
6. Seleccione estas asignaciones en `Mapping of LDAP attributes to outgoing claim types` y haga clic en **Finish**.

| Atributo LDAP       | Tipo de claim saliente |
| ------------------- | ---------------------- |
| E-Mail-Addresses    | E-Mail Address         |
| Display-Name        | Name                   |
| User-Principal-Name | Name ID                |
| Given-Name          | Given Name             |
| Surname             | Surname                |

<div id="add-additional-ldap-attributes">
  ### Agregar atributos LDAP adicionales
</div>

Las asignaciones de los pasos anteriores son las más utilizadas, pero si necesita atributos LDAP adicionales con información sobre el usuario, puede agregar más asignaciones de claims.

1. Si cerró la ventana en el paso anterior, seleccione **Edit Claim Rules** en el menú contextual de la confianza de parte de confianza que creó y edite la regla.
2. Cree una fila adicional para cada atributo LDAP que necesite; para ello, elija el nombre del atributo en la columna izquierda y el tipo de claim deseado en la columna derecha.
3. Si el tipo de claim que busca no existe, tiene dos opciones:

   1. Escriba un [nombre calificado con espacio de nombres](/es/docs/secure/tokens/json-web-tokens/create-custom-claims) para el nuevo claim (por ejemplo, `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/department`).
   2. Registre un nuevo tipo de claim (en **ADFS > Services > Claim Descriptions** en la consola de administración de ADFS) y use el nombre del claim en la asignación.
      Auth0 usa la parte correspondiente al nombre del tipo de claim (por ejemplo, `department` en `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/department`) como nombre del atributo para el perfil de usuario.

<div id="next-steps">
  ## Próximos pasos
</div>

Ahora que ya tiene una conexión en funcionamiento, el siguiente paso es configurar su aplicación para usarla. Puede seguir nuestras guías de inicio rápido paso a paso o usar nuestras bibliotecas y la API.

* [Comience con nuestras guías de inicio rápido](/es/docs/quickstarts)
* [Configure su aplicación con nuestro formulario de Login de Lock](/es/docs/libraries/lock)
* [Configure su aplicación con la biblioteca de Auth0.js y su propia interfaz de usuario](/es/docs/libraries/auth0js)
* [Use nuestra Authentication API para autenticarse](https://auth0.com/docs/api/authentication)
