El siguiente post pretende solucionar una caso de uso típico cuando se construyen sitios públicos en SharePoint.

Si tenemos un sitio público, obviamente tendremos que habilitar el acceso al usuario anónimo. Si lo hacemos, seguramente querremos ocultar la Ribbon de alguna forma, para que el usuario anónimo no vea ningún enlace de “Sign in”.

Pero entonces, ¿Cómo hacemos para que los usuario editores del portal, puedan acceder a la configuración del sitio, crear páginas, etc?

Pues bien, probablemente lo más rápido y sencillo sea decirle al usuario que acceda a una URL específica, protegida, que solicite autenticación al usuario, por ejm:

http://www.contoso.com/_layouts/settings.aspx

Pero la verdad es que no queda muy elegante… y SharePoint tiene mucha clase!! Sonrisa

Otra solución algo más elegante, es hacer uso de las Zonas de SharePoint y sus Authentication Providers.

La idea es que la zona Default, esté configurada para que permita el acceso anónimo. Esta zona responderá al host hearder http://www.contoso.com. A esta url accederá el usuario anónimo.

A continuación, extendemos la aplicación web, creamos la zona “Intranet” y hacemos que responda al host header: http://authoring.contoso.com

Los usuarios administradores y editores, accederán por la parte de Authoring, donde el sistema les solicitará credenciales, y, si hemos ocultado la Ribbon usando la técnica que nos cuenta el gran Santi en este post, tendremos la Ribbon para el usuario logado.

Hacer esto es muy sencillo desde la interfaz de la administración central. Yo aquí os dejo un script Power-Shell para conseguir esta configuración. Como este script lo reutilizo en otros escenarios, este script NO crea la aplicación web con el usuario anónimo habilitado. En este link tenéis muy bien explicado cómo hacerlo desde la interfaz. Si queréis también podéis modificar el script para que el comando New-SPWebApplication especifique el parámetro AllowAnonymousAccess

Os dejo el script:

Primero definimos las variables según nuestro entorno


































A continuación un par de funciones para crear la aplicación web y la colección de sitios. OJO, el script detecta si ya existe la app web, y pregunta si se quiere re-crear.
























































Finalmente, llamamos a las funciones y otros comandos Power-Shell:
























Espero que os sirva.

Saludos!!