【问题标题】:Azure API app with OAuth security does not accept accesToken具有 OAuth 安全性的 Azure API 应用程序不接受 accessToken
【发布时间】:2019-12-13 11:39:45
【问题描述】:

首先,我没有使用 API 管理。我只有一个托管在 Azure 中的 API dot net core 应用程序。现在我想用不记名令牌 (OAuth) 保护应用程序。出于某种原因,我可以打开和关闭身份验证/授权,但是这样做时,对 API 的调用会将我重定向到从 Chrome 重新飞行的登录页面。

因此,我的网站托管在 www.a.com,API 端点服务于 www.b.com(天蓝色托管网站)。 Chrome 正在向 api 应用程序发出预检,并且 azure 以重定向响应。

我的设置实际上非常简单和标准。我有一个作为静态站点托管的 VueJS 前端,它使用 azure AD 进行登录。成功登录后,我也想调用托管在 Azure 中的 API。这个 API 必须是安全的。不知何故,我似乎无法让这个相当简单的配置工作。

我已经在 azure 中注册了应用程序,我已经创建了范围,并为 API 应用程序中定义的范围提供了 vuejs webclient 管理员同意,但我似乎无法使用来自 webclient 的 accesstoken 从 API 应用程序调用 API。

有人帮忙吗?

问候和感谢

约翰。

【问题讨论】:

  • 其实我的问题很简单。我有一个 VueJS cdn 托管网站,它调用托管在 Azure(其他域)中的 API 应用程序。我想公开一个安全的 API。由于 CORS 问题,存在预检请求。这个实际请求以 302 重定向响应到登录页面:-/我已经有一个令牌,我想继续使用 accesstoken 执行实际请求.....

标签: azure oauth azure-api-apps


【解决方案1】:

您可以将 JWT 身份验证令牌存储在使用 iframe 连接到主页的中间域的 cookie/localStorage 中。

1.对example1.com中的用户进行身份验证,将他重定向到sso.example.com中的身份验证服务器,身份验证后发出JWT并将其存储在该域的localStorage中。之后,将用户重定向到源域example1.com

2.在example2.com 中创建一个指向sso.example.com 的iframe。 sso.example.com 中的 iframe 读取 JWT 令牌并向父页面发送消息

3.父页面收到消息并获取附加的令牌继续SSO流程。

为了简化开发,我们最近在https://github.com/Aralink/ssojwt发布了一个带有 JWT 的跨域 SSO

更多详情可以参考这个article

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    • 2011-08-24
    • 2018-12-26
    • 2016-12-11
    • 1970-01-01
    • 2010-09-25
    • 2013-06-14
    相关资源
    最近更新 更多