oauth-2.0 加载发现文档时出错-使用angular-oauth2-oidc集成AD FS

rnmwe5a2  于 2022-10-31  发布在  Angular
关注(0)|答案(2)|浏览(222)

我正在处理一个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和浏览器中的响应也相同。
有谁能帮忙吗?

brjng4g3

brjng4g31#

这将是一个CORS问题,其中ADFS不允许从SPA的Web源向发现端点发出跨域请求。

  • 如果发现端点从浏览器工作,则SSL证书没有问题
  • 但在浏览器中访问发现端点不是跨域请求

请参阅本文档中的item 4。所有授权服务器都有为SPA客户端启用CORS的选项,尽管该选项在ADFS中似乎有点麻烦。

cclgggtu

cclgggtu2#

我之所以遇到这个问题,是因为我的应用程序的HTTP_INTERCEPTORS。

  • 尝试删除拦截器并再次测试
  • 使用正确的版本来为您的应用程序提供oidc

这对我很有效。

相关问题