在没有ADAL的情况下从Javascript调用AAD认证的Azure函数?不存在访问控制允许原点标头

在没有ADAL的情况下从Javascript调用AAD认证的Azure函数?不存在访问控制允许原点标头,javascript,authentication,azure-active-directory,azure-functions,adal,Javascript,Authentication,Azure Active Directory,Azure Functions,Adal,是否可以从javascript调用AAD认证的Azure函数,而无需像ADAL这样的身份验证库,也无需向Microsoft注册客户端应用程序 获取此错误:请求的资源上不存在“Access Control Allow Origin”头。来源' 简单web客户端应用程序和azure功能都在同一AAD下注册。两者都拥有azurewebsites.net域 我们能拥有的最轻的web客户端是什么 您收到的错误来自检查。我怀疑在从web应用程序调用函数时会发生这种情况。其思想是浏览器首先发出一个选项请求,以

是否可以从javascript调用AAD认证的Azure函数,而无需像ADAL这样的身份验证库,也无需向Microsoft注册客户端应用程序

获取此错误:请求的资源上不存在“Access Control Allow Origin”头。来源'

简单web客户端应用程序和azure功能都在同一AAD下注册。两者都拥有azurewebsites.net域


我们能拥有的最轻的web客户端是什么

您收到的错误来自检查。我怀疑在从web应用程序调用函数时会发生这种情况。其思想是浏览器首先发出一个选项请求,以查看调用方(web应用程序)是否被允许调用其他域(功能应用程序)上的资源。如果获得批准,那么它将实际调用该函数

所以,我们只需要让函数应用程序响应,让浏览器知道调用是允许的。幸运的是,函数有一个内置的CORS特性。在门户中,为功能应用程序选择平台功能。在API部分下,您将看到一个CORS选项。为功能应用程序添加域,然后单击保存。您应该看到访问控制允许原点错误消失


至于AAD,任何OpenIDConnect客户端库都可以使用——不过,ADAL是一个不错的选择。不过,您可能仍需要创建客户端注册。

您收到的错误来自检查。我怀疑在从web应用程序调用函数时会发生这种情况。其思想是浏览器首先发出一个选项请求,以查看调用方(web应用程序)是否被允许调用其他域(功能应用程序)上的资源。如果获得批准,那么它将实际调用该函数

所以,我们只需要让函数应用程序响应,让浏览器知道调用是允许的。幸运的是,函数有一个内置的CORS特性。在门户中,为功能应用程序选择平台功能。在API部分下,您将看到一个CORS选项。为功能应用程序添加域,然后单击保存。您应该看到访问控制允许原点错误消失


至于AAD,任何OpenIDConnect客户端库都可以使用——不过,ADAL是一个不错的选择。不过,您可能仍然需要创建客户端注册。

在Azure AD中,使用正常的OpenID Connect/OAuth流,您可以通过向
/token
端点发出请求来获取令牌。但是,azure ad端点不支持CORS请求,因此进行AJAX调用以获取访问令牌是不可能的。相反,您可以在一个隐藏的iframe中使用它来获取web API的新标记。有关更多详细信息,请参阅文档和


是的,我建议您使用ADAL.JS,它可以帮助您使用Azure AD来更轻松地处理身份验证。

在Azure AD中,使用正常的OpenID Connect/OAuth流,您可以通过向
/token
端点发出请求来获取令牌。但是,azure ad端点不支持CORS请求,因此进行AJAX调用以获取访问令牌是不可能的。相反,您可以在一个隐藏的iframe中使用它来获取web API的新标记。有关更多详细信息,请参阅文档和


是的,我建议您使用ADAL.JS,这有助于您使用Azure AD以更轻松地处理身份验证。

您可以在没有ADAL的情况下调用,但如果没有在Azure AD上注册应用程序而没有任何身份验证库,这是不可能的?我们一直在尝试,但运气不佳,您知道有任何示例吗?不确定github上是否有任何示例,但它只是OpenID Connect,您是如何尝试的?我们在同一AAD下注册了客户端web应用程序和功能应用程序,但请求的资源上没有“Access Control Allow Origin”标题。请尝试使用带有response\u type=token或response\u type=id\u token的隐式流直接从授权端点获取令牌。Azure ad终结点不支持CORS。您可以在没有ADAL的情况下调用,但如果没有在Azure ad上注册应用程序而没有任何身份验证库,则无法进行调用?我们一直在尝试,但运气不佳,您知道有任何示例吗?不确定github上是否有任何示例,但它只是OpenID Connect,您是如何尝试的?我们在同一AAD下注册了客户端web应用程序和功能应用程序,但请求的资源上没有“Access Control Allow Origin”标题。请尝试使用带有response\u type=token或response\u type=id\u token的隐式流直接从授权端点获取令牌。Azure ad终结点不支持CORS。谢谢。Cors已设置,但仍在失败。附带问题,ADAL要求客户端具有服务器端代码?谢谢。Cors已设置,但仍在失败。附带问题,ADAL要求客户端具有服务器端代码?