Single sign on - Sharepoint para o aplicativo da Web

1

Temos um site do Sharepoint que usa autenticação baseada no Windows.

Fornecemos links no SharePoint para um aplicativo da Web seguro que usa autenticação baseada em formulários. Ambos autenticam contra o mesmo AD.

No entanto, quando você clica em um link no SharePoint, o problema é solicitado a ser autenticado novamente ao acessar o aplicativo da web. Isso é um aborrecimento já que seu nome de usuário / senha são obviamente os mesmos desde a autenticação contra a mesma fonte.

Existem exemplos ou documentos úteis sobre como fazer o logon único funcionar da autenticação baseada no Windows para a autenticação baseada em formulários?

    
por cas06d 27.05.2011 / 22:20

1 resposta

1

Se você estiver navegando entre subdomínios no mesmo domínio (como www.YOURDOMAIN.com para app.YOURDOMAIN.com), você poderá obter os resultados desejados com um nível de domínio cookie de autenticação do asp.net usando SetAuthCookie e algumas alterações do web.config.

Este artigo foi útil quando eu configurei uma configuração semelhante Single Sign-on no ASP.NET e em outras plataformas - CodeProject

Passo 1 - Definir Cookie

Embora o aplicativo do SharePoint use a autenticação do Windows, você ainda pode chamar esse método para criar um cookie de autenticação do .NET para seu domínio atual e autenticar automaticamente o usuário quando ele navegar para o aplicativo de autenticação de formulários. Assim, uma vez que seu usuário se conecte ao seu site do SharePoint, aplique o cookie (possivelmente por meio de uma parte da web personalizada ou de um code-behind de página / masterpage) da seguinte forma:

// this will create a persistant cookie 
// (meaning closing/re-opening the browser won't remove the cookie)
FormsAuthentication.SetAuthCookie(
    SPContext.Current.Web.CurrentUser.LoginName, 
    true);

Etapa 2 - definir valores <machineKey> idênticos

No web.config de ambos os aplicativos, você precisará definir valores idênticos para o seu <machineKey> (dentro de <system.web> ). Tais como:

<machineKey 
  validation="SHA1" 
  validationKey="[128 character random string]" 
  decryption="AES" 
  decryptionKey="[64 character random string]" />

Etapa 3 - Defina <forms> valores

Você também desejará definir valores na <forms> para que, quando o cookie de autenticação for criado, ele use suas configurações para domain , cookieless

no seu SharePoint web.config aplique o seguinte

<authentication mode="Windows">
      <forms domain="YOURDOMAIN.COM" 
             cookieless="UseCookies"
             enableCrossAppRedirects="true" />
</authentication>

em seu aplicativo forms-auth os define no seu web.config junto com o que você já tem (provavelmente pelo menos os valores da propriedade loginUrl e timeout estão definidos também)

<authentication mode="Forms">
      <forms domain="YOURDOMAIN.COM" 
             cookieless="UseCookies"
             enableCrossAppRedirects="true" />
</authentication>
    
por 28.05.2011 / 00:55