【问题标题】:ASP.NET Core 2.0 resource access_tokenASP.NET Core 2.0 资源 access_token
【发布时间】:2017-09-18 06:44:01
【问题描述】:

如何获取给定资源(例如 Power BI)的 OpenIdConnectParameterNames.AccessToken

我在 VS2017 中创建了一个新的 ASP.NET Core 2.0 MVC 项目,它使用 AAD 进行身份验证。给定一个经过身份验证的用户,我需要获取一个资源 access_token 以便我可以对所述资源进行 Web api 调用。

对于我的具体情况,我正在尝试访问 Power BI 内容,但这也适用于其他资源,例如 graphQL。

到目前为止,我已经设法获得了一个 idtoken,不幸的是它似乎没有针对资源进行身份验证。我尝试获取 access_token 的结果是 null

【问题讨论】:

    标签: c# asp.net-core-mvc azure-active-directory powerbi asp.net-core-2.0


    【解决方案1】:

    您应该使用 ADAL/MSAL 在 OpenID Connect OWIN 中间件的OnAuthorizationCodeReceived 事件中获取访问令牌。并确保您已将 OpenIdConnect Options 的响应类型设置为“code id_token”以实现 Hybrid flow 。使用 ADAL 库,在 AcquireTokenByAuthorizationCodeAsync 函数中指定资源(您的方案中的 PowerBi 休息端点)。

    请参考文章:ASP.NET Core 2.0 Azure AD Authentication。@juunas 提供了本文的解释和代码示例。

    【讨论】:

    • 谢谢!我正要链接到同一篇文章 :) 出于某种原因,OnAuthorizationCodeReceived 事件似乎从未使用我开始使用的代码触发。在引用github.com/juunas11/aspnetcore2aadauth 之后,我能够让它工作。再次感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    • 2021-03-07
    • 2021-12-29
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    相关资源
    最近更新 更多