Compartir a través de


Configuración de la autenticación OIDC en SharePoint Server con Microsoft Entra ID

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 OpenID Connect (OIDC) con Microsoft Entra ID, necesita los siguientes recursos:

  1. Una granja de SharePoint Server Edición de Suscripción (SPSE)

  2. Microsoft Entra rol de administrador global del inquilino de M365

En este artículo se usan los siguientes valores de ejemplo para Microsoft Entra configuración de OIDC:

Valor Vínculo
Localizador uniforme de recursos (URL) del sitio de SharePoint https://spsites.contoso.local/
Dirección URL del sitio de OIDC https://sts.windows.net/<tenantid>/
Microsoft Entra punto de conexión de autenticación de OIDC https://login.microsoftonline.com/<tenantid>/oauth2/authorize
Microsoft Entra dirección URL de OIDC RegisteredIssuerName https://sts.windows.net/<tenantid>/
Microsoft Entra OIDC SignoutURL https://login.microsoftonline.com/<tenantid>/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
Email valor del administrador federado de la colección de sitios yvand@contoso.local

Paso 1: Configuración del proveedor de identidades

Siga estos pasos para configurar OIDC con Microsoft Entra ID:

  1. Vaya al portal de administración de Entra ID e inicie sesión con una cuenta con el rol Administrador global.

  2. En Aplicaciones, seleccione Registros de aplicaciones.

  3. Seleccione Nuevo registro.

  4. Vaya a la página https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsRegistrar una aplicación .

  5. En la sección URI de redirección , elija "Web" como plataforma y escriba la dirección URL de la aplicación web de SharePoint Server, por ejemplo: https://spsites.contoso.local/ y seleccione Registrar.

    Registro de una aplicación

  6. Guarde el valor de Id. de directorio (inquilino), ya que el identificador de inquilino se usa en pasos posteriores. Guarde también el identificador de aplicación (cliente), que usamos como DefaultClientIdentifier en la configuración de SharePoint.

    Guardar aplicación

  7. Después de registrar la aplicación, vaya a la pestaña Autenticación , active la casilla Tokens de identificador y seleccione Guardar.

    Habilitar tokens de identificador

  8. Vaya a la pestaña Permisos de API y seleccione Agregar un permiso. Elija Microsoft Graph y, a continuación, permisos delegados. Seleccione agregar permisos de correo electrónico y perfil y seleccione Agregar permisos.

    Permisos de API

  9. Vaya a la pestaña Configuración del token y seleccione Agregar notificación opcional. Para cada tipo de token (ID, Access, SAML), agregue notificaciones de correo electrónico y upn .

  10. También en la pestaña Configuración del token , seleccione Agregar notificación de grupos. Los grupos de seguridad son los más comunes, pero los tipos de grupo que seleccione dependen de los tipos de grupos que quiera usar para dar acceso a la aplicación web de SharePoint. Para obtener más información, consulte Configuración de notificaciones opcionales de grupos y Configuración de notificaciones de grupo para aplicaciones mediante Microsoft Entra ID.

    Configuración del token

  11. Vaya a la pestaña Manifiesto y cambie manualmente replyUrlsWithType de https://spsites.contoso.local/ a https://spsites.contoso.local/*. Después, seleccione Guardar.

    Manifiesto

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 la granja de servidores de SharePoint Server.

Configurar SharePoint Server Edición de Suscripción versión 24H1 o versiones posteriores

A partir de SharePoint Server Edición de Suscripción versión 24H1 (marzo de 2024), puede configurar las propiedades de la granja de servidores de SharePoint Server mediante el empleo de 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:

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.

# 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

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

Configurar SharePoint Server Edición de Suscripción antes de la versión 24H1

Antes de la actualización 24H1 (marzo de 2024), el certificado de cookie de nonce debe administrarse manualmente. Esto incluye la instalación manual en cada servidor de la granja de servidores y la configuración de permisos en la clave privada. Para ello, se puede usar el siguiente script de PowerShell.

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.

# 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

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

Importante

El certificado de cookie de nonce, con clave privada, debe instalarse en todos los servidores de SharePoint de la granja de servidores. Además, se debe conceder permiso a la clave privada a la cuenta de servicio del grupo de aplicaciones web en cada servidor. Si no se completa este paso, se producirán errores de autenticación de OIDC. Se recomienda usar el ejemplo de PowerShell anterior para establecer el permiso en el archivo de clave privada para asegurarse de que se realiza correctamente.

Paso 3: Configuración de SharePoint para confiar en el proveedor de identidades

En este paso, creará un SPTrustedTokenIssuer que almacena la configuración que SharePoint necesita para confiar en Microsoft Entra OIDC como proveedor de OIDC.

Puede configurar SharePoint para que confíe en el proveedor de identidades de cualquiera de las siguientes maneras:

  • Configure SharePoint para que confíe en Microsoft Entra ID como proveedor de OIDC mediante el punto de conexión de metadatos.
    • Mediante el punto de conexión de metadatos, varios parámetros que necesita se recuperan automáticamente del punto de conexión de metadatos.
  • Configure SharePoint para que confíe en Microsoft Entra ID como proveedor OIDC manualmente.

Nota:

Siga los pasos de configuración manual o los pasos del punto de conexión de metadatos, pero no ambos.
Se recomienda usar el punto de conexión de metadatos porque simplifica el proceso.

Configuración de SharePoint para confiar en Microsoft Entra OIDC mediante el punto de conexión de metadatos

SharePoint Server Edición de Suscripción ahora admite el uso de la funcionalidad de detección de metadatos OIDC al crear el emisor de tokens de identidad de confianza.

En Microsoft Entra ID, hay dos versiones de puntos de conexión de detección de OIDC:

  • V1.0: https://login.microsoftonline.com/<TenantID>/.well-known/openid-configuration
  • V2.0: https://login.microsoftonline.com/<TenantID>/v2.0/.well-known/openid-configuration

Importante

Actualmente, SharePoint Server solo admite el punto de conexión de metadatos v1.0 cuando se usa para crear el emisor de tokens de identidad de confianza. El script de PowerShell de ejemplo siguiente usa el punto de conexión V1.0.

Cuando se usa el punto de conexión de metadatos proporcionado por el proveedor de identidades de OIDC, parte de la configuración se recupera directamente del punto de conexión de metadatos del proveedor OIDC, entre los que se incluyen:

  1. Certificado
  2. Emisor
  3. Punto de conexión de autorización
  4. SignoutURL

Esto puede simplificar la configuración del emisor de tokens OIDC.

Con el siguiente ejemplo de PowerShell, podemos usar el punto de conexión de metadatos de Microsoft Entra ID para configurar SharePoint para que confíe en Microsoft Entra OIDC.

Nota:

Lea detenidamente las instrucciones mencionadas en el siguiente script de PowerShell. Tendrá que escribir sus propios valores específicos del entorno en determinados lugares. Por ejemplo, reemplace <tenantid> por su propio identificador de directorio (inquilino).

# Define claim types
# In this example, we're using Email Address as the Identity claim.
$emailClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "Email" -SameAsIncoming

# Set the AAD metadata endpoint URL. Please replace <TenantID> with the value saved in step #3 in the Entra ID setup section  
$metadataendpointurl = "https://login.microsoftonline.com/<TenantID>/.well-known/openid-configuration"

# Please replace <Application (Client) ID> with the value saved in step #3 in the Entra ID setup section
$clientIdentifier = "<Application (Client)ID>"

# Create a new SPTrustedIdentityTokenIssuer in SharePoint
New-SPTrustedIdentityTokenIssuer -Name "contoso.local" -Description "contoso.local" -ClaimsMappings $emailClaimMap -IdentifierClaim $emailClaimMap.InputClaimType -DefaultClientIdentifier $clientIdentifier -MetadataEndPoint $metadataendpointurl -Scope "openid profile"
Parámetro Descripción
Name Proporciona un nombre al nuevo emisor de tokens.
Description Proporciona una descripción al nuevo emisor de tokens.
ImportTrustCertificate Certificado que se usa para validar id_token desde el identificador OIDC.
ClaimsMappings Objeto SPClaimTypeMapping que se usa para identificar qué notificación de id_token se considera identificador en SharePoint.
IdentifierClaim Especifica el tipo de identificador.
DefaultClientIdentifier Especifica el client_id de servidor de SharePoint, asignado por el proveedor de identidades OIDC. Esto se valida con la notificación aud en id_token.
MetadataEndPoint Especifica el punto de conexión de metadatos conocido del proveedor de identidades OIDC, que se puede usar para recuperar el certificado, emisor, punto de conexión de autorización y punto de conexión de cierre de sesión más recientes.

Configuración de SharePoint para confiar en Microsoft Entra ID como proveedor de OIDC manualmente

Al configurar manualmente, se deben especificar varios parámetros adicionales. Puede recuperar los valores del punto de conexión de detección de OIDC.

En Microsoft Entra ID, hay dos versiones de puntos de conexión de autenticación OIDC. Por lo tanto, hay dos versiones de puntos de conexión de detección de OIDC respectivamente:

  • V1.0: https://login.microsoftonline.com/<TenantID>/.well-known/openid-configuration
  • V2.0: https://login.microsoftonline.com/<TenantID>/v2.0/.well-known/openid-configuration

Reemplace TenantID por el identificador de directorio (inquilino) guardado en Paso 1: Configurar proveedor de identidades y conectarse al punto de conexión a través del explorador. A continuación, guarde la siguiente información:

Valor Vínculo
authorization_endpoint https://login.microsoftonline.com/<tenantid>/oauth2/authorize
end_session_endpoint https://login.microsoftonline.com/<tenantid>/oauth2/logout
Emisor https://sts.windows.net/<tenantid>/
jwks_uri https://login.microsoftonline.com/common/discovery/keys

Abra jwks_uri (https://login.microsoftonline.com/common/discovery/keys) y guarde todas las cadenas de certificado x5c para su uso posterior en el programa de instalación de SharePoint.

Claves de detección

Inicie el Shell de administración de SharePoint como administrador de la granja de servidores y, después de escribir los valores que obtuvo anteriormente, ejecute el siguiente script para crear el emisor de tokens de identidad de confianza:

Nota:

Lea detenidamente las instrucciones mencionadas en el siguiente script de PowerShell. Tendrá que escribir sus propios valores específicos del entorno en determinados lugares. Por ejemplo, reemplace <tenantid> por su propio identificador de directorio (inquilino).

# Define claim types
# In this example, we're using Email Address as the identity claim.
$emailClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "Email" -SameAsIncoming

# Public key of the AAD OIDC signing certificate. Please replace <x5c cert string> with the encoded cert string which you get from x5c certificate string of the keys of jwks_uri from Step #1
$encodedCertStrs = @()
$encodedCertStrs += <x5c cert string 1>
$encodedCertStrs += <x5c cert string 2>
...
$certificates = @()
foreach ($encodedCertStr in $encodedCertStrs) {
     $certificates += New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 @(,[System.Convert]::FromBase64String($encodedCertStr))
}

# Set the AAD OIDC URL where users are redirected to authenticate. Please replace <tenantid> accordingly
$authendpointurl = "https://login.microsoftonline.com/<tenantid>/oauth2/authorize"
$registeredissuernameurl = "https://sts.windows.net/<tenantid>/"
$signouturl = "https://login.microsoftonline.com/<tenantid>/oauth2/logout"

# Please replace <Application (Client) ID> with the value saved in step #3 in AAD setup section
$clientIdentifier = "<Application (Client)ID>"

# Create a new SPTrustedIdentityTokenIssuer in SharePoint
New-SPTrustedIdentityTokenIssuer -Name "contoso.local" -Description "contoso.local" -ImportTrustCertificate $certificates -ClaimsMappings emailClaimMap -IdentifierClaim $emailClaimMap.InputClaimType -RegisteredIssuerName $registeredissuernameurl -AuthorizationEndPointUri $authendpointurl -SignOutUrl $signouturl -DefaultClientIdentifier $clientIdentifier -Scope "openid profile"

Aquí, New-SPTrustedIdentityTokenIssuer el 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 usa para validar id_token desde el identificador OIDC. Si el proveedor de identidades de OIDC (IDP) usa más de un certificado para firmar digitalmente, id_tokenimporte estos certificados y SharePoint valide id_token haciendo coincidir la firma digital generada mediante estos certificados.
ClaimsMappings Objeto SPClaimTypeMapping que se usa para identificar qué notificación de id_token se considera identificador en SharePoint.
IdentifierClaim Especifica el tipo de identificador.
RegisteredIssuerName Especifica el identificador del emisor, que emite .id_token Se usa 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 OIDC. Esto se valida con la notificación aud en id_token.
ResponseTypesSupported Especifica el tipo de respuesta de IDP, que acepta este emisor de tokens. Puede aceptar dos cadenas: id_token y code id_token. Si no se proporciona este parámetro, se usa code id_token como valor predeterminado.

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

En este paso, configurará una aplicación web en SharePoint para que se federe con el Microsoft Entra OIDC, mediante el SPTrustedIdentityTokenIssuer creado en el paso anterior.

Importante

  • La zona predeterminada de la aplicación web de SharePoint debe tener autenticación de Windows habilitada. Esto es necesario para el rastreador de Búsqueda.
  • La dirección URL de SharePoint que usará Microsoft Entra federación OIDC debe configurarse con el protocolo de transferencia de hipertexto seguro (HTTPS).

Puede completar esta configuración mediante:

  • Crear una nueva aplicación web y usar la autenticación de Windows y Microsoft Entra OIDC en la zona predeterminada.
  • Ampliación de una aplicación web existente para establecer Microsoft Entra autenticación OIDC en una nueva zona.

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 Create una aplicación web en SharePoint Server para crear una nueva aplicación web que habilite HTTPS/Capa de sockets seguros (SSL) denominada SharePoint - OIDC en contoso.local.

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

  4. Seleccione 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 Predeterminada y elija contoso.local como Proveedor de identidades de confianza.

    Proveedores de autenticación

  5. En el sitio de Administración central de SharePoint, 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:

    Nueva aplicación web

Para ampliar una aplicación web existente y configurarla para que use el proveedor de confianza "contoso.local", haga lo siguiente:

  1. Inicie el Shell de administración de SharePoint y ejecute PowerShell para ampliar la aplicación web. En el ejemplo siguiente se extiende la aplicación web a la zona intranet y se configura la zona para que use el proveedor de confianza "Contoso.local" para la autenticación.

Nota:

Para que esto funcione, debe tener un certificado válido denominado "Sitio OIDC de SharePoint" importado a la granja de servidores. Consulte Operaciones de administración de certificados SSL para obtener más información.

# 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 (OIDC) 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' 
  1. En el sitio de Administración central de SharePoint, vaya a Configuración del> sistemaConfigurar asignaciones de acceso alternativasColección de asignaciones> de acceso alternativas.

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

    Sitio de administración de SharePoint

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

Dado que la autenticación OIDC 1.0 solo puede funcionar con el protocolo HTTPS, se debe establecer un certificado en la aplicación web correspondiente. Si aún no está configurado, siga estos pasos para establecer el certificado:

  1. 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.

  2. 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: Create 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 (Microsoft Entra ID).

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

  2. Vaya a Administración de> aplicaciones Create colecciones> de sitios Create 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 la colección de sitios primarios, seleccione el icono de libro Personas icono selector (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

  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 Microsoft Entra, por ejemployvand@contoso.local.

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

    Seleccionar personas 2

  11. Vaya a la cuenta y seleccione Aceptar para cerrar el cuadro de diálogo selector de Personas.

  12. Seleccione Aceptar de nuevo 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 la colección de sitios federada o Windows.

Paso 7: Configurar Personas selector

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 Edición de Suscripción. Para configurar un proveedor de notificaciones respaldado por UPA, consulte Selector de Personas mejorado para la autenticación moderna.