Oauth 2.0 未从ADFS 3.0获取OAuth2访问令牌中使用的JWT中的用户标识

Oauth 2.0 未从ADFS 3.0获取OAuth2访问令牌中使用的JWT中的用户标识,oauth-2.0,adfs3.0,Oauth 2.0,Adfs3.0,我以以下方式使用ADFS 3.0中支持的授权流 浏览器连接到MyService MyService将浏览器重定向到OAuth的ADFS 浏览器连接到用于OAuth授权代码的ADFS ADFS通过浏览器对用户进行身份验证 ADFS将浏览器重定向回MyService以及授权代码 浏览器连接到MyService并传递授权令牌 MyService连接到ADFS并从授权令牌获取访问令牌 但是,访问令牌缺少用户标识,MyService无法识别用户 访问令牌具有以下JWT信息 {“aud”:“urn:依赖方:

我以以下方式使用ADFS 3.0中支持的授权流

  • 浏览器连接到MyService
  • MyService将浏览器重定向到OAuth的ADFS
  • 浏览器连接到用于OAuth授权代码的ADFS
  • ADFS通过浏览器对用户进行身份验证
  • ADFS将浏览器重定向回MyService以及授权代码
  • 浏览器连接到MyService并传递授权令牌
  • MyService连接到ADFS并从授权令牌获取访问令牌
  • 但是,访问令牌缺少用户标识,MyService无法识别用户

    访问令牌具有以下JWT信息

    {“aud”:“urn:依赖方:信任方:标识符”,
    “国际空间站”: “”,
    “iat”:1452875046,
    “exp”:1452878646,
    “认证时间”:“2016-01-15T15:35:20.248Z”,
    “授权方法”: “urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport”,
    “版本”:“1.0”,
    “appid”:“我的应用” }


    有人能告诉我,一旦MyService从ADFS获得访问令牌,它如何识别用户?

    依赖方信任中的声明规则需要定义作为JWT令牌一部分发送的声明。一旦我们添加了电子邮件、姓名等的声明规则,这些信息就被添加到JWT访问令牌中

  • 编辑ADFS中Active Directory的索赔提供商信任,以传递电子邮件、姓名等

    • 打开ADFS。单击“索赔提供者信托”。点击“活动目录”。
    • 然后,单击右侧的“编辑索赔规则”。 现在应该可以看到“编辑索赔”对话框。 有关添加索赔的说明,请参阅本视频。跳到时间索引2:40。
  • 编辑依赖方信托的索赔。对于电子邮件、名称等,使用LDAP作为规则类型添加匹配的发布转换规则,并选择Active Directory作为属性存储源。通过对与您的JWT客户端关联的依赖方信任重复上述步骤来完成此操作。 要添加依赖方索赔,请参阅此视频并跳至时间索引14:35

  • 我建议通过as传递SAM帐户名。我模模糊糊地记得,如果你不知道的话,我和索赔人之间有问题


    此外,如果尚未在Active Directory上启用索赔支持,则必须启用该功能。

    我们现在遇到了类似的问题,索赔规则是什么,您是如何添加的?谢谢,我对如何解决这个问题的详细说明非常感兴趣。我尝试添加它们,玩弄各种索赔规则,但它们似乎都不会影响JWT令牌包含的内容。还有指针吗也许我没有正确理解“依赖方”的概念。