Segurança em Web Services

30/01/2007

0

Pessoal, bom dia

Como posso implementar segurança em Web Services de maneira rápida?
Eu preciso que o meu WebService não fique exposto a qualquer usuário e que somente minha aplicação possa acessá-lo a partir de um usuário e senha. Alguém tem idéia de como eu posso fazer isso?


Patrickreinan

Patrickreinan

Responder

Posts

12/04/2007

Pedro Carvalho

Esse problema é fácil de resolver...

Primeiro vc deve desabilitar a opção de anonimos do IIS clicando com o botão direito em cima da sua aplicação escolha propriedade/segurança do diretório/editar... desmarque a opção acesso anônimo, desmaque a autenticação integrada do windows e marque a opção Autenticação básica...

Obs: quando vc fou depurar seu webservice não esqueça de marcar a opção autenticação integrada do windows...

vc pode colocar o usário e senha na autentição básica do windows...


Responder

18/04/2007

Ghostmutante

Bom, vamos pensar que este WebService vai estar hospedador em WebHosting no qual vc nao pode mecher na config do server, temos que nos preparar para isso, mas eh facil, tente fazer algo mais ou menos assim:

<WebMethod(Description:="Descreva aqui seu WebMethod")> _
    Public Function Meu_WebMethod( _
                       ByVal var1 As String, _
                       ByVal var2 As String, _
                       ByVal var3 As Integer, _
                       ByVal var4 As String) As Integer



Acima fizemos nossas declaracoes, agora vamos a seguranca:


Dim tem_erro as integer = 1

´aqui um exemplo se o campo eh obrigatorio
if var1 = "" then
     tem_erro = -1
end if

´aqui um exemplo se a requisicao veio da sua pagina
´isso seria o mais importante para vc saber se o cara acessou de sua
´aplicacao ou naum

´contamos que minha url seja: http://www.meu_site.com.br
If Not (InStr((Page.Request.ServerVariables("SERVER_NAME") & Page.Request.ServerVariables("PATH_INFO")).ToLower, "meu_site") > 0) Then
     tem_erro = -1
End If


Bom, agora vamos a nossa funcao:

If tem_erro > 0 then
Dim strSQL as String

strSQL = " INSERT INTO Minha_tabela (" & vbCrLf
        strSQL &= " Campo1, " & vbCrLf
        strSQL &= " Campo2, " & vbCrLf
        strSQL &= " Campo3, " & vbCrLf
        strSQL &= " Campo4, " & vbCrLf
strSQL &= ") VALUES (" & vbCrLf
        strSQL &= var1, " & vbCrLf
        strSQL &= var2, " & vbCrLf
        strSQL &= var3, " & vbCrLf
        strSQL &= var4 " & vbCrLf
strSQL &= ");"

´ ae executa toda a para, commando e tra la la...
Return 1

Else
     Return -1
End if
 End Function



Ae é o seguinte, guando tu chamar isso, tens o Return em Integer, se ele retornar -1 é pq deu erro, se retorna 1 deu certo...

Bom, isso foi um exemplo basico, temos varios outras formas para se fazer isso... Fiz a forma mais simples e funcional apenas para demonstrar como funciona.

Qualquer coisa chama que demonstra outras funções mais avançadas.


Abraços.


Responder

20/04/2007

Pedro Carvalho

Bom vamos lá...

Vc deve importar o seguinte namespace: Imports System.Net.

Depois vc cria a instância do seu webService, abaixo do Page_Load da sua página coloque esse comando:

nome_do_objeto_instanciado_do_webService.Credentials = New NetworkCredential(ConfigurationManager.AppSettings(´wsLogon´), ConfigurationManager.AppSettings(´wsPass´), ConfigurationManager.AppSettings(´wsDomain´))

No webConfig vc vai colocar essa minha de comnado:

<appSettings>
<add key=´wsLogon´ value=´nome_do_usuario_criado_na_maquina_com_permisao_de_adm´/>
<add key=´wsPass´ value=´senha_do_usuario´/>
<add key=´wsDomain´ value=´servidor_do_banco_de_dados´/>
</appSettings>

É claro que quando vc hospedar suas página vc deve informar ao administrador do provedor que ele deve fazer as configurações que falei na primeira postagem...

Um abraço...


Responder

20/04/2007

Carlosmaxx

Bom dia a todos,

Aqui onde eu trabalho nós fizemos da seguinte forma:

No IIS, na pasta virtual do web service colocamos uma configuração para que apenas o IP do próprio servidor possa acessá-lo.

Com isso vc impede que outras máquinas vejam seu web service. É claro que com essa configuração, as aplicações que consomem esse web service devem estar no mesmo servidor que ele.

É simples e funciona bem!

Abraço.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar