【问题标题】:SWT token decrypt claim's valueSWT 令牌解密声明的值
【发布时间】:2012-03-12 07:47:14
【问题描述】:

我正在将 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 这样的声明是加密的。如何解密?

【问题讨论】:

    标签: c# wif acs


    【解决方案1】:

    您的姓名标识符没有加密,它是经过哈希处理的。不幸的是,LiveID 不会发布任何用户声明,除了一个唯一 ID,该 ID 为它向其颁发令牌的每个受众(在本例中为 ACS)进行哈希处理。

    ACS 中内置的其他身份提供程序确实会发出声明,但要从 LiveID 获取声明,我相信您需要使用新的 Live Connect REST API http://msdn.microsoft.com/en-us/library/live/hh243648.aspx 不幸的是,此 LiveID 登录 API 尚未与 ACS 集成,您可以必须直接与之交互。

    有趣的是,您的 name 和 nameidentifier 声明是相同的。您在 ACS 中是否有将 liveID 颁发的名称标识符作为名称声明输出的规则?

    【讨论】:

    • 谢谢 Andrew!你说得对,我在 ACS 上创建了将 nameidentifier 复制到 name 的规则
    猜你喜欢
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 2020-05-19
    • 2021-04-30
    • 2021-04-21
    • 2021-02-13
    相关资源
    最近更新 更多