Paolo Pialorsi

SOA, Workflow Foundation (WF), Windows Communication Foundation (WCF) e le Architetture Distribuite

News

Archives

ADO.NET Data Services, REST, Windows Security e IIS

Durante l’estate ho dovuto fare il deployment di un application server per esporre alcuni servizi realizzati con gli ADO.NET Data Services. Chi mi conosce sa che in generale propendo per soluzioni ad hoc, con modelli ad oggetti indipendenti dal backend e dalla tecnologia di accesso ai dati, tuttavia in questo particolare caso (numero basso di utenti, numero elevato di entità e variabilità frequente delle strutture dati) ho preferito questa soluzione.

Lascio una traccia di quello che ho dovuto fare per attivare la sicurezza integrata Windows, perché la procedura non è esattamente corrispondente a quello che ci si aspetterebbe:

  • Pubblicare la Virtual Directory in IIS
  • Configurare l’accesso anonimo su IIS (infatti è WCF a gestire l’autenticazione integrata al posto di IIS)
  • Mettere l’autenticazione di tipo Windows nella parte di web.config relativa a system.web
  • L’autenticazione Windows integrata sui servizi si ricava in modo implicito dall’impostazione precedente, ma occorre configurare il binding (webHttpBinding) degli ADO.NET Data Services in modo personalizzato, nel web.config della Virtual Directory, per impostare i parametri al contorno (come maxReceivedMessageSize e maxBufferSize, oltre ai ReaderQuotas)
    • Il contract da richiamare in configurazione è: System.Data.Services.IRequestHandler
  • Configurare i method GET, MERGE, POST, PUT, DELETE per i file SVC da pubblicare, oppure mettere una regola catch all (*) via ISAPI (wildcard application maps)
  • Assegnare il diritto di modifica sul file fisico .SVC sul file system del server web, per gli utenti che accederanno in modifica ai dati

Ecco fatto :-) ! Buon lavoro …