在访问令牌中包含身份声明

include an identity claim in access token

如何使用 DotNetOpenAuth 在访问令牌中包含身份声明?特别是电子邮件声明。

很清楚如何提出范围声明(因此在响应中它会类似于范围=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress:myemail@some.host),但在我看来这样做是不正确地使用范围。我正在使用 grant_type=密码流。

另一种方法是通过 OpenID Connect 协议从客户端应用发出额外的 UserInfo 请求,但我不想要任何额外的请求。

理想情况下,我需要将 属性 添加到 AccessToken class,或者将电子邮件添加到其 ExtraData 属性。

DNOA 4.1+可以实现,DNOA 4.0没有这个功能

可以将 OAuth2AuthorizationServer.CreateAccessToken 方法中的自定义值放入 ExtraData 属性。然后可以从 StandardAccessTokenAnalyzer.DeserializeAccessToken 或覆盖 ResourceServer.GetAccessToken.

获得这些值