azure - 是否可以匿名调用API App并自动将浏览器重定向到AD登录页面?

标签 azure azure-web-app-service azure-api-apps azure-api-management

最近在伦敦举行的 Microsoft Cloud 路演期间,关于应用服务的一场演讲中提到了使用 AAD B2C 进行身份验证。

目前可以添加 Azure AD 作为 API 应用程序的身份验证:

enter image description here

从基于浏览器的 Web 应用程序调用此 API 应用程序(没有授权 header )会导致 302 重定向,随后立即出现 401 响应。

在云事件中提到,可以从 Web 应用程序匿名调用 API 应用程序,并让 azure 应用程序服务处理到 AAD 登录页面的重定向,在成功登录时获取 token ,然后通过调用 API 应用程序并返回数据。

但是,我正在努力了解如何在调用 Web 应用程序不承担处理重定向的任何责任的情况下实现这一目标。通常,您可以通过在客户端通过 AAD 获取不记名 token 并将其作为授权 header 与 api 请求一起发送来处理来自 API 的 401 响应。

我在 Azure 网站和其他网站上查看了许多示例,所有这些示例都在客户端 Web 应用程序中处理登录/获取 token 。

这可能吗?

最佳答案

更新我刚刚意识到(正如@Darrel-Miller 所指出的,您实际上并不希望允许用户输入凭据。

我唯一不清楚的是,您想在哪里提供 AAD 的凭据?您到底想要完成什么。

更重要的是,如果根本没有用户交互,为什么还要使用 AAD。 如果您想要的只是安全连接,则可以仅使用 Web api 的标准应用程序 key ,而无需启用 AAD。只需将 MS_ApplicationKey 添加到 header 中即可,非常简单。

正如您在评论中所描述的,您有一个网络客户端尝试执行请求并获取 302,这就是为什么我最初的答案是您将使用 ADAL。但现在我更深入地了解你想要什么,你可能想要使用的是 KurveJS : https://github.com/MicrosoftDX/kurvejs

它具有 AAD 应用程序模型 v2 和 Active Directory B2C。

这样可以轻松添加第三方身份提供商(例如 Facebook)以及使用 AD B2C 策略的注册/登录/个人资料编辑体验

您可以在这里阅读更多相关信息: https://github.com/MicrosoftDX/kurvejs/blob/master/docs/B2C/intro.md

<小时/>

你是这个意思吗? https://msdn.microsoft.com/en-us/magazine/dn463788.aspx

只需使用 ADAL nuget 包来处理调用...

您可以从帖子中阅读此内容:

执行完成对 AcquireToken 的调用后,您将看到图 8 中所示的身份验证对话框。ADAL 负责联系正确的端点并在弹出对话框中呈现服务器提供的身份验证体验,而无需要求您编写任何 UI 代码。

我希望这对你有用!

关于azure - 是否可以匿名调用API App并自动将浏览器重定向到AD登录页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35895449/

相关文章:

c# - 通过 Azure SignalR 连接 .net6 Web 服务和 .net6 wpf 应用程序

c# - Azure Web 角色启动时 IIS Express 失败

azure - Azure 上的多个网站/角色,临时服务器的影响

Azure 应用服务 Java - 发布上传请求因大小而失败

python - 在 Azure Web Apps 中设置 Python 服务器

azure - Azure 中的 "You do not have permission to view this directory or page"错误

javascript - Azure Active Directory API 中的错误重定向 URI

azure - 在 asp.net core 和 Angular 应用程序中处理过期的 Azure AD session

ajax - Web API CORS 选项仅在 azure 上随机返回 500

c# - 如何从 Azure API 应用程序解决方案生成 swagger 元数据文件?