2012-02-21 96 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