我正在处理一个Angular SPA,需要使用AD FS进行身份验证。我正在使用Spring Boot作为后端。
this.oauthService.configure({
redirectUri: window.location.origin + '/app/search',
requireHttps: true,
scope: 'openid profile email',
responseType: 'id_token token',
oidc: true,
clientId: environment.adfsClientId,
loginUrl: environment.adfsUrl + '/oauth2/authorize',
issuer: environment.adfsUrl,
logoutUrl:
environment.adfsUrl +
'/ls/?wa=wsignoutcleanup1.0&wreply=' +
location.protocol +
'//' +
location.hostname +
(location.port ? ':' + location.port : ''),
postLogoutRedirectUri:
location.protocol +
'//' +
location.hostname +
(location.port ? ':' + location.port : ''),
});
上面给出的是配置。我下面的this作为参考。
但我得到下面的错误。
加载发现文档时出错O {标题:h,状态:0,状态文本:“未知错误”,url:“https://adfs_domain/adfs/. well-known/openid-configuration”,确定:false,...}错误:进度事件{是受信任的:false,长度可计算:false,已加载:0,总计:0,类型:“错误”,...}个标题:h {标准化名称:Map(0),延迟更新:空,标头:Map(0)}消息:“针对https://adfs_domain/adfs/. well-known/openid-configuration的Http失败响应:0未知错误”名称:“HttpErrorResponse”成功:假状态:0状态文本:“未知错误”URL:“您的计算机上有一个文件夹。”
注意:我可以从浏览器访问相同的URL https://adfs_domain/adfs/. well-known/openid-configuration。配置中的颁发者URL和浏览器中的响应也相同。
有谁能帮忙吗?
2条答案
按热度按时间brjng4g31#
这将是一个CORS问题,其中ADFS不允许从SPA的Web源向发现端点发出跨域请求。
请参阅本文档中的item 4。所有授权服务器都有为SPA客户端启用CORS的选项,尽管该选项在ADFS中似乎有点麻烦。
cclgggtu2#
我之所以遇到这个问题,是因为我的应用程序的HTTP_INTERCEPTORS。
这对我很有效。