Autenticación de SAML federada con SharePoint 2010 y Azure Access Control Service, parte 2

Artículo original publicado el sábado 7 de mayo de 2011

En la primera entrada de blog de esta serie (https://blogs.technet.com/b/speschka/archive/2011/05/05/federated-saml-authentication-with-sharepoint-2010-and-azure-access-control-service-part-1.aspx), describí cómo configurar SharePoint para establecer una relación de confianza directamente con el servicio de control de acceso (ACS) de Azure y usarla para federar automáticamente la autenticación entre AD FS, Yahoo, Google y Windows Live para poder entrar en SharePoint. En la segunda parte de esta serie, usaré un escenario similar, pero que en realidad se implementa casi al revés del escenario de la primera parte: estableceremos una relación de confianza típica entre SharePoint y AD FS, pero configuraremos ACS como un proveedor de identidades en AD FS y, a continuación, lo usaremos para redirigirnos al inicio de sesión y para, posteriormente, regresar a SharePoint. Este tipo de relación de confianza, al menos entre SharePoint y AD FS, es uno con el que creo que los usuarios de SharePoint están familiarizados y que se aplica muy bien a un escenario más común que usan muchas compañías.

Como ya hice en la parte 1, no voy a describir los aspectos básicos de la instalación y configuración de ACS (dejaré esto para los equipos responsables de estas tareas). Por lo tanto, para la parte 2, estos son los pasos necesarios para conectarse:

1.        Instalar la aplicación web y la colección de sitios de SharePoint, configuradas con AD FS

  1.  
    1. Primero y principal, debe crear el SPTrustedIdentityTokenIssuer, un usuario de confianza en AD FS y una aplicación web y una colección de sitios de SharePoint. Asegúrese de poder iniciar sesión en el sitio con las credenciales de AD FS. Los pasos para realizar esta tarea se describen con sumo detalle en una de mis entradas de blog anteriores en https://blogs.technet.com/b/speschka/archive/2010/07/30/configuring-sharepoint-2010-and-adfs-v2-end-to-end.aspx.

2.        Abrir la página Access Control Management (Administración de control de acceso)

  1.  
    1. Inicie sesión en el Portal de administración de Windows Azure. Haga clic en el menú Service Bus, Access Control and Caching (Bus de servicio, control de acceso y almacenamiento en caché) del panel izquierdo. Haga clic en Access Control (Control de acceso) en la parte superior del panel izquierdo (debajo de AppFabric), haga clic en el espacio de nombres del panel derecho y haga clic en el botón Access Control Service (Servicio de control de acceso) en la sección de administración de la cinta de opciones. Aparecerá la página Access Control Management.

3.        Crear una relación de confianza entre AD FS y ACS

  1.  
    1. En este paso configuraremos ACS como un proveedor de identidades en AD FS. Para empezar, vaya al servidor de AD FS y abra la consola de administración de AD FS 2.0.
    2. Vaya a AD FS 2.0, a Trust Relationships (Relaciones de confianza), al nodo Claims Provider Trusts (Relaciones de confianza del proveedor de notificaciones) y haga clic en el vínculo Add Claims Provider Trust (Agregar relación de confianza del proveedor de notificaciones) en el panel derecho.
    3. Haga clic en el botón Start (Inicio) para iniciar el asistente.
    4. Use la opción predeterminada para importar los datos del usuario de confianza publicado en línea. La dirección URL que debe usar se encuentra en el portal de administración de ACS. Regrese al explorador que tiene el portal abierto y haga clic en el vínculo Application Integration (Integración de aplicaciones) en el menú Trust relationships (Relaciones de confianza) del panel izquierdo.
    5. Copie la dirección URL que se muestra para los metadatos de WS-Federation y péguela en la dirección de metadatos de federación (nombre de host o dirección URL), edite el cuadro en el asistente de AD FS y, a continuación, haga clic en el botón Next (Siguiente).
    6. Escriba un nombre para mostrar y, opcionalmente, algunas notas y, a continuación, haga clic en el botón Next (Siguiente).
    7. Deje la opción predeterminada para permitir que todos los usuarios tengan acceso al proveedor de identidades y haga clic en el botón Next (Siguiente).
    8. Haga clic en el botón Next (Siguiente) para que se cree el proveedor de identidades y deje la casilla de verificación activada para abrir el cuadro de diálogo del editor de reglas. El resto de esta sección va a ser muy similar a lo que describí en esta entrada de blog https://blogs.technet.com/b/speschka/archive/2010/11/24/configuring-adfs-trusts-for-multiple-identity-providers-with-sharepoint-2010.aspx acerca de cómo configurar una relación de confianza entre dos servidores de AD FS:

Debe crear reglas para pasar en todas las notificaciones que recibe del servidor de AD FS de IP. Por lo tanto, en el cuadro de diálogo de reglas, para cada notificación que desee enviar a SharePoint, haga lo siguiente:

  1. Haga clic en Add Rule (Agregar regla).
  2. Seleccione Pass Through (Paso a través) o Filter an Incoming Claim (Filtrar una notificación entrante) en la lista desplegable Claim Rule Template (Plantilla de regla de notificación) y haga clic en el botón Next (Siguiente).
  3. Asígnele un nombre de notificación (podría resultar útil incluir el nombre de la notificación que se pasará). En la lista desplegable Incoming Claim Type (Tipo de notificación entrante), seleccione el tipo de notificación que desea pasar, por ejemplo, dirección de correo electrónico. Normalmente dejo seleccionada la opción predeterminada para pasar todos los valores de notificación, pero si sus reglas de negocio son diferentes, seleccione las opciones apropiadas y haga clic en el botón Finish (Finalizar). Tenga en cuenta que si decide pasar todos los valores de notificación, AD FS le mostrará un cuadro de diálogo de advertencia.

Una vez agregadas las notificaciones de paso a través para cada notificación que necesite en SharePoint, puede cerrar el cuadro de diálogo de reglas. Ahora, para finalizar la configuración de AD FS, debe buscar el usuario de confianza de SharePoint. Haga clic en el cuadro de diálogo Edit Claim Rules (Editar reglas de notificación), y para cada regla de notificación de paso a través creada en el paso anterior, también deberá agregar una regla de notificación de paso a través para el usuario de confianza de SharePoint. Esto permitirá que las notificaciones fluyan de ACS a AD FS a través del proveedor de notificaciones de confianza y a SharePoint a través del usuario de confianza.

Ya se ha completado la configuración de AD FS.

4.        Agregar AD FS como usuario de confianza en ACS

  1.  
    1. Regrese al explorador que tiene el portal abierto y haga clic en el vínculo Relying party applications (Aplicaciones de usuario de confianza) en el menú Trust relationships (Relaciones de confianza) del panel izquierdo.
    2. Haga clic en el vínculo Add (Agregar).
    3. Rellene la sección Relying Party Application Settings (Configuración de la aplicación de usuario de confianza).
      1. Escriba un nombre para mostrar, como “De AD FS a ACS”.
      2. Use el modo predeterminado para escribir la configuración manualmente.
      3. En el cuadro de edición Realm (Dominio kerberos), debe escribir el dominio kerberos que AD FS enviará con la solicitud. AD FS tiene una lista específica de dominios kerberos que envía al redirigir a otro proveedor de identidades, por lo que NO debe usar el dominio kerberos que se utilizó al crear el SPTrustedIdentityTokenIssuer en SharePoint. En su lugar, se recomienda usar https://nombreCompletoDelServidorDeADFS/adfs/services/trust.
      4. Para la dirección URL de retorno, use https://nombreCompletoDelServidorDeADFS/adfs/ls/.
      5. La versión del formato del token puede ser SAML 2.0 o 1.1. Puesto que el token se envía a AD FS y no a SharePoint (y AD FS admite tokens de SAML 2.0), no necesita disminuir de versión a SAML 1.1 como lo haría si se conectara directamente a SharePoint.
      6. Puede establecer la vigencia del token (en segundos) en el valor que desee. De forma predeterminada, es de 10 minutos. El mío lo establecí en 3600; es decir, una hora.
    4. Rellene la sección Authentication Settings (Configuración de autenticación).
      1. Puede seleccionar todos los proveedores de identidades, a no ser que haya agregado el mismo servidor de AD FS anteriormente como un proveedor de identidades (como lo ha hecho si siguió los pasos de la primera entrada de blog de esta serie). Si lo hizo, puede seleccionarlos todos, excepto el proveedor de identidades que apunta al mismo servidor de AD FS que ahora configurará como usuario de confianza.
      2. En Rule groups (Grupos de reglas), para ahorrar tiempo, le sugeriré que siga las instrucciones para los grupos de reglas que expliqué en la parte 1 o, si completó la parte 1, simplemente seleccione ese grupo de reglas en la lista.
    5. En Token Signing Settings (Configuración de firma de tokens), puede dejar seleccionada la opción predeterminada, que es Use service namespace certificate (Usar el certificado del espacio de nombres del servicio) (estándar).

Haga clic en el botón Save (Guardar) para guardar los cambios y crear el usuario de confianza.

Ahora debería poder iniciar sesión en el sitio de SharePoint mediante AD FS o ACS. No obstante, debe recordar que AD FS escribirá una cookie para recordar el proveedor de identidades que se usó por última vez. Desde ese momento en adelante, no le pedirá que indique su proveedor de identidades a menos que use algo como una ventana de exploración de InPrivate en IE (resalto esto en negrita, ya que es muy común que los usuarios lo olviden y suele ser motivo de confusión). Por ejemplo, esto es lo que verá la primera vez que se redirija al servidor de AD FS o si usa una sesión del explorador de InPrivate:

Todo lo demás funciona tal como lo describí en la parte 1 de esta serie (incluida la advertencia acerca del uso de una dirección de correo electrónico de Windows Live ID), por lo que no volveré a publicar las capturas de pantalla porque son casi idénticas. Ahora que ha completado esta serie, debería poder integrar eficazmente AD FS, ACS y todos los proveedores de identidades que admite ACS en el entorno de SharePoint 2010.

Esta entrada de blog es una traducción. Puede consultar el artículo original en Federated SAML Authentication with SharePoint 2010 and Azure Access Control Service Part 2