2012-02-21 82 views
1

我正在将OData服务与ACS集成。一切工作正常,但是当我在授权标头中获取令牌时,它的值被加密。实施例(它已经URL解码):SWT令牌解密声明的值

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name=mYuAaeTWh6vbXFGCMZPqeTm5dpPnq8e3MaB2cmiwBWQ=&http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier=mYuAaeTWh6vbXFGCMZPqeTm5dpPnq8e3MaB2cmiwBWQ=&http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider=uri:WindowsLiveID&Audience=owl:service&ExpiresOn=1329848740&Issuer=https://wk-owl-access.accesscontrol.windows.net/&HMACSHA256=6Anfv5K47I1e+FkwrnA8/5ZIvlnjfUanFZsDB/p/0J0= 

根据权利要求像http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name被加密。我如何解密它?

回答

1

你的名字标识符没有加密,它被散列。不幸的是,LiveID不会为唯一的ID发出任何用户声明,这些ID是针对每个向其颁发令牌(本例中为ACS)的受众散列的。内置于ACS

其他身份提供者问题的主张,但摆脱的LiveID要求,我相信你将需要使用新的实时连接REST API http://msdn.microsoft.com/en-us/library/live/hh243648.aspx不幸的是这的LiveID登录API尚未与ACS集成,你会直接与它进行交互。

有趣的是你的名字和nameidentifier声称是一样的。您是否有ACS中的规则输出liveID发出的nameidentifier作为名称声明?

+0

谢谢安德鲁!你是对的,我创建了ACS的规则来将nameidentifier复制到名字上 – Glaxalg 2012-02-28 23:18:08