如何使用 OpenIdConnect 中间件设置受众?

How can I set audience with OpenIdConnectMiddleware?

我在 ASP.NET Core 2.0 应用程序中使用 OpenIdConnectMiddleware,使用 Auth0 作为身份验证。

我已经按照this guide实现了Auth0认证,可以成功登录

现在我想使用检索到的访问令牌来访问一个单独的 API;为此,我需要在使用 Auth0 as described here.

授权时包含一个 audience 参数

由于 OpenID Connect 中间件使用 Auth0 处理授权,并且 OpenIdConnectOptions 上没有 Audience 设置,我如何指定应该传递给的 audience 参数/authorize 端点?

this blog post from Jerrie Pelser 中找到了答案。我需要使用 OnRedirectToIdentityProvider 事件处理程序来设置 audience:

options.Events = new OpenIdConnectEvents {
    OnRedirectToIdentityProvider = context => {
        context.ProtocolMessage.SetParameter("audience", "https://my/api");
        return Task.CompletedTask;
    },
    ...
}