Ejemplos de autenticación (Windows SharePoint Services)

En este artículo:

  • Proveedor de pertenencia de SQL

  • Proveedor de pertenencia de Active Directory

  • SSO de web con AD FS

En este artículo se ofrecen ejemplos de configuración de varios proveedores habituales de autenticación de formularios y de autenticación web de inicio de sesión único (SSO).

Proveedor de pertenencia de SQL

En la siguiente tabla se muestran ejemplos de entradas del archivo Web.config para usar la autenticación de formularios de ASP.NET para conectar con un proveedor de pertenencia de SQL.

Pasos de la configuración Descripción y ejemplos de entradas del archivo Web.config

Active la autenticación de formularios de ASP.NET.

Puede establecer el tipo de autenticación de una zona concreta en la autenticación de formularios en la página Editar autenticación del sitio web de administración central de SharePoint.

Así, se cambia automáticamente a formularios el modo especificado en el elemento de autenticación del archivo Web.config para esa zona.

Por ejemplo:

<authentication mode="Forms">

</authentication>

Registre el proveedor de pertenencia.

Si usa software de bases de datos de Microsoft SQL Server en el servidor local como base de datos del proveedor de pertenencia, y especifica AspNetSqlMembershipProvider como nombre de dicho proveedor, podría no ser necesario realizar ningún otro cambio en el archivo Web.config. En ese caso, si el archivo machine.config tiene la configuración correcta para AspNetSqlMembershipProvider, puede usarla para Windows SharePoint Services sin hacer cambios.

Si la configuración predeterminada del archivo machine.config no se puede aplicar (por ejemplo, si desea usar una base de datos de SQL Server en un servidor remoto), debe editar los archivos Web.config de la aplicación web y del sitio web de administración central para especificar la información de conexión en el elemento connectionStrings de la base de datos del proveedor de pertenencia.

Por ejemplo:

<connectionStrings>

<add name="SqlProviderConnection" connectionString="server=SQLSERVERMACHINE;database=aspnetdb;Trusted_Connection=True" />

</connectionStrings>

Sustituya *SQLSERVERMACHINE* con el nombre del servidor en que ha instalado la base de datos de pertenencia de SQL Server.

A continuación, agregue los elementos membership y providers para registrar el proveedor de pertenencia en el archivo Web.config. Como ya hay un proveedor predeterminado registrado en el archivo machine.config, debe incluir el elemento <remove> antes que el elemento <add>.

Por ejemplo:

<membership defaultProvider="AspNetSqlMembershipProvider">

<providers>

<remove name="AspNetSqlMembershipProvider" />

<add connectionStringName="SqlProviderConnection" name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

</providers>

</membership>

El elemento membership se debe incluir dentro del elemento system.web del archivo Web.config de la aplicación web y del sitio de administración central.

Registre al administrador de funciones (opcional).

Puede usar el proveedor de funciones predeterminado de ASP.NET agregando un elemento roleManager al elemento system.web del archivo Web.config. Por ejemplo:

<roleManager enabled="true" />

En la sintaxis anterior se usa AspNetSqlRoleProvider, que está definido en el archivo machine.config. Este administrador de funciones se puede conectar a la base de datos de ASPNETDB en la instancia local o en la instancia remota de SQL Server. Si desea usar una base de datos de SQL Server de un servidor remoto como base de datos de proveedor de funciones, debe editar el archivo Web.config para especificar la información de conexión del servidor de base de datos remoto.

Por ejemplo:

<connectionStrings>

  <add

    name="SqlProviderConnection"

    connectionString="server=SQLSERVERMACHINE; database=aspnetdb; Trusted_Connection=True"

    />

</connectionStrings>

Sustituya *SQLSERVERMACHINE* por el nombre del servidor remoto en que se encuentra la base de datos de SQL. Puede especificar el mismo valor del elemento connectionStringName para el proveedor de pertenencia y el administrador de funciones, de manera que no tiene que agregar otro elemento connectionStrings para el proveedor de funciones. Sin embargo, si desea usar otra base de datos para el proveedor de funciones, debe agregar un elemento connectionStrings aparte para el proveedor de funciones.

A continuación, tiene que agregar los elementos roleManager y providers para registrar el proveedor roleManager en el archivo Web.config. Como ya hay un proveedor predeterminado registrado en el archivo machine.config, tiene que incluir un elemento <remove> antes que el elemento <add>.

Por ejemplo:

<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">

<providers>

<remove name="AspNetSqlRoleProvider" />

<add connectionStringName="SqlProviderConnection" applicationName="/" description="Stores and retrieves roles data from the local Microsoft SQL Server database" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

</providers>

</roleManager>

El elemento roleManager se debe incluir dentro del elemento system.web del archivo Web.config de la aplicación web y del sitio web de administración central.

Registre el módulo HTTP.

No es aplicable

Proveedor de pertenencia de Active Directory

En la siguiente tabla se muestran ejemplos de entradas del archivo Web.config para usar la autenticación de formularios de ASP.NET para conectar con un proveedor de pertenencia del servicio de directorios de Active Directory.

Nota

Este método sólo funcionará en los casos en que sólo haya un dominio.

Pasos de la configuración Descripción y ejemplos de entradas del archivo Web.config

Active la autenticación de formularios de ASP.NET.

Puede establecer el tipo de autenticación de una zona concreta en la autenticación de formularios en la página Editar autenticación de administración central.

Así, se cambia automáticamente a formularios el modo especificado en el elemento de autenticación del archivo Web.config para esa zona.

Por ejemplo:

<authentication mode="Forms">

</authentication>

También puede especificar la dirección URL de la página de inicio de sesión en el elemento de formularios, por ejemplo:

<authentication mode="Forms">

    <forms loginUrl="/_layouts/login.aspx"></forms>

</authentication>

Registre el proveedor de pertenencia.

Si desea usar un servidor de Active Directory como proveedor de pertenencia, debe editar el archivo Web.config para registrar el proveedor de pertenencia. Para ello, debe especificar la información de conexión con el servidor de Active Directory en el elemento connectionStrings.

Por ejemplo:

<connectionStrings>

  <add name="ADConnectionString"

   connectionString=

    "LDAP://DirectoryServer/CN=Users,DC=DirectoryServer " />

</connectionStrings>

Sustituya *DirectoryServer* con el nombre del servidor del directorio de pertenencia.

<membership defaultProvider="MembershipADProvider">

    <providers>

        <add name="MembershipADProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

                connectionStringName="ADConnectionString"/>

    </providers>

</membership>

Nota

En el ejemplo anterior no se especifican las credenciales de la cuenta. Si no especifica las credenciales de la cuenta, se usa la identidad del proceso de la aplicación para tener acceso a Active Directory.

Si se necesita otra cuenta para tener acceso a Active Directory, puede especificar otras credenciales de cuenta en los atributos connectionUsername y connectionPassword, es decir, proporciona el nombre de usuario y la contraseña como texto sin formato. Por ello, es recomendable que cifre esta sección de la configuración. Para obtener más información, vea los siguientes artículos:

Registre al administrador de funciones (opcional).

Registre el módulo HTTP.

No es aplicable

SSO de web con AD FS

El sistema operativo Microsoft Windows Server 2003 R2 introduce Servicios de federación de Active Directory (AD FS), que permite a las organizaciones compartir la información de identidad de un usuario de forma segura. AD FS proporciona tecnologías web de inicio de sesión único (SSO) para autenticar a un usuario en varias aplicaciones web durante una sesión en línea.

En AD FS se incluyen los dos pares siguientes de proveedor de pertenencia y de funciones:

  • SingleSignOnMembershipProvider/SingleSignOnRoleProvider   Son los proveedores estándar de pertenencia y de funciones incluidos en Windows Server 2003 R2.

  • SingleSignOnMembershipProvider2/SingleSignOnRoleProvider2   Son los proveedores de pertenencia y de funciones que se usan en entornos que no son de confianza total. Están incluidos en el Service Pack 2 de Windows Server 2003 R2.

SingleSignOnMembershipProvider/SingleSignOnRoleProvider

En la siguiente tabla se muestran ejemplos de entradas del archivo Web.config para un entorno web SSO AD FS que usa el proveedor estándar.

Pasos de la configuración Descripción y ejemplos de entradas del archivo Web.config

Active la autenticación de formularios de ASP.NET.

<system.web>

 <!-mode=[Windows|Forms|Passport|None]>

 <authentication mode="Forms" />

</system.web>

Registre el proveedor de pertenencia.

<membership defaultProvider="SingleSignOnMembershipProvider">

  <providers>

    <add

      name="SingleSignOnMembershipProvider"

      type="System.Web.Security.SingleSignOn.SingleSignOnMembershipProvider, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

      fs="https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx"

      />

  </providers>

</membership>

En el atributo fs, sustituya *FEDERATIONSERVER* por el nombre del servidor correspondiente.

El elemento membership tiene que estar incluido dentro del elemento system.web del archivo Web.config.

Registre al administrador de funciones (opcional).

<roleManager enabled="true" defaultProvider="SingleSignOnRoleProvider">

  <providers>

    <add

      name="SingleSignOnRoleProvider"

      type="System.Web.Security.SingleSignOn.SingleSignOnRoleProvider, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

      fs="https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx"

      />

  </providers>

</roleManager>

En el atributo fs, tendrá que sustituir *FEDERATIONSERVER* por el nombre del servidor correspondiente.

Registre el módulo HTTP.

 <httpModules>

  <add name="Identity Federation Services Application Authentication Module" type="System.Web.Security.SingleSignOn.WebSsoAuthenticationModule, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" />

</httpModules>

SingleSignOnMembershipProvider2/SingleSignOnRoleProvider2

Si va a implementar el segundo conjunto de proveedores de AD FS, los valores para registrar el proveedor de pertenencia y la administración de funciones son distintas. En la siguiente tabla se muestran ejemplos de entradas del archivo Web.config para un entorno web SSO AD FS que usa el proveedor para entornos que no son de confianza total.

Pasos de la configuración Descripción y ejemplos de entradas del archivo Web.config

Active la autenticación de formularios de ASP.NET.

<system.web>

 <!-mode=[Windows|Forms|Passport|None]>

 <authentication mode="Forms" />

</system.web>

Registre el proveedor de pertenencia.

<membership defaultProvider="SingleSignOnMembershipProvider2">

  <providers>

    <add

       name="SingleSignOnMembershipProvider2"

       type="System.Web.Security.SingleSignOn.SingleSignOnMembershipProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

      fs=https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx

/>

</providers>

</membership>

En el atributo fs, sustituya *FEDERATIONSERVER* por el nombre del servidor correspondiente.

El elemento membership tiene que estar incluido dentro del elemento system.web del archivo Web.config.

Registre al administrador de funciones (opcional).

<roleManager enabled="true" defaultProvider="SingleSignOnRoleProvider2">

  <providers>

    <add

      name="SingleSignOnRoleProvider2"

      type="System.Web.Security.SingleSignOn.SingleSignOnRoleProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

      fs="https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx"

      />

  </providers>

</roleManager>

En el atributo fs, tendrá que sustituir FEDERATIONSERVER por el nombre del servidor correspondiente.

Registre el módulo HTTP.

 <httpModules>

  <add name="Identity Federation Services Application Authentication Module" type="System.Web.Security.SingleSignOn.WebSsoAuthenticationModule, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" />

</httpModules>

Descarga de este libro

Este tema se incluye en el siguiente libro descargable para facilitar la lectura y la impresión:

Vea la lista completa de libros disponibles en la página de libros descargables para Windows SharePoint Services.