26 de março de 2011

Como obter o URL para Login via SSO (Exchange On-line)

Na Parte 1, vimos o material que nos é facultado aquando da activação do SSO, bem como o conteúdo do SDK, agora chegou a hora de por-mos em prática e agarrarmos algum código.

 

Vou exemplificar apenas para O Exchange On-line

 
Todo o código que vai visualizar neste Blog foi alterado por mim por forma a facilitar o funcionamento em integração com vários Portais, desde SharePoint, WindowsForms e ASPX.

Em grosso modo o que nós iremos necessitar para gerar o nosso código é o seguinte:

  1. O Site ID
  2. O Certeficate Thumb
  3. O Redirect URL
  4. Utilizador Master do Domínio
  5. Password Master do Domínio

Como ver o Certificate Thumb?

  1. Clica 2 vezes no Certificado e vai até:

image

Eu por uma questão de comodidade em ambientes ASPX coloco tudo no Web.config, senão vejamos:

 

Mas na realidade para que é que eu quero estes valores? tens razão ainda não expliquei. Quando se efectua um Request de login ao LiveID não vamos necessitar da password do utilizador para nada, pois o certificado e os valores conjugados (Em Cima)

Mas como? na realidade o que nós recebemos do Servidor da Microsoft é o SLT (Short Live Ticket), este ticket não é nada mais nem menos que uma série de informação encriptada que podemos ver em cima, através dos segundos que definirmos, assim ele será válido

  

Este método retornará algo do género

 
https://login.live.com/ppsecure/post.srf?wa=wsignin1.0&rpsnv=11&rver=5.5.4177.0&wp=MBI_SSL&wreply=https://outlook.com/edu&id=
0000000&slt=CeH9USwpW4RGmqNeZwnizgkQg8RQMj1assaadd9lKTY!xEZJtkyM12asdas2ec1BzXnMvXhncF7mI7RN8scT77XMbri0Tasds5pcVbNSxRcuRMIQLvCebTGWs3*n!mgXHw
 
// Examples of RedirectURL are...
//"https://outlook.com/edu" if Outlook Live
//"http://mail.live.com/default.aspx" if Hotmail
//http://skydrive.live.com/home.aspx?provision=1;



<appSettings>
<!-- LIVE@EDU SSO PARAMETROS -->
<add key="Domain" value="pt" />
<add key="SiteID" value="000000" />
<add key="certThumb" value="13 f8 e5 f0 92 43 ed a6 rt f2 05 e5 f2 de 33 5a 4d 09 83 69" />
<add key="redirectURL" value="https://outlook.com/edu" />
<add key="loginSeconds" value="5" />
<add key="WebProxy" value="" />
<add key="Scenario" value="A" />
<add key="suser" value="admin@pt" />
<add key="spass" value="admin@pt" />
</appSettings>


public static string GetShortLiveTicket(string TeuUtilizador)
{
string wlUserId = String.Format("{0}@{1}", TeuUtilizador, "https://outlook.com/edu");
LiveSLT ticket = new LiveSLT(CertThumb, SiteID, WebProxy, int.Parse(loginSeconds));
string slt = ticket.GetSLT(wlUserId, SiteID);
if ((String.IsNullOrEmpty(slt)) || (!ticket.Success))
{
_hasError = true;
return "/";
}
_hasError = false;
string result = LiveRPS.CreateRedirectString(slt, RedirectUrl, SiteID);
return result;
}


Sem comentários:

Enviar um comentário

Like