Azure active directory EasyAuth在不同主机上具有水疗和AzureFunction
我正在尝试将EasyAuth(aad)与SPA结合使用,SPA目前位于“localhost:8080”上,Azure函数托管在Azure({Function app})中.azurewebsites.net。目的是让SPA调用Azure函数上的安全端点。因此,我将Azure函数注册为AD中的应用程序,SPA中的身份验证重定向到Azure函数EasyAuth端点似乎正在工作,但通过Azure active directory EasyAuth在不同主机上具有水疗和AzureFunction,azure-active-directory,azure-functions,easy-auth,Azure Active Directory,Azure Functions,Easy Auth,我正在尝试将EasyAuth(aad)与SPA结合使用,SPA目前位于“localhost:8080”上,Azure函数托管在Azure({Function app})中.azurewebsites.net。目的是让SPA调用Azure函数上的安全端点。因此,我将Azure函数注册为AD中的应用程序,SPA中的身份验证重定向到Azure函数EasyAuth端点似乎正在工作,但通过登录后重定向\u url重定向回本地主机SPA不可用 我添加了http://localhost:8080将AAD注册的
登录后重定向\u url重定向回本地主机SPA代码>不可用
我添加了http://localhost:8080
将AAD注册的应用程序作为允许的重定向URI。但是,如果我完全限定URL,我将被重定向回{function host}/.auth/login/done
。是否期望SPA在与azure功能相同的主机名下运行,或者是否有方法将设置配置为允许SPA主机的任何URL
行为
对于行为期间的HTTP数据,一旦登录成功,。在重定向到默认完成页面并停止之前,auth/login/aad/callback
将加载以下内容
- 响应头
位置
={function host}/.auth/login/done
- 表格数据:
状态
=http://localhost:8080
code
=验证代码
id\u令牌
=auth令牌
我在温泉里怎么称呼它的
函数processAuthCheck(xmlhttp){
if(xmlhttp.status==401){
url=“https://{function app}.azurewebsites.net/.auth/login/aad?”
+“post_login_redirect_url=“+encodeURI(”http://localhost:8080");
window.location=url;
}else if(xmlhttp.status!=200){
警报(“此服务有错误!”);
返回;
}
var result=JSON.parse(xmlhttp.responseText);
log(JSON.stringify(result));
返回;
};
关于此问题,请参考以下步骤
注册Azure AD应用程序以使用easy auth保护Azure功能
注册客户端应用程序
a
b、 在隐式授权和混合流部分,选择ID令牌和访问令牌
c、 配置API权限
代码
a、 将Azure AD auth集成到spa应用程序中。完成此操作后,当用户访问您的应用程序时,他们需要输入其AD帐户以获取访问令牌
b、 客户端将此accessToken
交换为“应用服务令牌”。它通过向https://{App}.azurewebsites.net/.auth/login/aad
发送帖子,内容为{access\u Token:“{Token from Azure AD}”}
。这将返回身份验证令牌
c、 在名为x-zumo-auth
的标题中使用该authenticationToken
。使用该标题向函数应用程序发出所有请求
有关更多详细信息,请参阅和。关于如何在spa中实施Azure广告,请参阅。我有一种感觉,这就是我必须要去的地方,但我不(现在仍然不)理解第二次注册的必要性。如果你能在这个答案中添加一些关于为什么的内容,那么这将是一个很好的答案。