IdentityServer3与Azure Active Directory与AWS Directory Services

时间:2015-11-04 21:32:13

标签: azure-active-directory identityserver3 aws-directory-services

我正在评估上述三种身份管理技术,并希望尝试找出优点/缺点,并了解何时应该使用IdentityServer3而不是其他技术。我有三种情况:

  • 内部MVC客户端到Web API
  • 外部电话客户端到Web API
  • 内部Web API到Web API

1 个答案:

答案 0 :(得分:1)

Brock Allen的评论:

根据身份识别服务器的创建者布罗克艾伦的说法:

  

嗯,区分IdentityServer的主要因素是能力   自定义整个令牌服务并控制用户   数据。 SaaS产品在定制方面非常有限,因为对于   大多数情况下,他们不允许您上传任意代码进行更改或更改   行为,他们经常封装用户数据库。在   另一方面,这意味着您必须托管IdSvr(可以是云端)   托管)你需要为你的用户建立一个数据库。所以,如果你   需要控制,IdSvr是一个不错的选择。

     

另外,我应该注意,IdSvr经常与之配合使用   其他身份提供者(如ADFS或AAD)。 IdSvr部署在   在应用程序和最终的IdP之间,再次,通常允许   应用程序需要的自定义,但仍然是集中的   合并。

Source

我自己的发现

免责声明:我调查了这个供我工作的公司使用,我有必须迎合的现有基础设施,所以我选择的解决方案是朝这个方向倾斜的。即便如此,我也试图在研究过程中对自己的想法进行公正的总结。

Azure Active Directory

Azure Active Directory是一种托管身份解决方案,因此设置要少得多(特别是如果像我一样,您发现自己已经在Office 365中使用它)。开箱即用,它提供了一些非常好的功能,可以让你很快开始。

高级版本具有监控和报告功能(Connect Health),因此您可以看到谁登录到您的系统,它具有双因素身份验证,身份管理网站和Microsoft正在监控登录(有点像cloudflare for身份),所以它理论上应该提供一些额外的安全性。但是,UI的自定义非常基础,您必须为高级功能付费,并使用Azure门户进行身份管理(如果您使用免费版本)是一种痛苦。

文档非常好,GitHub上有样本,Microsoft开发人员积极监控有用的问题。我发现一些有用的链接:

IdentityServer

IdentityServer是身份管理的瑞士军刀。它可以做任何事情,但需要少量的设置和更多的身份空间知识。它可以完成我上面列出的大部分内容以及更多内容。

必须注意的是,即使您使用的是Azure Active Directory,仍然有理由选择我最初没有考虑过的IdentityServer。例如,如果您有多个用户数据源,例如您正在使用AD以及用户的SQL数据库,然后IdentityServer可用于指向这两个用户信息源。从理论上讲,它也应该更容易从AD切换到其他东西,因为它解耦了东西。

项目正在积极开发中,包含所有身份验证流程的代码示例,您可以从社区获得答案。我发现一些有用的链接:

身份验证流程

事实:安全很难。进行身份验证的方法有很多种,称为流量。我把这个link放在这里因为我发现它对理解它们非常有用。

Auth Flows

摘要

尽管我工作的公司使用AWS,但我还是非常年轻,因此我对AWS Directory Services打了折扣。我们还使用Office 365,因此我发现我们已经有一个Azure Active Directory链接到本地​​活动目录服务器。即便如此,IdentityServer仍然是一个有效的竞争者,原因我上面解释过。我们仍在试用两种解决方案......

您决定选择的内容完全取决于您遇到的问题。你应该选择哪个?嗯,这取决于开发人员的数量,时间,金钱和精力,你可以花费这些来设置它。没有一种尺寸适合所有解决方案。实际上,上述两种产品的差异在于SaaS和PaaS解决方案之间的差异。