Me explicó cómo crear un servicio en la nube Azure función de aplicación web en mi post anterior. Ahora voy a discutir los pasos necesarios y el código para añadir el proveedor de servicios de Shibboleth para que el sitio web puede utilizar SAML para una sola autenticación de registro.
Adición de un certificado SSL a la función Web Azure
SSL es la primera capa de defensa para una aplicación Web SSO. Por lo tanto, debe obtener un certificado SSL para la URL de su sitio web. Esto es todo un tema en sí mismo, por lo que se saltará los detalles de cómo obtener un certificado SSL. El truco más grande parece ser la configuración de Studio Azure y visual para no confundirse entre el certificado de escritorio remoto y el certificado SSL. Las instrucciones para configurar SSL Azure son. Voy a resumir los puntos más importantes a continuación.
Si va a crear un sitio web de prueba, a continuación, un certificado autofirmado será suficiente. Asegúrese de sujeto del certificado CN se establece en el nombre DNS completo de su sitio web. En este ejemplo que el nombre DNS se myshibbolethsp.cloudapp.net. Tendrá que tener el certificado en un archivo PFX por lo que se puede cargar en Azure. Este archivo PFX debe contener la clave privada del certificado! También necesitará la huella digital del certificado. Modificar archivos de definición de servicio y configuración de servicios de la nube de servicios, como se muestra en el artículo de Azure. En realidad, hay dos archivos de configuración de servicios, una nube de una versión local y. Ambos deben ser actualizados para contener el certificado SSL. Tenga en cuenta que los archivos de configuración de servicio ya tendrán un listado para el certificado destkop remoto. La entrada certificado SSL, debe añadirse a esta sección <Certificados>. Es probable que no desea una conexión no SSL, por lo que quita el enlace HTTP y el punto final y sustituirlo por el enlace HTTPS y el punto final en el servicioarchivo de definición. Cargar el certificado SSL para su aplicación de servicio en la nube. Ir al Portal de la Azure los desarrolladores y haga clic en su solicitud de servicio en la nube. Haga clic en el elemento CERTIFICADOS en la parte superior derecha de la ventana. Haga clic en el botón Subir situado en la parte inferior de la pantalla. Esto abre el cuadro de diálogo "Cargar certificado". Buscar archivo PFX de su certificado e introduzca la contraseña de la clave privada y haga clic en el botón de verificación Aceptar. Ahora la aplicación de servicio de nube SSL-modificado necesita ser cargado en Azure. Tengo un error cuando trataba de subir la aplicación usando el comando Publicar VS: Certificado: 'myshibbolethsp.cloudapp.net' con huella digital: <...> para Papel: WebRole1 no se ha cargado en el servicio en la nube. Yo había subido previamente el certificado, pero eso no parece ayudar. En lugar de usar VS para publicar la aplicación, se puede cargar el paquete de "despliegue" usando el Portal de desarrollador. Esta es la opción descrita en el artículo anterior Azure. Tal vez hay una razón por la que explican hacerlo de esta manera.Lo primero que necesita para construir el paquete de implementación. En VS, haga clic en el proyecto de servicios de nube y elegir la opción "Paquete ...". Esto nos lleva a un pequeño cuadro de diálogo en la configuración del servicio se debe establecer en "la nube" y la casilla de verificación "Habilitar Escritorio remoto" debe ser revisado. Haga clic en paquete. Ir al Portal de Desarrolladores y haga clic en su solicitud de servicio en la nube. Ir al panel de control y luego haga clic en el botón Actualizar en la parte inferior de la pantalla. Esto abre el diálogo "Modificar una implementación", que es muy similar a la "Crear personalizado" que se muestra en el artículo de Azure SSL. Haga clic en el botón DE LOCAL para buscar el archivo de paquete que acaba de construir. Debe estar bajo la carpeta de proyecto de servicio en la nube VS en la carpeta bin \ Release \ app.publish. Haga lo mismo para localizar el archivo de configuración en la misma carpeta. Asegúrese de que la "Actualización de la implementación, incluso si uno o más roles contienen una única instancia" se comprueba la caja. Haga clic en el botón de verificación Aceptar. Puede comprobar el progreso de la actualización de la implementaciónPortal de desarrolladores. Vaya a su sitio web a través de HTTPS. ¡Dedos cruzados! Se debe trabajar, pero HTTP debe ser rechazada.
La adición de la Shibboleth SP a la función Web Azure
Este post se supone que tiene un IdP SAML que autenticar su Shibboleth prueba de SP. Si necesita configurar un IdP prueba, Microsoft ha producido una sobre la manera de hacer esto. Por supuesto que existe la documentación Shibboleth IdP al. También debe haber descargado el archivo MSI de Windows 7 / IIS de 64 bits Shibboleth SP. Obtener la última versión de la.
Shibboleth instalar el SP para el equipo de desarrollo o un servidor web local. Tendrá que varios de los archivos de configuración y que sería mejor para entender cómo funciona en una instalación local. La Universidad de Washington tiene algunos en hacer esta instalación. Tienes que subir el Shibboleth SP MSI y los archivos relacionados en Azure. Para ello, agregue los archivos al proyecto VS. En VS crear una carpeta en el marco del proyecto de papel web. Llame a esa carpeta Shibboleth-SP. Agregue el archivo MSI Shibboleth SP a esta carpeta. Añadir un archivo shibboleth2.xml correctamente configurado para esta carpeta. Más adelante en el texto. Añadir un archivo PEM certificado de clave pública para la firma de metadatos del IdP. Crear un archivo de texto en esta carpeta. Nombre que se instale-shib.cmd. También se necesita un archivo de atributos-map.xml si usted está haciendo cualquier atributo personalizado mapeo. Todos estos archivos deben tener su propiedad "Copiar en el directorio de salida" ajustado a copiar-siempre. Puede encontrar esta opción en la pestaña Propiedades de cada archivo. Varios cambios se deben realizar en el fichero de shibboleth2.xml.Hay un cambio que es bastante misterioso. El identificador de sitio web para el papel servicio en la nube debe estar configurado para que coincida con el ID de sitio en IIS. He descubierto que Azure se ponía el ID de sitio para 1273337584. No tengo ni idea de por qué se utilizó este número en particular. Voy a hablar más de esto en mi post de seguimiento. Modificar el archivo de definición de servicio para ejecutar el script de inicio de instalación-shib.cmd. Añadir la línea <Tarea Línea de comando = "Shibboleth-SP \ install-shib.cmd" executionContext = "elevado" TaskType = "simple" /> dentro de un elemento <inicio> tras el. Por último, pero no menos importante, es necesario rellenar el script de inicio. Voy a publicar toda la secuencia de comandos en un blog posterior, pero aquí están las notas acerca de lo que hace. En primer lugar, se corre el Shibboleth SP MSI en modo desatendido. Estoy utilizando la ruta de instalación predeterminada, que tuvo que ser declarado explícitamente en la versión 2.5.1 MSI. También puedo especificar que la tala instalar va a la carpeta de archivos temporales. describe cómo funciona el registro de inicio. A continuación, copia los archivos del directorio de Shibboleth-SP para elSP directorio de instalación. Esto incluye algunos archivos DLL que se encuentran en el camino, pero que no puede ser encontrado por el filtro ISAPI Shibboleth por alguna razón. El SP MSI se basa en la extensión de la API de compatibilidad de IIS 6.0 para instalar el filtro ISAPI Shibboleth. La versión de IIS Azure no tiene instalada esta extensión, por lo que utilizar la utilidad appcmd para instalar y configurar el filtro ISAPI. Algunos ACL del sistema de archivos que faltan, así que utilizan la herramienta icacls para establecerlos. Por último reinicio el demonio del servicio Shibboleth por lo que va a recoger los nuevos valores Shibboleth2.xml. Ahora se puede construir y enviar esta nueva versión de su aplicación web Azure. En este punto usted debería ser capaz de utilizar cualquiera de los métodos: publicar desde VS o actualización del Portal de los desarrolladores. Tenga en cuenta que en realidad hay un tercer método que se podría utilizar. VS llama a herramientas de SDK Azure. Se podría utilizar esas herramientas directamente en caso de que desee tener un script de construcción automatizar la carga y despliegue.
Ahora, cuando usted navega a su sitio web Azure debe ser redirigido a la página de inicio de sesión del IdP. Una vez que consiga entrar satisfactoriamente que debe ser redirigido de nuevo a su aplicación web. Ahora habrá variables de sesión que contienen atributos de autenticación como IdP URN, nombre de usuario, y así sucesivamente.
Simple, ¿no? Más detalles a seguir. No he dicho que esto iba a ser fácil.