我以下列方式使用ADFS 3.0中支持的授权流程,
但是,访问令牌缺少用户身份,MyService无法识别用户。
访问令牌具有以下JWT信息。
{" aud":" urn:依赖:party:trust:identifier",
" ISS&#34 ;: " http://ms.cloud.com/adfs/services/trust&#34 ;,
" iat":1452875046,
" exp":1452878646,
" auth_time":" 2016-01-15T15:35:20.248Z",
" authmethod&#34 ;: "瓮:绿洲:名称:TC:SAML:2.0:AC:类:PasswordProtectedTransport&#34 ;,
" ver":" 1.0",
" appid":" my-app" }
有人可以告诉我,一旦从ADFS获取访问令牌,MyService如何识别用户?
答案 0 :(得分:2)
依赖方信任中的声明规则需要定义要作为JWT令牌的一部分发送的声明。一旦我们添加了电子邮件,名称等的声明规则,该信息就会添加到JWT访问令牌中。
答案 1 :(得分:1)
在ADFS中编辑Active Directory的声明提供程序信任以通过电子邮件,名称等。
编辑信赖方信托的声明。对于电子邮件,名称等,使用LDAP作为规则类型添加匹配的颁发转换规则,并选择Active Directory作为属性存储源。通过重复上述与您的JWT客户端关联的信赖方信任的步骤来执行此操作。 要添加信赖方声明,请参阅此视频并跳至时间索引14:35 Edit Relying Party Claim Rules
我建议将SAM-Account-Name传递给http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name。我依稀记得,如果你不这样做,WIF就会有一些问题。
此外,如果您还没有在Active Directory上启用声明支持,则必须启用声明支持。