微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用Openiddict进行自省以返回诸如电子邮件之类的信息

如何解决如何使用Openiddict进行自省以返回诸如电子邮件之类的信息

是否有一种方法可以配置OpenIDDict以为自省端点调用返回有效载荷中的其他字段?当前,它只是回传active,client_id,exp,iat,iss,jti,nbf,sub,token_type,token_usage等字段。

我确认〜/ connect / authorization终结点主体在调用“ return SignIn(principal,OpenIddictServerAspNetCoreDefaults.AuthenticationScheme);”之前具有电子邮件声明。

我确认〜/ connect / token终结点主体在调用“ return SignIn(principal,OpenIddictServerAspNetCoreDefaults.AuthenticationScheme);”之前具有电子邮件声明。

由于以上两个语句,我假设不透明令牌中将包含电子邮件。自省端点不应该在有效负载中包含电子邮件信息吗?

我想为第三方资源服务器提供一个电子邮件值,以便能够识别向其颁发访问令牌的用户

解决方法

可能非常敏感的应用程序声明只有在满足以下所有条件的情况下,才由OpenIddict 3.0返回:

  • 声明存在于访问令牌中。这意味着您必须在呼叫SignIn之前为他们分配“ access_token”目的地。

  • 发送自省请求的应用程序在调用SignIn(即您称为principal.SetResources("client_id of the API doing introspection"))时被明确列为资源。

  • 进行自省的API已注册为机密客户端(即,被迫发送有效的client_secret以能够自省令牌)。

如果您想自定义自省响应,则可以使用事件模型API:

options.AddEventHandler<HandleIntrospectionRequestContext>(builder =>
{
    builder.UseInlineHandler(context =>
    {
        context.Claims["key"] = 42;

        return default;
    });

    builder.SetOrder(AttachApplicationClaims.Descriptor.Order + 1_000);
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。