2012-08-02 625 views
24

Tenemos una aplicación ASP.NET usando WIF. Nuestro archivo web.config tiene una sección como esta:Usando WIF, ¿cuál es la diferencia entre audienceUris y el reino?

<audienceUris> 
    <add value="https://someapp.mycompany.com/App/" /> 
</audienceUris> 
<federatedAuthentication> 
    <wsFederation passiveRedirectEnabled="true" issuer="https://adfs.mycompany.com/adfs/ls/" realm="https://someapp.mycompany.com/App/" requireHttps="true" /> 
    <cookieHandler requireSsl="false" /> 
</federatedAuthentication> 

Todos los ejemplos que veo tanto el audienceUris y realm son el mismo valor. ¿Cuál es la diferencia entre estos dos? ¿Los necesitamos a los dos?

Respuesta

35

El realm es el identificador único de la aplicación, la identidad que se envía al STS al iniciar sesión. Sin embargo, el elemento audienceUris se usa para limitar desde qué aplicaciones se aceptará el token.

Por ejemplo, un usuario podría iniciar sesión y recibir su token de una parte dependiente diferente y luego navegar a su aplicación. Si el dominio de esa aplicación aparece en el audienceUris, se aceptará el token y podrán acceder al sitio (suponiendo que la aplicación también pueda leer la cookie).

Si piensa en un token como pasaporte, es como decir que Gran Bretaña permitirá el ingreso de personas con pasaporte estadounidense o británico.

En respuesta a su pregunta, debe incluirlos a ambos, pero pueden ser los mismos.

+0

Gracias, eso ayuda. Una de las razones para hacer esta pregunta es que nos preguntamos si/cómo es posible conectarse directamente a un servidor en una granja. Entonces, en la aplicación está en una granja, entonces el público y el reino sería la URL de la granja. Pero, ¿y si quisiéramos conectarnos directamente a una de las máquinas de la granja? ¿Es eso posible? – Bryan

+2

El reino no es realmente la URL. Es simplemente un identificador. Podría ser https://www.iloveadfsandidontcare.com o cualquier URI, siempre que sea exclusivo de su STS. La URL real del punto final se define en AD FS, y eso define dónde se envía la respuesta de inicio de sesión. Por lo tanto, si desea ir directamente a una URL específica en la comunidad, debe configurarla en AD FS. –

+0

Si cambio el dominio en mi web.config a ese URI que tengo y mantengo el mismo valor para el público (el URL real de mi aplicación), aparece un error que dice que los dos tienen que coincidir. (AudienceUriValidationFailedException: ID1038: AudienceRestrictionCondition no era válida porque la Audiencia especificada no está presente en AudienceUris). Por lo tanto, parece que ambas son necesarias y que ambas tienen que ser iguales. – Bryan

Cuestiones relacionadas