我正在将OData服务集成到ACS中。一切正常,但是当我在授权中得到令牌时,头值是加密的。示例(它已经被URL解码):
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一样的声明是加密的。我怎么能破解它?
发布于 2012-02-28 17:32:55
您的名标识符不是加密的,而是散列的。不幸的是,LiveID不会发出任何用户声明,只会向每个用户发出散列的唯一ID (在本例中为ACS)。
其他内置于ACS的身份提供者确实会发出声明,但是要从LiveID获得声明,我相信您需要使用新的Live http://msdn.microsoft.com/en-us/library/live/hh243648.aspx,不幸的是,这个LiveID登录API还没有与ACS集成,您必须直接与它交互。
有趣的是,您的名称和名称标识符声明是相同的。您在ACS中是否有一条规则输出liveID发出的名标识符作为名称声明?
https://stackoverflow.com/questions/9387064
复制相似问题