Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
El rol de servidor Servicios de federacin de Active Directory (AD FS) de los sistemas operativos
Windows Server 2008 y Windows Server 2008 R2 se puede usar para crear una solucin de acceso a la
identidad altamente extensible, escalable para Internet y segura que puede funcionar en diversas
plataformas, como los entornos de Windows y de otros tipos.
En las siguientes secciones se proporciona ms informacin acerca de AD FS, incluida una introduccin a la
tecnologa as como datos sobre su instalacin y administracin.
AD FS
AD FS es una solucin de acceso e identidad que proporciona a los clientes basados en un explorador
(internos o externos con respecto a su red) un acceso eficaz de "una sola pregunta" a una o varias
aplicaciones protegidas para Internet aun cuando las cuentas de usuario y las aplicaciones se encuentren en
redes u organizaciones completamente distintas.
Cuando una aplicacin se encuentra en una red y las cuentas de usuario en otra, es habitual que los usuarios
tengan que especificar preguntas para las credenciales secundarias al intentar obtener acceso a la aplicacin.
Estas credenciales secundarias representan la identidad de los usuarios en el entorno en que reside la
aplicacin. El servidor web que hospeda la aplicacin suele exigir estas credenciales para poder tomar la
decisin de autorizacin ms adecuada posible.
AD FS hace innecesarias estas cuentas secundarias y sus credenciales al proporcionar relaciones de
confianza que se pueden emplear para proyectar la identidad digital y los derechos de acceso de un usuario a
los asociados de confianza. En un entorno federado, cada organizacin sigue administrando sus propias
identidades, aunque tambin puede proyectar y aceptar identidades de otras organizaciones de una forma
segura.
Adems, es posible implementar servidores de federacin en varias organizaciones a fin de facilitar las
transacciones de empresa a empresa (B2B) entre organizaciones asociadas. Las asociaciones B2B federadas
identifican a los asociados comerciales como uno de los siguientes tipos de organizacin:
Organizacin de recursos: aquellas organizaciones que poseen y administran recursos que son
accesibles desde Internet pueden implementar servidores de federacin AD FS y servidores web
habilitados para AD FS que administren el acceso a los recursos protegidos de los asociados de
confianza. Estos asociados de confianza pueden incluir otras partes externas u otros departamentos o
subsidiarias de la misma organizacin.
El proceso de autenticacin en una red mientras se obtiene acceso a los recursos de otra (sin que los usuarios
tengan que molestarse en repetir acciones de inicio de sesin) se conoce como inicio de sesin nico (SSO).
AD FS ofrece una solucin de SSO basada en web que autentica a los usuarios en varias aplicaciones web a
lo largo de una sesin de explorador nica.
El rol de servidor AD FS incluye servicios de federacin, proxy y agente web que se pueden configurar a fin
de habilitar el SSO web, federar recursos basados en web, personalizar la experiencia de acceso y
administrar la forma en que se autoriza a los usuarios existentes a obtener acceso a las aplicaciones.
Segn los requisitos de la organizacin, es posible implementar servidores que ejecuten cualquiera de los
siguientes servicios del rol AD FS:
Servicio de federacin: el Servicio de federacin est compuesto por uno o varios servidores de
federacin que comparten una directiva de confianza comn. Los servidores de federacin se usan
para enviar las solicitudes de autenticacin de las cuentas de usuario de otras organizaciones o de los
clientes que pueden encontrarse en cualquier lugar de Internet.
Agente para notificaciones: el agente para notificaciones se usa en un servidor web que hospede
una aplicacin para notificaciones a fin de permitir la consulta de notificaciones de tokens de
seguridad de AD FS. Una aplicacin para notificaciones es una aplicacin Microsoft ASP.NET que
usa las notificaciones de un token de seguridad de AD FS para tomar decisiones de autorizacin y
personalizar aplicaciones.
1. El administrador del asociado de cuenta especifica la opcin Exportar directiva de asociado bsico
haciendo clic con el botn secundario en la carpeta Directiva de confianza y exporta un archivo de
directiva de asociado que contiene el URI, el nombre para mostrar, el URL (Localizador uniforme de
recursos) del proxy de servidor de federacin y el certificado de comprobacin de A. Datum
Corporation. Despus el administrador asociado de cuenta enva el archivo de la directiva de
asociado (por correo electrnico u otro medio) al administrador de asociado de recurso.
2. El administrador de asociado de recurso crea un asociado de cuenta nuevo con el Asistente para
agregar asociados de cuenta y selecciona la opcin de importar un archivo de directiva de asociado
de cuenta. El administrador del asociado de recurso procede a especificar la ubicacin del archivo de
directiva de asociado y a comprobar que todos los valores presentados en las pginas del asistente
(rellenados previamente al importar la directiva) son exactos. A continuacin, el administrador
finaliza el asistente.
3. El administrador del asociado de recurso ahora puede configurar notificaciones adicionales o
configuraciones de directiva de confianza especficas del asociado de cuenta. Cuando finaliza la
4
configuracin, el administrador especifica la opcin Exportar directiva, haciendo clic con el botn
secundario en el asociado de cuenta de A. Datum Corporation. El administrador del asociado de
cuenta exporta un archivo de directiva de asociado que contiene valores como el URI, el URL del
proxy de servidor de federacin, el nombre para mostrar, los tipos de notificacin y las asignaciones
de notificacin para la organizacin Trey Research. Despus, el administrador de asociado de recurso
enva el archivo de directiva de asociado al administrador del asociado de cuenta.
4. El administrador de asociado de cuenta crea un asociado de recurso nuevo con el Asistente para
agregar asociados de recurso y selecciona la opcin de importar un archivo de directiva de asociado
de recurso. El administrador del asociado de cuenta especifica la ubicacin del archivo de directiva
de asociado de recurso y comprueba que todos los valores presentados en las pginas del asistente
(rellenados previamente por la importacin de la directiva) son exactos. A continuacin, el
administrador finaliza el asistente.
Cuando finaliza este proceso, se establece una confianza federada correcta entre los dos asociados. Los
administradores de asociado de recurso tambin pueden iniciar el proceso de importacin y exportacin de
la directiva, aunque este proceso no se explica aqu.
Pgina de
propiedades
de IIS 6.0
Ubicacin anterior
IIS 7.0
propiedades
pgina
Ubicacin nueva
Direccin URL
<NOMBREDEEQUIPO> (en la seccin
del Servicio de
Otros del panel central)
federacin
<NOMBREDEEQUIPO>\Web
Ficha Agente <NOMBREDEEQUIPO>\Web
Agente web de Sites\<Sitio o Directorio virtual> (en la
web de AD FS Sites\<Sitio o Directorio virtual> AD FS
seccin IIS\Authentication del panel
central)
Nota
No hay diferencias importantes entre las interfaces de usuario del complemento Servicios de federacin de
Active Directory en Windows Server 2008 y el complemento Servicios de federacin de Active Directory en
Windows Server 2003 R2.
Instalacin y configuracin de AD DS
Seguridad Nota
En un entorno de produccin, use la cuenta de usuario con privilegios mnimos necesaria para realizar las
tareas requeridas. Dado que la presente gua se ha elaborado para su uso en un entorno de prueba, en
muchos procedimientos se le solicitar que use la cuenta del Administrador local o la del Administrador del
dominio para reducir el nmero de pasos necesarios.
Consulte los detalles relativos al uso correcto de las cuentas y pertenencias a grupos en Grupos
predeterminados locales y de dominio (http://go.microsoft.com/fwlink/?LinkId=83477).
Credenciales administrativas
Para realizar todas las tareas de este paso, inicie sesin en cada uno de los cuatro equipos con la cuenta
Administrador local. Para crear cuentas en los Servicios de dominio de Active Directory (AD DS), inicie
sesin con la cuenta Administrador del dominio.
Configurar tres VM nuevas que tengan como mnimo 512 megabytes (MB) de memoria disponible.
Completar la activacin del producto de Windows 7 y Windows Server 2008 R2 mientras cada uno
de los equipos todava tenga conexin a Internet.
Comprobar que todos los relojes de los equipos tengan establecida la misma hora, con una diferencia
de cinco minutos como mximo. Esto es importante para garantizar que las marcas de tiempo de los
tokens sean siempre vlidas.
Nombre de
equipo
Rol de cliente o
servidor de AD FS
Configuracin Configuracin
IPv4
DNS
Direccin IP:
192.168.1.1
adfsclient
Cliente
Windows 7
Mscara de
subred:
255.255.255.0
Preferida:
192.168.1.3
Alternativa:
192.168.1.4
Direccin IP:
adfsweb
Servidor web
192.168.1.2
Mscara de
subred:
Preferida:
192.168.1.4
255.255.255.0
Direccin IP:
adfsaccount
Servidor de federacin
Windows Server 2008 R2
y controlador de
Enterprise
dominio
192.168.1.3
Mscara de
subred:
Preferida:
192.168.1.3
255.255.255.0
Direccin IP:
adfsresource
Servidor de federacin
Windows Server 2008 R2
y controlador de
Enterprise
dominio
192.168.1.4
Mscara de
subred:
Preferida:
192.168.1.4
255.255.255.0
Asegrese de establecer en el cliente tanto la configuracin preferida como la alternativa del servidor de
Sistema de nombres de dominio (DNS). Si no se configuran los dos tipos de valores como se especifica, no
funcionar correctamente el escenario de AD FS.
Instalacin y configuracin de AD DS
En esta seccin se incluyen los siguientes procedimientos:
7
Instalacin de AD DS
Creacin de cuentas
Instalacin de AD DS
Puede usar el Asistente para agregar roles para crear dos bosques de Active Directory nuevos en ambos
servidores de federacin. Cuando escriba los valores en las pginas del asistente, use los nombres de
empresas y de dominios de AD DS de la tabla siguiente. Para iniciar el Asistente para agregar roles, haga
clic en Inicio, haga clic en Herramientas administrativas, haga clic en Administrador del servidor y, a
continuacin, en el panel derecho, haga clic en Agregar roles.
Importante
Configure las direcciones IP tal como se especific en la tabla anterior antes de intentar instalar AD DS. De
este modo, se asegura que los registros DNS estn configurados correctamente.
Como procedimiento recomendado de seguridad, en un entorno de produccin, los controladores de dominio
no deben funcionar tanto como servidores de federacin como controladores de dominio.
Nombre de
equipo
Nombre de la
compaa
Nombre de dominio de AD DS
(nuevo bosque)
Configuracin DNS
adfsaccount
A. Datum
Corporation
adatum.com
adfsresource
Trey Research
treyresearch.net
En esta gua, A. Datum representa la organizacin del asociado de cuenta y Trey Research representa la
organizacin del asociado de recurso.
Creacin de cuentas
Despus de configurar dos bosques, inicie el complemento Usuarios y equipos de Active Directory para
crear algunas cuentas que puede usar para probar y comprobar el acceso federado a travs de ambos
bosques. Configure los valores de la tabla siguiente en el equipo adfsaccount.
Objeto que se
va a crear
Nombre
Nombre de usuario
Accin
Grupo global
TreyClaimAppUsers No aplicable
de seguridad
No aplicable
Usuario
Alan Shen
alansh
adatum.com
adfsweb
treyresearch.net
Configurar IIS para que sea necesario SSL en ambos servidores de federacin
Credenciales administrativas
Para llevar a cabo todos los procedimientos de este paso, inicie sesin en el equipo adfsaccount y en el
equipo adfsresource con la cuenta de administrador para el dominio. Inicie sesin en el equipo adfsweb con
la cuenta de administrador local.
11
Nota
En un entorno de produccin, los certificados se obtienen de una entidad de certificacin (CA). En esta gua
se usan certificados autofirmados para la implementacin del laboratorio de pruebas.
9. En la pgina Almacn de certificados, haga clic en Colocar todos los certificados en el siguiente
almacn y, a continuacin, en Siguiente.
10. En la pgina Finalizacin del Asistente para importacin de certificados, compruebe que la
informacin proporcionada es correcta y haga clic en Finalizar
Utilice el siguiente procedimiento para configurar el servidor web (adfsweb) para hospedar una aplicacin
para notificaciones de muestra.
Para crear y configurar la aplicacin para notificaciones
1. Haga clic en Inicio, seleccione Herramientas administrativas y, a continuacin, haga clic en
Administrador de Internet Information Services (IIS).
2. En el rbol de consola, haga doble clic en ADFSWEB, haga doble clic en Sitios, haga clic con el
botn secundario en Sitio web predeterminado y, a continuacin, haga clic en Agregar aplicacin.
3. En el cuadro de dilogo Agregar aplicacin, en Alias, escriba claimapp.
4. Haga clic en Seleccionar, seleccione Classic .NET AppPool en el men desplegable y, a
continuacin, haga clic en Aceptar.
5. Haga clic en el botn ... y, a continuacin, resalte la carpeta d:\inetpub\wwwroot.
6. En Crear carpeta nueva, asigne a la carpeta el nombre claimapp, haga clic en Aceptar y, a
continuacin, vuelva a hacer clic en Aceptar.
Har que el Servicio de federacin de Trey Research reconozca la aplicacin para notificaciones.
Configurar cada una de las notificaciones de grupo de forma que se asignen a un grupo de Servicios
de dominio de Active Directory (AD DS) del bosque correspondiente.
Credenciales administrativas
16
Para realizar los procedimientos de este paso, inicie sesin en el equipo adfsaccount y en el equipo
adfsresource con la cuenta Administrador del dominio.
17
2. Haga doble clic en Servicio de federacin, haga doble clic en Directiva de confianza, haga doble
clic en Mi organizacin, haga clic con el botn secundario en Notificaciones de organizacin, elija
Nuevo y, a continuacin, haga clic en Notificacin de organizacin.
3. En el cuadro de dilogo Crear una nueva notificacin de organizacin, en Nombre de
notificacin, escriba Trey ClaimApp Claim.
4. Compruebe que est seleccionado Notificacin de grupo y haga clic en Aceptar.
1. Haga clic en Inicio, elija Herramientas administrativas y, a continuacin, haga clic en Servicios
de federacin de Active Directory.
2. Haga doble clic en Servicio de federacin, haga doble clic en Directiva de confianza, haga doble
clic en Mi organizacin, haga doble clic en Almacenes de cuentas, haga clic con el botn
secundario en Active Directory, elija Nuevo y, a continuacin, haga clic en Extraccin de
notificacin de grupo.
3. En el cuadro de dilogo Crear una nueva extraccin de notificacin de grupo, haga clic en
Agregar, escriba treyclaimappusers y, a continuacin, haga clic en Aceptar.
4. Asegrese de que el men Asignar a esta notificacin de organizacin muestra
Trey ClaimApp Claim y, a continuacin, haga clic en Aceptar.
Realice el procedimiento siguiente para crear una notificacin de grupo que se usar para tomar decisiones
de autorizacin para la aplicacin para notificaciones de ejemplo en nombre de los usuarios del bosque
adatum.com.
Para crear una notificacin de grupo para la aplicacin para notificaciones
1. Haga clic en Inicio, elija Herramientas administrativas y, a continuacin, haga clic en Servicios
de federacin de Active Directory.
2. Haga doble clic en Servicio de federacin, haga doble clic en Directiva de confianza, haga doble
clic en Mi organizacin, haga clic con el botn secundario en Notificaciones de organizacin, elija
Nuevo y, a continuacin, haga clic en Notificacin de organizacin.
3. En el cuadro de dilogo Crear una nueva notificacin de organizacin, en Nombre de
notificacin, escriba Adatum ClaimApp Claim.
4. Compruebe que est seleccionado Notificacin de grupo y haga clic en Aceptar.
Realice el siguiente procedimiento para agregar una aplicacin para notificaciones al Servicio de federacin.
Para agregar una aplicacin para notificaciones
1. Haga clic en Inicio, elija Herramientas administrativas y, a continuacin, haga clic en Servicios
de federacin de Active Directory.
2. Haga doble clic en Servicio de federacin, haga doble clic en Directiva de confianza, haga doble
clic en Mi organizacin, haga clic con el botn secundario en Aplicaciones, elija Nuevo y, a
continuacin, haga clic en Aplicacin.
3. En la pgina Asistente para agregar aplicaciones, haga clic en Siguiente.
4. En la pgina Tipo de aplicacin, haga clic en Aplicacin para notificaciones y, a continuacin, en
Siguiente.
5. En la pgina Detalles de la aplicacin, en Nombre para mostrar de la aplicacin, escriba
Aplicacin para notificaciones.
6. En Direccin URL de la aplicacin, escriba https://adfsweb.treyresearch.net/claimapp/ y, a
continuacin, haga clic en Siguiente.
7. En la pgina Notificaciones de identidad aceptadas, haga clic en Nombre principal del usuario
(UPN) y, a continuacin, haga clic en Siguiente.
8. En la pgina Habilitar esta aplicacin, compruebe que la casilla Habilitar esta aplicacin est
activada y, a continuacin, haga clic en Siguiente.
9. En la pgina Finalizacin del Asistente para agregar aplicaciones, haga clic en Finalizar.
Habilitacin de Adatum ClaimApp Claim
Ahora que el Servicio de federacin reconoce la aplicacin, realice el procedimiento siguiente para habilitar
la notificacin de grupo Adatum ClaimApp Claim para esa aplicacin.
Para habilitar Adatum ClaimApp Claim
1. En la carpeta Aplicaciones, haga clic en Aplicacin para notificaciones.
2. Haga clic con el botn secundario en Adatum ClaimApp Claim y, a continuacin, haga clic en
Habilitar.
21
23
1. Haga clic en Inicio, elija Herramientas administrativas y, a continuacin, haga clic en Servicios
de federacin de Active Directory.
2. Haga doble clic en Servicio de federacin, haga doble clic en Directiva de confianza, haga doble
clic en Organizaciones asociadas, haga doble clic en Asociados de cuenta, haga clic con el botn
secundario en A. Datum, elija Nuevo y, a continuacin, haga clic en Asignacin de notificacin de
grupo entrante.
3. En el cuadro de dilogo Crear una nueva asignacin de notificacin de grupo entrante, en
Nombre de la notificacin de grupo entrante, escriba ClaimAppMapping.
Nota
Este valor distingue maysculas de minsculas. Debe coincidir exactamente con el valor que especific en
la asignacin de notificacin de grupo saliente en la organizacin del asociado de cuenta, A. Datum.
4. En Notificacin de grupo de organizacin, seleccione Adatum ClaimApp Claim y, a
continuacin, haga clic en Aceptar.
2. Haga doble clic en Servicio de federacin, haga doble clic en Directiva de confianza, haga doble
clic en Organizaciones asociadas, haga clic con el botn secundario en Asociados de recurso, elija
Nuevo y, a continuacin, haga clic en Asociado de recurso.
3. En la pgina Asistente para agregar asociados de recurso, haga clic en Siguiente.
4. En la pgina Importar archivo de directiva, haga clic en S, en Archivo de directiva de
interoperabilidad de asociados, escriba \\adfsresource\d$\adfsresource.xml y, a continuacin, en
Siguiente.
5. En la pgina Detalles del asociado de recurso, compruebe lo siguiente:
o Nombre para mostrar es Trey Research.
o URI del Servicio de federacin es urn:federation:treyresearch.
o Direccin URL del extremo de Servicio de federacin es
https://adfsresource.treyresearch.net/adfs/ls/. A continuacin, haga clic en Siguiente.
6. En la pgina Certificado de comprobacin de asociado de cuenta, compruebe que la opcin Usar
el certificado de comprobacin del archivo de importacin de directiva est seleccionada y haga
clic en Siguiente.
7. En la pgina Escenario de federacin, compruebe que la opcin SSO web federado est
seleccionada y, a continuacin, haga clic en Siguiente.
8. En la pgina Notificaciones de identidad de asociados de recurso, compruebe que las casillas
Notificacin de UPN y Notificacin de correo electrnico estn activadas y, a continuacin, haga
clic en Siguiente.
9. En la pgina Seleccionar sufijo UPN, compruebe que Reemplazar todos los sufijos UPN con los
siguientes muestra adatum.com y, a continuacin, haga clic en Siguiente.
10. En la pgina Seleccionar sufijo de correo electrnico, compruebe que Reemplazar todos los
sufijos de correo electrnico con muestra adatum.com y, a continuacin, haga clic en Siguiente.
11. En la pgina Asignar transformaciones de notificacin, en Asignacin seleccione Trey ClaimApp
Claim y haga clic en Siguiente.
12. En la pgina Habilitar este asociado de recurso, compruebe que la casilla Habilitar este asociado
de recurso est activada y, a continuacin, haga clic en Siguiente.
13. En la pgina Finalizacin del Asistente para agregar asociados de recurso, haga clic en Finalizar.
1. Inicie sesin en el equipo adfsclient con la cuenta de administrador local, haga clic en Inicio, en
Buscar archivos y programas, escriba mmc y, a continuacin, haga clic en Aceptar. Haga clic en
Archivo y, a continuacin, en Agregar o quitar complemento.
2. Haga clic en Certificados, en Agregar, en Cuenta de equipo y, a continuacin, en Siguiente.
3. Haga clic en Equipo local: (el equipo en el que se est ejecutando esta consola), en Finalizar y,
por ltimo, en Aceptar.
4. En el rbol de consola, haga doble clic en el icono Certificados (equipo local), haga doble clic en la
carpeta Entidades de certificacin raz de confianza, haga clic con el botn secundario en
Certificados, elija Todas las tareas y, a continuacin, haga clic en Importar.
5. En la pgina Este es el asistente para importacin de certificados, haga clic en Siguiente.
6. En la pgina Archivo para importar, haga clic en Examinar, escriba
\\adfsresource\d$\adfsresource.pfx en Nombre de archivo, haga clic en Abrir y, a continuacin,
haga clic en Siguiente.
Nota
Es posible que tenga que asignar la unidad de red para obtener el archivo adfsresource.pfx. Tambin puede
copiar el archivo adfsresource.pfx directamente desde adfsresource en adfsclient y, a continuacin, llevar al
asistente a esa ubicacin.
7. En la pgina Contrasea, escriba la contrasea para el archivo adfsresource.pfx y haga clic en
Siguiente.
8. En la pgina Almacn de certificados, haga clic en Colocar todos los certificados en el siguiente
almacn y, a continuacin, haga clic en Siguiente.
9. En la pgina Finalizacin del Asistente para importacin de certificados, compruebe que la
informacin proporcionada es correcta y haga clic en Finalizar.
10. Repita estos pasos en el equipo adfsclient hasta que haya importado los certificados de adfsaccount y
adfsweb, y pase a la siguiente seccin.
2. Abra una ventana del explorador y, a continuacin, instale los certificados que se requieren en el
equipo cliente mediante los siguientes pasos:
1. Vaya a https://adfsaccount.adatum.com/.
El explorador muestra el mensaje de error "Error de certificado: Navegacin bloqueada", que
indica que el certificado entrante no lo emiti una entidad de certificacin de confianza. Este
error es normal cuando se implementan servidores de Servicios de federacin de Active
Directory (AD FS) con certificados autofirmados.
2. Haga clic en el vnculo Vaya a este sitio web (no recomendado).
3. En la barra de direcciones, haga clic en Error de certificado y, a continuacin, haga clic en
Ver certificados.
4. En el cuadro de dilogo Certificado, haga clic en Instalar certificado.
5. En la pgina Este es el asistente para importacin de certificados, haga clic en Siguiente.
6. En la pgina Almacn de certificados, haga clic en Colocar todos los certificados en el
siguiente almacn y, a continuacin, haga clic en Examinar.
7. En el cuadro de dilogo Seleccionar almacn de certificados, resalte Entidades de
certificacin raz de confianza, haga clic en Aceptar y, a continuacin, haga clic en
Siguiente.
8. En la pgina Finalizacin del Asistente para importacin de certificados, haga clic en
Finalizar.
9. En el cuadro de dilogo Advertencia de seguridad, haga clic en S.
10. Haga clic en Aceptar dos veces.
11. Repita los pasos de la "a" a la "j" con https://adfsresource.treyresearch.net y
https://adfsweb.treyresearch.net para instalar los tres certificados en el almacn de
certificados de Entidades de certificacin raz de confianza.
3. Vaya a https://adfsweb.treyresearch.net/claimapp/. Cuando se le solicite el dominio kerberos
principal, haga clic en A. Datum Corporation y, a continuacin, en Enviar.
4. En este momento, aparece la Aplicacin de ejemplo SSO en el explorador. Puede ver las
notificaciones enviadas al servidor web en la seccin
SingleSignOnIdentity.SecurityPropertyCollection de la aplicacin de ejemplo.
Nota
Si por alguna razn tiene problemas para tener acceso a la aplicacin para notificaciones, puede ejecutar el
comando iisreset o reiniciar el equipo adfsweb. Despus, intente tener acceso a la aplicacin de nuevo.
de ejemplo
Puede usar la aplicacin para notificaciones de este apndice para comprobar qu notificaciones enva un
Servicio de federacin en los tokens de seguridad de Servicios de federacin de Active Directory (AD FS).
Este apndice incluye instrucciones para configurar una aplicacin para notificaciones de ejemplo en el
servidor web. Con esta aplicacin para notificaciones de ejemplo y las instrucciones de ayuda de Paso 3:
configurar el servidor web, puede preparar la aplicacin para probarla en el equipo cliente y completar el
proceso de configuracin del servidor web.
La aplicacin para notificaciones de ejemplo consta de los tres archivos siguientes:
Default.aspx
Web.config
Default.aspx.cs
Para completar los procedimientos de este paso debe pertenecer como mnimo al grupo Administradores
local de adfsweb. Consulte los detalles relativos al uso correcto de las cuentas y pertenencias a grupos en
Grupos predeterminados locales y de dominio (http://go.microsoft.com/fwlink/?LinkId=83477).
Para que esta aplicacin funcione correctamente, debe usar los siguientes procedimientos para crear por
orden cada uno de los archivos requeridos. Una vez creados los archivos, muvalos al directorio
D:\inetpub\wwwroot\claimapp en el equipo adfsweb.
29
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Claims-aware Sample Application</title>
<style>
<!-.pagetitle { font-family: Verdana; font-size: 18pt; font-weight: bold;}
.propertyTable td { border: 1px solid; padding: 0px 4px 0px 4px}
.propertyTable th { border: 1px solid; padding: 0px 4px 0px 4px; font-weight:
bold; background-color: #cccccc ; text-align: left }
.propertyTable { border-collapse: collapse;}
td.l{ width: 200px }
tr.s{ background-color: #eeeeee }
.banner { margin-bottom: 18px }
.propertyHead { margin-top: 18px; font-size: 12pt; font-family: Arial; fontweight: bold; margin-top: 18}
.abbrev { color: #0066FF; font-style: italic }
-->
</style>
</head>
<body>
<form ID="Form1" runat=server>
<div class=banner>
<div class=pagetitle>SSO Sample</div>
[ <asp:HyperLink ID=SignOutUrl runat=server>Sign Out</asp:HyperLink> | <a
href="<%=Context.Request.Url.GetLeftPart(UriPartial.Path)%>">Refresh without
viewstate data</a>]
</div>
<div class=propertyHead>Page Information</div>
<div style="padding-left: 10px; padding-top: 10px">
30
31
<div class=propertyHead>(SingleSignOnIdentity)User.Identity</div>
<div style="padding-left: 10px; padding-top: 10px">
<asp:Table CssClass="propertyTable" ID=SSOIdentityTable runat=server>
<asp:TableHeaderRow>
<asp:TableHeaderCell>Name</asp:TableHeaderCell>
<asp:TableHeaderCell>Value</asp:TableHeaderCell>
<asp:TableHeaderCell>Type</asp:TableHeaderCell>
</asp:TableHeaderRow>
</asp:Table>
</div>
<div class=propertyHead>SingleSignOnIdentity.SecurityPropertyCollection</div>
<div style="padding-left: 10px; padding-top: 10px">
<asp:Table CssClass="propertyTable" ID=SecurityPropertyTable runat=server>
<asp:TableHeaderRow>
<asp:TableHeaderCell>Uri</asp:TableHeaderCell>
<asp:TableHeaderCell>Claim Type</asp:TableHeaderCell>
<asp:TableHeaderCell>Claim Value</asp:TableHeaderCell>
</asp:TableHeaderRow>
</asp:Table>
</div>
<div class=propertyHead>(IPrincipal)User.IsInRole(...)</div>
<div style="padding-left: 10px; padding-top: 10px">
<asp:Table CssClass="propertyTable" ID=RolesTable runat=server>
</asp:Table>
<div style="padding-top: 10px">
<table>
<tr><td>Roles to check (semicolon separated):</td></tr>
<tr><td><asp:TextBox ID=Roles Columns=55 runat=server/></td><td
align=right><asp:Button UseSubmitBehavior=true ID=GetRoles runat=server
32
33
<add assembly="System.Web.Security.SingleSignOn.ClaimTransforms,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35,
Custom=null"/>
</assemblies>
</compilation>
<customErrors mode="Off"/>
<authentication mode="None" />
<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>
<websso>
<authenticationrequired />
<eventloglevel>55</eventloglevel>
<auditsuccess>2</auditsuccess>
<urls>
<returnurl>https://adfsweb.treyresearch.net/claimapp/</returnurl>
</urls>
<cookies writecookies="true">
<path>/claimapp</path>
<lifetime>240</lifetime>
</cookies>
<fs>https://adfsresource.treyresearch.net/adfs/fs/federationserverservice.asmx</
fs>
</websso>
</system.web>
<system.diagnostics>
<switches>
<add name="WebSsoDebugLevel" value="0" /> <!-- Change to 255 to enable full
34
35
using System.Web.UI.HtmlControls;
using System.Security;
using System.Security.Principal;
using System.Web.Security.SingleSignOn;
using System.Web.Security.SingleSignOn.Authorization;
public partial class _Default : System.Web.UI.Page
{
const string NullValue = "<span class=\"abbrev\" title=\"Null Reference, or not
applicable\"><b>null</b></span>";
static Dictionary<string, string> s_abbreviationMap;
static _Default()
{
s_abbreviationMap = new Dictionary<string, string>();
//
// Add any abbreviations here. Make sure that prefixes of
// replacements occur *after* the longer replacement key.
//
s_abbreviationMap.Add("System.Web.Security.SingleSignOn.Authorization",
"SSO.Auth");
s_abbreviationMap.Add("System.Web.Security.SingleSignOn", "SSO");
s_abbreviationMap.Add("System", "S");
}
protected void Page_Load(object sender, EventArgs e)
{
SingleSignOnIdentity ssoId = User.Identity as SingleSignOnIdentity;
//
// Get some property tables initialized.
//
PagePropertyLoad();
36
IdentityLoad();
BaseIdentityLoad();
SSOIdentityLoad(ssoId);
SecurityPropertyTableLoad(ssoId);
//
// Filling in the roles table
// requires a peek at the viewstate
// since we have a text box driving this.
//
if (!IsPostBack)
{
UpdateRolesTable(new string[] { });
}
else
{
GoGetRoles(null, null);
}
//
// Get the right links for SSO
//
if (ssoId == null)
{
SignOutUrl.Text = "Single Sign On isn't installed...";
SignOutUrl.Enabled = false;
}
else
{
if (ssoId.IsAuthenticated == false)
37
{
SignOutUrl.Text = "Sign In (you aren't authenticated)";
SignOutUrl.NavigateUrl = ssoId.SignInUrl;
}
else
SignOutUrl.NavigateUrl = ssoId.SignOutUrl;
}
}
void SecurityPropertyTableLoad(SingleSignOnIdentity ssoId)
{
Table t = SecurityPropertyTable;
if (ssoId == null)
{
AddNullValueRow(t);
return;
}
//
// Go through each of the security properties provided.
//
bool alternating = false;
foreach (SecurityProperty securityProperty in ssoId.SecurityPropertyCollection)
{
t.Rows.Add(CreateRow(securityProperty.Uri, securityProperty.Name,
securityProperty.Value, alternating));
alternating = !alternating;
}
}
void UpdateRolesTable(string[] roles)
{
38
Table t = RolesTable;
t.Rows.Clear();
bool alternating = false;
foreach (string s in roles)
{
string role = s.Trim();
t.Rows.Add(CreatePropertyRow(role, User.IsInRole(role), alternating));
alternating = !alternating;
}
}
void IdentityLoad()
{
Table propertyTable = IdentityTable;
if (User.Identity == null)
{
AddNullValueRow(propertyTable);
}
else
{
propertyTable.Rows.Add(CreatePropertyRow("Type name",
User.Identity.GetType().FullName));
}
}
void SSOIdentityLoad(SingleSignOnIdentity ssoId)
{
Table propertyTable = SSOIdentityTable;
if (ssoId != null)
{
PropertyInfo[] props = ssoId.GetType().GetProperties(BindingFlags.Instance |
39
BindingFlags.Public | BindingFlags.DeclaredOnly);
AddPropertyRows(propertyTable, ssoId, props);
}
else
{
AddNullValueRow(propertyTable);
}
}
void PagePropertyLoad()
{
Table propertyTable = PageTable;
string leftSidePath = Request.Url.GetLeftPart(UriPartial.Path);
propertyTable.Rows.Add(CreatePropertyRow("Simplified Path", leftSidePath));
}
void BaseIdentityLoad()
{
Table propertyTable = BaseIdentityTable;
IIdentity identity = User.Identity;
if (identity != null)
{
PropertyInfo[] props = typeof(IIdentity).GetProperties(BindingFlags.Instance |
BindingFlags.Public | BindingFlags.DeclaredOnly);
AddPropertyRows(propertyTable, identity, props);
}
else
{
AddNullValueRow(propertyTable);
}
}
40
41
42
//
// We only get one replacement per abbreviation call.
// First one wins.
//
if (retVal.IndexOf(pair.Key) != -1)
{
string replacedValue = string.Format("<span class=\"abbrev\"
title=\"{0}\">{1}</span>", pair.Key, pair.Value);
retVal = retVal.Replace(pair.Key, replacedValue);
break;
}
}
return retVal;
}
//
// ASP.NET server side callback
//
protected void GoGetRoles(object sender, EventArgs ea)
{
string[] roles = Roles.Text.Split(';');
UpdateRolesTable(roles);
}
}
43