我有一个.NET核心应用程序,它包含一个在React JS中作为单页面应用程序编写的Web前端,并由.NET Core API服务应用程序提供支持以提供它的数据 . 它们在IIS中作为单独的应用程序部署,因此URL就像这样 .
https://example.com/FooBar
https://example.com/FooBarAPI
我的任务是将FooBar站点与我们的企业SSO集成,后者使用SAML并对ADFS进行身份验证 . 他们为我提供了一个来自ADFS的元数据xml文件,根据我的理解,这个元数据包含了我需要放入web.config以使其工作的所有细节 . 我在stackoverflow上找到了一些很好的例子,可以保护FooBar站点免受未经授权的访问和使用SSO .
但是javascript需要调用的API应用程序怎么样?这件拼图如何适合? API如何知道JS客户端是同一个应用程序/用户的一部分,并且它们经过身份验证以提出数据请求?
1 回答
Client registration标识JS客户端 . 隐式流及其结果
id_token
标识最终用户 .这些是非常高级的步骤:
注册JS客户端(公共客户端) .
从JS客户端,使用ADFS隐式流来获取最终用户
id_token
.从JS客户端,使用
id_token
调用您的API .This documentation似乎与您的用例相当匹配,并提供了高级概述:
如果我在你的鞋子里,我会首先让我的ADFS租户使用the demo application from that documentation . 然后,我会将其设置转换为我的React / ASP.NET Core应用程序 .