单一登录-为多个组织提供服务(ADFS和Form Auth混合)

本文关键字:ADFS 服务 Form 混合 Auth 登录 单一 | 更新日期: 2023-09-27 17:58:05

我想开发一个集中的应用程序,不同的组织用户可以登录我的网站并在稍后执行操作。我将从中生成报告并将其提供给每个组织。我正在维护我自己的SQL数据库,在那里我将保存所有组织颁发者、证书指纹详细信息等……我能够根据组织id动态发送signinRequest。但是,当我从他们的ADFS服务器返回令牌时,我需要在我的web.config中添加以下详细信息来验证令牌。我不想在我的web.config中公开这些细节,原因有二。-安全[我需要配置所有组织的详细信息,这可能会导致一些欺诈访问]-性能[如果我有100个组织要使用我的应用程序,是否建议在我的配置中配置所有问题权限。它会影响性能]

    <issuerNameRegistry type=”System.IdentityModel.Tokens.ValidatingIssuerNameRegistry, System.IdentityModel.Tokens.ValidatingIssuerNameRegistry”>
   < authority name=”name”>
    <keys>
    <add thumbprint="{Org 1 thumbprint}"/>
    <add thumbprint="{Org 2 thumbprint}"/>
    <add thumbprint="{Org 3 thumbprint}"/>
    </keys>
    <validIssuers>
    <add name="http://test.login.edu/adfs/service/trust&quot;>
    <add name="Org 3 url">
    <add name="Org 4 url">
    <add name="Org 5 url">
    </validIssuers>
    </authority>
    </issuerNameRegistry>

非常感谢你的帮助谢谢Jeevitha

单一登录-为多个组织提供服务(ADFS和Form Auth混合)

经过一些研究,我提出了解决方案,它也很好。。

我将在我的网络中有以下设置,配置。[我的自定义类从发卡行进行返回令牌验证]

 <issuerNameRegistry type="ADFS_Lib.AccessControlServiceIssuerNameRegistry, ADFS_Lib">
      </issuerNameRegistry>

在我的类中,我将重写IssuerRegistry calss GetIssuerName方法,并验证数据库中的返回令牌和颁发者,无论是否配置了

 public class AccessControlServiceIssuerNameRegistry : IssuerNameRegistry
    {
 public override string GetIssuerName(SecurityToken securityToken, string requestedIssuerName)
        {
//here my DB validation code goes 
}