Compartir a través de


Configurar la autenticación OIDC en SharePoint Server con Servicios de federación de Active Directory (AD FS)

SE APLICA A:no-img-132013 no-img-162016 no-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint en Microsoft 365

Requisitos previos

Al configurar SharePoint Server con Servicios de federación de Active Directory (AD FS) mediante la autenticación de OpenID Connect (OIDC), necesita los siguientes recursos para realizar la configuración:

  1. Una granja de servidores de SharePoint Server Subscription Edition.
  2. AD FS en Windows Server 2016 o posterior, ya creado, con la clave pública del certificado de firma de AD FS exportado en un .cer archivo.

En este artículo se usan los siguientes valores de ejemplo para la configuración de AD FS OIDC:

Valor Vínculo
Dirección URL del sitio de SharePoint https://spsites.contoso.local/
DIRECCIÓN URL del sitio de AD FS https://adfs.contoso.local/adfs/
Punto de conexión de autenticación de AD FS https://adfs.contoso.local/adfs/oauth2/authorize
RegisteredIssuerName URL https://adfs.contoso.local/adfs/
AD FS SignoutURL https://adfs.contoso.local/adfs/oauth2/logout
Tipo de notificación de identidad http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
Administrador de la colección de sitios de Windows contoso\yvand
Valor de correo electrónico del administrador de colección de sitios federado (AD FS) yvand@contoso.local

Paso 1: Configuración del proveedor de identidades

Siga estos pasos para configurar OIDC con AD FS:

  1. En Administración de AD FS, haga clic con el botón derecho en Grupos de aplicaciones y seleccione Agregar grupo de aplicaciones.

  2. Vaya a la página principal , escriba ADFSSSO en el campo Nombre y, en Aplicaciones cliente-servidor, seleccione el explorador web que accede a una plantilla de aplicación web . Después, seleccione Siguiente.

    Asistente para agregar grupos de aplicaciones

  3. Vaya a la página Aplicación nativa y copie el valor de Identificador de cliente . Se usará más adelante como valor para DefaultClientIdentifier el parámetro durante la configuración de SharePoint.

  4. En el campo Dirección URL de redireccionamiento , escriba https://spsites.contoso.local/ y seleccione Agregar. Después, seleccione Siguiente.

    Asistente para agregar grupos de aplicaciones 2

  5. Vaya a la página Resumen y seleccione Siguiente.

    Asistente para agregar grupos de aplicaciones 3

  6. Vaya a la página Completar y seleccione Cerrar.

  7. Exportación del certificado de firma de tokens desde AD FS. Este certificado de firma de tokens se usará en la instalación de SharePoint. En las imágenes siguientes se muestra cómo exportar el certificado de firma de tokens desde AD FS:

    Exportación de certificados de AD FS 1

    Exportación de certificados de AD FS 2

    Exportación de certificados de AD FS 3

    Exportación de certificados de AD FS 4

  8. Asegúrese de que el identificador de notificación necesario está incluido en desde id_token AD FS. Consideremos el correo electrónico como ejemplo:

    Se supone que AD FS ha configurado la regla que lee la notificación de identificador del almacén de atributos, como AD. Siga estos pasos para crear la regla de transformación de emisión para esta aplicación web específica que creamos anteriormente en AD FS:

    1. Abra la aplicación web que creó y vaya a la pestaña Regla de transformación de problemas .

      Regla de transformación de problemas

    2. Seleccione Agregar regla y seleccione Enviar atributos LDAP como notificaciones en la lista de opciones.

      Agregar regla de transformación de problemas

      Agregar regla de notificación de transformación

    3. Asigne un nombre a la regla de notificación como AD y seleccione Active Directory en el menú desplegable Almacén de atributos . Cree dos asignaciones mediante los cuadros desplegables, como se muestra:

      Atributo Valor
      Direcciones de correo electrónico Dirección de correo electrónico
      Token-Groups: calificado por nombre de dominio Role

      Adición de la regla de notificación de transformación 2

    4. Seleccione Finalizar para cerrar el Asistente para reglas y seleccione Aceptar para cerrar las propiedades de la aplicación web. Seleccione Aceptar una vez más para completar la regla.

Si va a establecer OIDC con SharePoint Server, la notificación nbf debe configurarse en el lado del servidor de AD FS en la aplicación web que creó. Si la notificación nbf no existe en esta aplicación web, realice los pasos siguientes para crearla:

  1. Abra la aplicación web que creó y vaya a la pestaña Regla de transformación de problemas .

    Regla de transformación de problemas

  2. Seleccione Agregar regla y, a continuación, aplicar. En el Asistente para agregar reglas de notificación de transformación , seleccione Enviar notificaciones mediante una regla personalizada en las opciones de plantilla Regla de notificación .

    Agregar regla de transformación de problemas

    Agregar regla de notificación de transformación 3

  3. Seleccione Siguiente y escriba la siguiente cadena en el campo Regla personalizada :

    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"] => issue(Type = "nbf", Value = "0");

    Agregar regla de notificación de transformación 4

  4. Seleccione Finalizar.

Paso 2: Cambio de las propiedades de la granja de servidores de SharePoint

En este paso, debe modificar las propiedades de la granja de servidores de SharePoint Server en función de la versión de SharePoint Server.

Nota:

Inicie el Shell de administración de SharePoint como administrador de la granja de servidores para ejecutar el siguiente script. Lea detenidamente las instrucciones mencionadas en el siguiente script de PowerShell. Tendrá que escribir sus propios valores específicos del entorno en determinados lugares.

Configuración de La edición de suscripción de SharePoint Server versión 24H1 o versiones posteriores

A partir de la versión 24H1 de SharePoint Server Subscription Edition (marzo de 2024), puede configurar las propiedades de la granja de servidores de SharePoint Server empleando Administración de certificados de SharePoint para administrar el certificado de cookie de nonce. El certificado de cookie de nonce forma parte de la infraestructura para garantizar que los tokens de autenticación de OIDC sean seguros. Ejecute el siguiente script para configurar:

# Set up farm properties to work with OIDC

# Create the Nonce certificate
$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider' -Subject "CN=SharePoint Cookie Cert"

# Import certificate to Certificate Management
$certPath = <path to save the exported cert>
$certPassword = ConvertTo-SecureString -String <password> -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath $certPath -Password $certPassword
$nonceCert = Import-SPCertificate -Path $certPath -Password $certPassword -Store "EndEntity" -Exportable:$true

$farm = Get-SPFarm 
$farm.UpdateNonceCertificate($nonceCert,$true)

Configuración de La edición de suscripción de SharePoint Server anterior a la versión 24H1

# Set up farm properties to work with OIDC
$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider' -Subject "CN=SharePoint Cookie Cert"
$rsaCert = [System.Security.Cryptography.X509Certificates.RSACertificateExtensions]::GetRSAPrivateKey($cert)
$fileName = $rsaCert.key.UniqueName

# If you have multiple SharePoint servers in the farm, you need to export the certificate by Export-PfxCertificate and import the certificate to all other SharePoint servers in the farm by Import-PfxCertificate. 

# After the certificate is successfully imported to SharePoint Server, we will need to grant access permission to the certificate's private key.

$path = "$env:ALLUSERSPROFILE\Microsoft\Crypto\RSA\MachineKeys\$fileName"
$permissions = Get-Acl -Path $path

# Replace the <web application pool account> with the real application pool account of your web application
$access_rule = New-Object System.Security.AccessControl.FileSystemAccessRule(<Web application pool account>, 'Read', 'None', 'None', 'Allow')
$permissions.AddAccessRule($access_rule)
Set-Acl -Path $path -AclObject $permissions

# Update farm properties
$farm = Get-SPFarm
$farm.Properties['SP-NonceCookieCertificateThumbprint']=$cert.Thumbprint
$farm.Properties['SP-NonceCookieHMACSecretKey']='seed'
$farm.Update()

Paso 3: Configurar SharePoint para confiar en los proveedores de identidades

En este paso, creará un SPTrustedTokenIssuer que almacenará la configuración que SharePoint necesita para confiar en AD FS como proveedor de OIDC. Inicie el Shell de administración de SharePoint como administrador de la granja de servidores y ejecute el siguiente script para crearlo:

Nota:

Lea detenidamente las instrucciones mencionadas en el siguiente script de PowerShell. Tendrá que introducir valores específicos del entorno en varios lugares.

# Define claim types
$email = New-SPClaimTypeMapping "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming

# Public key of the AD FS signing certificate
$signingCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
# Set the AD FS URL where users are redirected to authenticate
$authendpointurl = "https://adfs.contoso.local/adfs/oauth2/authorize"
$registeredissuernameurl = "https://adfs.contoso.local/adfs"
$signouturl = "https://adfs.contoso.local/adfs/oauth2/logout"

# Replace <Client Identifier> with the value you saved in step #3 of AD FS Setup section
$clientIdentifier = "<Your Client Identifier>"

# Create a new SPTrustedIdentityTokenIssuer in SharePoint
New-SPTrustedIdentityTokenIssuer -Name "Contoso.local" -Description "Contoso.local" -ImportTrustCertificate $signingCert -ClaimsMappings $email -IdentifierClaim $email.InputClaimType  -RegisteredIssuerName $registeredissuernameurl  -AuthorizationEndPointUri $authendpointurl -SignOutUrl $signouturl -DefaultClientIdentifier $clientIdentifier

El New-SPTrustedIdentityTokenIssuer cmdlet de PowerShell se extiende para admitir OIDC mediante los parámetros siguientes:

Parámetro Descripción
Name Proporciona un nombre al nuevo emisor de tokens.
Descripción Proporciona una descripción al nuevo emisor de tokens.
ImportTrustCertificate Importa una lista de certificados X509, que se usarán para validar id_token desde el identificador OIDC. Si el IDP de OIDC usa más de un certificado para firmar digitalmente , id_tokenimporte estos certificados y SharePoint lo validará id_token haciendo coincidir la firma digital generada mediante estos certificados.
ClaimsMappings Objeto SPClaimTypeMapping que se usará para identificar qué notificación de id_token se considerará identificador en SharePoint.
IdentifierClaim Especifica el tipo de identificador.
RegisteredIssuerName Especifica el identificador del emisor, que emite .id_token Se usará para validar .id_token
AuthorizationEndPointUrl Especifica el punto de conexión de autorización del proveedor de identidades OIDC.
SignoutUrl Especifica el punto de conexión de cierre de sesión del proveedor de identidades OIDC.
DefaultClientIdentifier Especifica el client_id de servidor de SharePoint, asignado por el proveedor de identidades OID. Esto se validará con la notificación aud en id_token.
ResponseTypesSupported Especifica el tipo de respuesta de IDP, que este emisor de tokens puede aceptar. Puede aceptar dos cadenas: id_token y code id_token. Si no se proporciona este parámetro, se usará code id_token como valor predeterminado.

Importante

El certificado pertinente debe agregarse al almacén de certificados de la entidad de certificación raíz de SharePoint y hay dos opciones posibles para ello:

  • Si el certificado de firma de AD FS lo emite una entidad de certificación (procedimiento recomendado por motivos de seguridad).

    La clave pública del certificado del emisor (y todos los intermedios) debe agregarse al almacén. Inicie el Shell de administración de SharePoint y ejecute el siguiente script para agregar el certificado:

    $rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing issuer.cer")
    New-SPTrustedRootAuthority -Name "adfs.contoso.local signing root authority" -Certificate $rootCert
    
  • Si el certificado de firma de AD FS es un certificado autofirmado (no se recomienda por motivos de seguridad).

    La clave pública del certificado de firma de AD FS debe agregarse al almacén. Inicie el Shell de administración de SharePoint y ejecute el siguiente script para agregar el certificado:

    $rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
    New-SPTrustedRootAuthority -Name "adfs.contoso.local signing certificate" -Certificate $rootCert
    

Paso 4: Configuración de una aplicación web de SharePoint

En este paso, configurará una aplicación web en SharePoint para usar la autenticación OIDC de AD FS mediante el SPTrustedIdentityTokenIssuer que se creó en el paso anterior.

Importante

  • La zona predeterminada de la aplicación web de SharePoint debe tener habilitada la autenticación de Windows. Esto es necesario para el rastreador de búsqueda.
  • La dirección URL de SharePoint que usará la federación OIDC de AD FS debe configurarse con HTTPS.

Puede completar esta configuración mediante:

  • Crear una nueva aplicación web y usar la autenticación OIDC de Windows y AD FS en la zona Predeterminada. Para crear una nueva aplicación web, haga lo siguiente:

    1. Inicie el Shell de administración de SharePoint y ejecute el siguiente script para crear un nuevo SPAuthenticationProvider:

      # This script creates a trusted authentication provider for OIDC    
      $sptrust = Get-SPTrustedIdentityTokenIssuer "contoso.local"
      $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      
    2. Siga Creación de una aplicación web en SharePoint Server para crear una nueva aplicación web que habilite HTTPS/SSL denominado SharePoint - OIDC en contoso.local.

    3. Abra el sitio de Administración central de SharePoint.

    4. Abra la aplicación web que creó, elija "Proveedores de autenticación" en la cinta de opciones, haga clic en el vínculo de la zona "Predeterminado" y elija contoso.local como Proveedor de identidades de confianza.

      Proveedores de autenticación 3

    5. Vaya a Configuración del> sistemaConfigurar asignaciones de acceso alternativasColección de asignaciones> de acceso alternativas.

    6. Filtre la presentación con la nueva aplicación web y confirme que ve la siguiente información:

      Colección de asignaciones de acceso alternativo-1

  • Ampliación de una aplicación web existente para establecer la autenticación OIDC de AD FS en una nueva zona. Para ampliar una aplicación web existente, haga lo siguiente:

    1. Inicie el Shell de administración de SharePoint y ejecute PowerShell para ampliar la aplicación web:

      Ejemplo:

      # Get the trusted provider
      $sptrust = Get-SPTrustedIdentityTokenIssuer "Contoso.local"
      $ap = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      # Get the web app
      $wa = Get-SPWebApplication http://spsites
      # Extend the web app to the "Intranet" zone using trusted provider auth and a SharePoint managed certificate called "SharePoint OIDC Site"
      New-SPWebApplicationExtension -Identity $wa -Name "spsites" -port 443 -HostHeader 'spsites.contoso.local'-AuthenticationProvider $ap -SecureSocketsLayer -UseServerNameIndication -Certificate 'SharePoint OIDC Site' -Zone 'Intranet' -URL 'https://spsites.contoso.local' 
      
    2. Vaya a Configuración del> sistemaConfigurar asignaciones de acceso alternativasColección de asignaciones> de acceso alternativas.

    3. Filtre la pantalla con la aplicación web que se ha ampliado y confirme que ve la siguiente información:

      Colección de asignaciones de acceso alternativa

Paso 5: Asegúrese de que la aplicación web está configurada con un certificado SSL

Puesto que la autenticación de OpenID Connect 1.0 solo puede funcionar con el protocolo HTTPS, se debe establecer un certificado en la aplicación web correspondiente. Si aún no lo ha hecho, siga estos pasos para establecer un certificado:

  • Genere el certificado de sitio:

    Nota:

    Puede omitir este paso si ya ha generado el certificado.

    1. Abra la consola de PowerShell de SharePoint.

    2. Ejecute el siguiente script para generar un certificado autofirmado y agregarlo a la granja de servidores de SharePoint:

      New-SPCertificate -FriendlyName "Contoso SharePoint (2021)" -KeySize 2048 -CommonName spsites.contoso.local -AlternativeNames extranet.contoso.local, onedrive.contoso.local -OrganizationalUnit "Contoso IT Department" -Organization "Contoso" -Locality "Redmond" -State "Washington" -Country "US" -Exportable -HashAlgorithm SHA256 -Path "\\server\fileshare\Contoso SharePoint 2021 Certificate Signing Request.txt"
      Move-SPCertificate -Identity "Contoso SharePoint (2021)" -NewStore EndEntity
      

      Importante

      Los certificados autofirmados solo son adecuados para fines de prueba. En entornos de producción, se recomienda encarecidamente usar certificados emitidos por una entidad de certificación en su lugar.

  • Establezca el certificado:

    Puede usar el siguiente cmdlet de PowerShell para asignar el certificado a la aplicación web:

    Set-SPWebApplication -Identity https://spsites.contoso.local -Zone Default -SecureSocketsLayer -Certificate "Contoso SharePoint (2021)"
    

Paso 6: Creación de la colección de sitios

En este paso, creará una colección de sitios de equipo con dos administradores: uno como administrador de Windows y otro como administrador federado (AD FS).

  1. Abra el sitio de Administración central de SharePoint.

  2. Vaya a Administración de>aplicaciones Crear colecciones de sitios.

  3. Escriba un título, una dirección URL y seleccione la plantilla Sitio de equipo.

  4. En la sección Administrador de colección de sitios principal , seleccione el icono del libro para abrir el cuadro de diálogo Selector de personas.

  5. En el cuadro de diálogo Selector de personas, escriba la cuenta de administrador de Windows, por ejemplo , yvand.

  6. Para filtrar la lista de la izquierda, seleccione Organizaciones. A continuación se muestra una salida de ejemplo:

    Seleccionar personas 3

  7. Vaya a la cuenta y seleccione Aceptar.

  8. En la sección Administrador de colecciones de sitios secundarios , seleccione el icono del libro para abrir el cuadro de diálogo Selector de personas.

  9. En el cuadro de diálogo Selector de personas, escriba el valor de correo electrónico exacto de la cuenta de administrador de AD FS, por ejemplo yvand@contoso.local.

  10. Para filtrar la lista de la izquierda, seleccione Contoso.local. A continuación se muestra una salida de ejemplo:

    Seleccionar personas 4

  11. Vaya a la cuenta y seleccione Aceptar.

  12. Haga clic en Aceptar para crear la colección de sitios.

Una vez creada la colección de sitios, debería poder iniciar sesión con la cuenta de administrador de colecciones de sitios de Windows o federada (AD FS OIDC).

Paso 7: Configurar el selector de personas

En la autenticación OIDC, el selector de personas no valida la entrada, lo que puede provocar errores ortográficos o que los usuarios seleccionen accidentalmente el tipo de notificación incorrecto. Esto se puede solucionar mediante un proveedor de notificaciones personalizado o mediante el nuevo proveedor de notificaciones respaldado por UPA incluido en SharePoint Server Subscription Edition. Para configurar un proveedor de notificaciones respaldado por UPA, consulte Selector de personas mejorado para la autenticación moderna.