如何使用 OpenIdConnectMiddleware 设置受众?

Gei*_*erg 4 c# openid-connect auth0 asp.net-core

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

我已经按照这个指南通过Auth0实现了身份验证,并且可以成功登录。

现在我想使用检索到的访问令牌来访问单独的 API;为此,我需要audience在使用 Auth0 授权时包含一个参数,如此处所述

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

Gei*_*erg 6

Jerrie Pelser 的这篇博文中找到了答案。我需要使用OnRedirectToIdentityProvider事件处理程序来设置audience

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