2

在最近在伦敦举行的 Microsoft Cloud 路演期间,关于应用服务的一次会谈中出现了使用 AAD B2C 进行身份验证的内容。

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

在此处输入图像描述

从没有授权标头的基于浏览器的 Web 应用程序调用此 API 应用程序会立即导致 302 重定向,然后是 401 响应。

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

但是,我很难看到如何在调用 Web 应用程序不负责处理重定向的情况下实现这一点。通常,您将通过在客户端通过 AAD 获取不记名令牌并将其作为授权标头与 api 请求一起发送来处理来自 API 的 401 响应。

我在 Azure 站点和其他站点上经历了许多示例,所有示例都在客户端 Web 应用程序中处理登录/获取令牌。

这甚至可能吗?

4

1 回答 1

1

更新我刚刚意识到(正如@Darrel-Miller 指出的那样,您真的不想让用户输入凭据。

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

更重要的是,如果根本没有用户交互,为什么还要使用 AAD。如果您想要的只是安全连接,您可以只使用 Web api 的标准应用程序密钥,而无需启用 AAD。只需将 MS_ApplicationKey 添加到您的标题中,您就可以开始了。

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

它具有带有 Active Directoy B2C 的 AAD 应用程序模型 v2。

这使得使用 AD B2C 策略添加第三方身份提供商(如 Facebook)和注册/登录/个人资料编辑体验变得容易

您可以在此处阅读更多相关信息: 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 代码。

我希望这对你有用!

于 2016-03-09T22:19:59.483 回答