Angular 是否可以在Azure APIM上编写自定义代码
我使用Angular SPA和Azure广告进行身份验证。我的要求是,如果用户未通过身份验证,则应直接将其重定向到MS登录页面,而无需在浏览器上下载SPA。(因为AuthGaurd也只有在下载SPA后才能工作,SPA页面将在一段时间内可见 我想首先在APIM重定向SPA,在APIM我检查用户是否经过身份验证。如果用户没有经过身份验证,我会将ir重定向到MS登录页面 1-我可以在APIM中写这样的登录吗? 2-这种方法会影响令牌刷新的静默身份验证吗(我在客户端使用MSAL)? 3-在第一次请求时不下载SPA的情况下,还有什么最佳方法可以重定向到MS登录页面Angular 是否可以在Azure APIM上编写自定义代码,angular,azure,azure-api-management,msal,Angular,Azure,Azure Api Management,Msal,我使用Angular SPA和Azure广告进行身份验证。我的要求是,如果用户未通过身份验证,则应直接将其重定向到MS登录页面,而无需在浏览器上下载SPA。(因为AuthGaurd也只有在下载SPA后才能工作,SPA页面将在一段时间内可见 我想首先在APIM重定向SPA,在APIM我检查用户是否经过身份验证。如果用户没有经过身份验证,我会将ir重定向到MS登录页面 1-我可以在APIM中写这样的登录吗? 2-这种方法会影响令牌刷新的静默身份验证吗(我在客户端使用MSAL)? 3-在第一次请求时不
我刚刚分析并试图找出最佳方法,但可以找到一个具体的解决方案,在不下载SPA的情况下重定向到MS登录页面。虽然Azure API管理主要是为API设计的,但仍然可以在其背后托管您的SPA。有两个关键点需要注意
入站
范围中使用,并在中将用户重定向到登录页面
此外,由于此时没有加载任何JavaScript,因此必须使用一个重定向uri
,它返回到APIM并在标头中设置返回的访问令牌,然后验证jwt
由于验证将成功,它现在将加载index.html
,并且在响应中,您将希望有一个Set Cookie
头将访问令牌返回到浏览器,并将在其他资源(和API调用)的后续请求中自动发送
使用此类cookie,您的JS无法访问令牌,但cookie将在所有请求中发送到同一个域,APIM可以提取该域。
因此,您可以从应用程序中删除MSAL代码
我不确定API管理是否是这项工作的合适工具。当会话未经身份验证时,您基本上希望在某个URL上实现重定向?