单点登录ASP身份保护多个应用程序

时间:2016-11-28 13:32:21

标签: c# asp.net security single-sign-on adfs

我对我可用的单点登录选项不熟悉。我目前要求在同一产品系列中保护多个应用程序集,并且不知道从哪里开始。

一些基本要求是

  1. 用户应该能够进行一次身份验证,并根据凭据将用户重定向到所需的应用程序
  2. 管理员可以使用中央管理控制台来简化角色分配,并根据需要授予对各种应用程序的访问权。
  3. 用户可以注册某些应用程序,但某些敏感应用程序需要管理员批准才能成功登录。
  4. 此SSO还应使用某种权限逻辑来保护API,例如:只有主管角色才能删除记录
  5. 用户应该可以注册OAuth提供商,例如Facebook,Twitter,Google& Windows live。
  6. SSO提供商应该很容易实现到多种平台,例如Windows Apps,Web Apps,Mobile&服务
  7. 我不知道从哪里开始,我已经快速阅读了类似ADFS https://msdn.microsoft.com/en-us/library/bb897402.aspx之类的内容,但是如果这符合上述所有列出的要求,则无需IDEA。

    任何帮助我指向正确方向的人都会非常感激!!

1 个答案:

答案 0 :(得分:1)

你混淆了两个独立的概念,即:

  • 验证
  • 供应

ADFS只做前者。您需要一个Identity Manager(IM)来执行后者。

所以:

  
    

用户应该能够进行一次身份验证,并根据凭据将用户重定向到所需的应用程序

  

我将专注于微软世界。 ADFS和Azure AD都可以执行此操作。用户 - >申请 - > IDP - 验证 - >回到申请

  
    

管理员应该可以使用中央管理控制台来简化角色分配,并根据需要授予对各种应用程序的访问权限

  

IM功能。 AAD可以进行组分配,但实际上没有工作流程。您可以使用Windows Server中的“Active Directory用户控件”手动编辑ADFS使用的AD属性。

  
    

用户可以注册某些应用程序,但某些敏感应用程序需要管理员批准才能成功登录。

  

IM - 需要工作流程

  
    

此SSO还应使用某种权限逻辑来保护API,例如:只有主管角色才能删除记录

  

这两者都是。 ADFS 4.0(Server 2016)可以像AAD一样保护Web API。删除角色的方法如上所述。

  
    

用户应该可以注册OAuth提供商,例如Facebook,Twitter,Google& Windows直播。

  

微软的社交互动有限。您可以使用AAD添加一些社交提供程序。我使用Auth0和联邦,因为它有大量的社交提供商。 Azure B2C可能在这里有用。

  
    

SSO提供商应该很容易实现到多种平台,例如Windows Apps,Web Apps,Mobile&服务

  

对于网络应用,您可以使用SAML,WS-Fed,OpenID Connect&的OAuth。

对于Windows Apps,您可以使用OpenID Connect&的OAuth。

对于手机和手机服务,你可以使用OpenID Connect&的OAuth。 (注意有四种流程可以满足不同的情况)。

ADFS 4.0(Server 2016)和AAD可以支持以上所有内容。