多个客户端使用Active Directory进行身份验证

时间:2015-03-17 06:28:09

标签: c# android .net active-directory adfs

我使用的客户端有一个现有的Active Directory用于其员工信息,他们希望创建一个可以使用存储在Active Directory中的信息登录的应用程序。该应用程序应具有Web(.NET),移动(Android和iphone)以及可选的桌面界面。

之前我还没有使用过Active Directory。我做了一些关于Active Directory的研究,这是我目前所理解的:

有两种方法可以使用Active Directory进行身份验证:

  • 通过LDAP :对于.NET,可以使用System.DirectoryServices(和 System.DirectoryServices.AccountManagement)命名空间类到
    执行身份验证对于android,iphone,我想会有一些 这些平台中的库可以对Active Directory进行LDAP查询(任何 建议?)
  • 通过ADFS 作为身份提供者:据我所知,ADFS是AD的一个扩展,提供SSO功能,它可以配置为身份提供者,这是正确的吗?因此.NET,Android,iphone客户端可以使用他们的库通过ADFS与Active Directory进行oauth / openid身份验证

我的理解是否正确?哪条路更好?为什么要使用一个而不是另一个? Azure AD如何进入这张图片?

1 个答案:

答案 0 :(得分:1)

基本上是的。

ADFS 3.0支持OAuth2 - 早期版本不支持。

请注意,有许多身份提供商可以使用AD,例如shibboleth和PingFederate。

如果您想要SSO并且您的.NET应用程序是基于声明的(即WIF),那么请使用ADFS。您基本上将身份验证外包给受信任且经过验证的安全系统,然后您将获得一个包含所需AD属性的签名令牌。 ADFS还提供与其他STS联合的能力,例如Azure AD。

在移动设备方面,请查看Azure AD Authentication Library for .NET

使用AD,您必须自己完成所有这些操作。由您来获取AD属性。你需要考虑如何确保安全。

使用ADFS,您可以将用户与AAD同步,从而在云端使用您的内部部署凭据。