Angular 获得;Microsoft Internet Explorer';s增强的安全配置……”;尝试使用MSAL执行Azure DevOps API时出错
我正在编写angular.io应用程序,它将在Azure DevOps中调用rest API。我正在使用MSAL库,它几乎可以正常工作。我成功地验证并调用了Azure DevOps API,我看到MSAL HTTP拦截器向请求添加了一个承载令牌(通过Chrome开发者工具) Azure以302将我重定向到Angular 获得;Microsoft Internet Explorer';s增强的安全配置……”;尝试使用MSAL执行Azure DevOps API时出错,angular,azure,internet-explorer,azure-devops,msal,Angular,Azure,Internet Explorer,Azure Devops,Msal,我正在编写angular.io应用程序,它将在Azure DevOps中调用rest API。我正在使用MSAL库,它几乎可以正常工作。我成功地验证并调用了Azure DevOps API,我看到MSAL HTTP拦截器向请求添加了一个承载令牌(通过Chrome开发者工具) Azure以302将我重定向到https://spsprodcus1.vssps.visualstudio.com/_signin。我可以看到,承载令牌也随此请求一起发送。这个地址给了我一个203,上面写着: Microso
https://spsprodcus1.vssps.visualstudio.com/_signin
。我可以看到,承载令牌也随此请求一起发送。这个地址给了我一个203,上面写着:
Microsoft Internet Explorer的增强安全配置为
当前已在您的环境上启用。这增强了安全级别
阻止我们的web集成体验显示或执行
正确地要继续操作,请禁用此选项
配置或与管理员联系
似乎我的应用程序没有权限在DevOps中进行操作。在我为此注册并指向MSAL的应用程序中,在“API权限”中,我授予了对“Azure DevOps(1)”的访问权限
我能做些什么呢
--编辑
下面是我的令牌解码的内容(带有一些密文)。我没有对它做任何事情,MSAL似乎在对我的授权请求的响应中从location报头获取它,并将它放在restful调用的授权报头中(前缀为“Bearer”)
你核对过这个答案了吗?谢谢你的回答,塞巴斯蒂安,我确实看过那篇文章了。在我的例子中,我使用的是MSAL(用于对Azure进行身份验证和处理令牌的microsoft库),因此大部分内容都是通过该库为我处理的。我认为它运行得相当好,因为它将令牌附加到我的请求中。因此,除非我不使用库的该部分,否则我无法控制令牌的制作和连接方式,但我希望问题是我使用库不正确,或者Azure端的某些配置不正确,无法允许访问。你可以尝试将相关站点添加到受信任的站点。有关详细信息,请参阅。此外,203个错误通常是由不正确的PAT格式引起的。谢谢你的评论,Hugh,我查看了受信任的站点文章并将microsoft站点设置为受信任的站点,但这并没有修复它。我发布了我要传递给DevOps的令牌,它的格式对我来说似乎是正确的,但我不知道其中需要包含什么。
https://dev.azure.com/my org/my project/my team/_apis/wit/wiql/my query id?api-version=5.1
{
"typ": "JWT",
"alg": "RS256",
"x5t": "encoded Stuff",
"kid": "encoded Stuff"
}
{
"aud": "api://44df9afb-cf92-4965-9378-05317e85ab96",
"iss": "https://sts.windows.net/GUID/",
"iat": 1585087477,
"nbf": 1585087477,
"exp": 1585091377,
"acr": "1",
"aio": "encoded Stuff",
"amr": [
"wia"
],
"appid": "id of the app I registered",
"appidacr": "0",
"family_name": "Rispoli",
"given_name": "Thomas",
"in_corp": "true",
"ipaddr": "ip address",
"name": "Rispoli, Thomas",
"oid": "encoded Stuff",
"onprem_sid": "encoded Stuff",
"scp": "user_impersonation",
"sub": "encoded Stuff",
"tid": "encoded Stuff",
"unique_name": "thomas.rispoli@cgi.com",
"upn": "thomas.rispoli@cgi.com",
"uti": "encoded Stuff",
"ver": "1.0"
} Then some binary data that I assume is a nounce