2016-02-25 2 views
0

J'ai une application Web configurée pour être sécurisée par ADFS. Et ça fonctionne parfaitement. Le seul problème que j'ai maintenant, c'est que j'ai besoin d'un chemin particulier pour être anonyme.ADFS et accès anonyme au chemin

Exemple:

myapp.com/services/api -> doit être garanti par ADFS.

myapp.com/services/myPublicPath -> ne doit pas être sécurisé par des adfs.

Je ne sais pas trop comment y parvenir. J'ai essayé d'utiliser la balise de localisation sur web.config mais pas de chance .. l'ensemble du site est sécurisé par des adfs .. je ne sais pas comment créer des exceptions.

Voici mon web.config.

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=301879 
    --> 
<configuration> 
    <configSections> 
    <section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    <section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    </configSections> 
    <appSettings> 
    </appSettings> 
    <connectionStrings> 
    </connectionStrings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5.1" /> 
    <httpRuntime targetFramework="4.5" /> 
    <customErrors mode="Off"></customErrors> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 
    </system.web> 
    <system.webServer> 
    <modules> 
     <remove name="FormsAuthentication" /> 
     <remove name="UrlRoutingModule-4.0" /> 
     <add name="WSFederationAuthenticationModule" /> 
     <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> 
    </modules> 
    <handlers> 
    </handlers> 
    </system.webServer> 
    <location path="FederationMetadata"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="oauth"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 
    <runtime> 
    </runtime> 
    <system.identityModel> 
    <identityConfiguration> 
     <securityTokenHandlers> 
     </securityTokenHandlers> 
     <audienceUris> 
     </audienceUris> 
     <issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     </issuerNameRegistry> 

     <certificateValidation certificateValidationMode="None" /> 
    </identityConfiguration> 
    </system.identityModel> 

    <system.identityModel.services> 

    <federationConfiguration> 
    </federationConfiguration> 
    </system.identityModel.services> 
</configuration> 

Merci d'avance.

Cordialement,

+0

La balise de localisation fonctionne normalement - qu'est-ce que le vôtre ressemble? – nzpcmad

+0

@nzpcmad merci. J'ai ajouté les paramètres web.config –

Répondre

0

"myapp.com/services/myPublicPath -> ne doit pas être garanti par ADFS."

Ainsi, l'emplacement doit être quelque chose comme:

<location path="services/myPublicPath "> 
    <system.web> 
     <authorization> 
      <allow users="?"/>