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

Posted

技术标签:

【中文标题】如何使用 OpenIdConnect 中间件设置受众?【英文标题】:How can I set audience with OpenIdConnectMiddleware? 【发布时间】:2018-06-13 02:40:13 【问题描述】:

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

我已经关注this guide通过Auth0实现认证,可以成功登录。

现在我想使用检索到的访问令牌来访问单独的 API;为此,我需要在使用 Auth0、as described here 进行授权时包含一个 audience 参数。

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于如何使用 OpenIdConnect 中间件设置受众?的主要内容,如果未能解决你的问题,请参考以下文章

OWIN OpenIdConnect 中间件 IDX10311 随机数无法验证

如何将 Azure OpenIdConnect OWIN 中间件 Cookie Auth 转换为 SPA 应用程序的 JavaScript JWT?

Microsoft OpenIdConnect Owin 响应

OpenIdConnect 错误 - 租户标识符可能不是空的 GUID

Azure AD B2C OpenIdConnect ConfigurationManager 错误

OpenID Connect - 在这种情况下是不是应该将 id 令牌发送到受保护的资源?