Azure AD:将 SPA 与委托用户身份方案混合
Azure AD: Mixing SPA with delegated user identity scenario
我打算开发一个以 Web API 作为后端的单页应用程序,它将代表用户调用其他一些 Web API。但是我很难做到这一点。
我从 MS 查看了这个 list of Azure AD scenarios,但当时的 none 似乎适合我的 case.I 认为我的场景是 SPA 和 "Web Application to Web API" 的混合体link 中的情景。
据我了解,我必须完成 SPA 客户端首先从 Azure AD 身份验证端点检索授权代码和 ID 令牌,然后将它们发送到我的后端。然后后端将请求 Azure AD 令牌端点以获得所需的访问令牌。
这是正确的吗?但是我该怎么做(使用 adal.js)?我只找到使用隐式流程的客户端示例,其中跳过获取授权代码,直接以访问令牌结束。这可能吗?
你的理解已经很接近了。在 Azure Portal (see code sample for help on configuring the scenario), you'll log in a user and request an access token the web API. Then when the web API receives this access token, it can perform an On-Behalf-Of request 中将场景配置为 Azure AD 请求访问下游 Web API。成功后,Azure AD 将向网络 API 颁发一个新的访问令牌,它可用于下游 API。
在支持方面,单页应用程序将需要使用 ADAL.js 来登录用户并获取访问令牌。在 Web API 端,Azure AD 通过 ADAL .NET 和 ADAL Java 支持 On-Behalf-Of flow。一个细微差别是您可能想要保护端点并验证您的网络上的令牌 API,Azure AD 已经为 .NET 构建了一个 OWIN 中间件,但需要一个开源的等同于 Java 网络API。
Here 是行动中的代表流程的一个很好的示例。它有一个单页应用程序和一个调用 .NET web API 的本机应用程序。
我打算开发一个以 Web API 作为后端的单页应用程序,它将代表用户调用其他一些 Web API。但是我很难做到这一点。
我从 MS 查看了这个 list of Azure AD scenarios,但当时的 none 似乎适合我的 case.I 认为我的场景是 SPA 和 "Web Application to Web API" 的混合体link 中的情景。
据我了解,我必须完成 SPA 客户端首先从 Azure AD 身份验证端点检索授权代码和 ID 令牌,然后将它们发送到我的后端。然后后端将请求 Azure AD 令牌端点以获得所需的访问令牌。
这是正确的吗?但是我该怎么做(使用 adal.js)?我只找到使用隐式流程的客户端示例,其中跳过获取授权代码,直接以访问令牌结束。这可能吗?
你的理解已经很接近了。在 Azure Portal (see code sample for help on configuring the scenario), you'll log in a user and request an access token the web API. Then when the web API receives this access token, it can perform an On-Behalf-Of request 中将场景配置为 Azure AD 请求访问下游 Web API。成功后,Azure AD 将向网络 API 颁发一个新的访问令牌,它可用于下游 API。
在支持方面,单页应用程序将需要使用 ADAL.js 来登录用户并获取访问令牌。在 Web API 端,Azure AD 通过 ADAL .NET 和 ADAL Java 支持 On-Behalf-Of flow。一个细微差别是您可能想要保护端点并验证您的网络上的令牌 API,Azure AD 已经为 .NET 构建了一个 OWIN 中间件,但需要一个开源的等同于 Java 网络API。
Here 是行动中的代表流程的一个很好的示例。它有一个单页应用程序和一个调用 .NET web API 的本机应用程序。