我正在评估上述三种身份管理技术,并希望尝试找出优点/缺点,并了解何时应该使用IdentityServer3而不是其他技术。我有三种情况:
答案 0 :(得分:1)
根据身份识别服务器的创建者布罗克艾伦的说法:
嗯,区分IdentityServer的主要因素是能力 自定义整个令牌服务并控制用户 数据。 SaaS产品在定制方面非常有限,因为对于 大多数情况下,他们不允许您上传任意代码进行更改或更改 行为,他们经常封装用户数据库。在 另一方面,这意味着您必须托管IdSvr(可以是云端) 托管)你需要为你的用户建立一个数据库。所以,如果你 需要控制,IdSvr是一个不错的选择。
另外,我应该注意,IdSvr经常与之配合使用 其他身份提供者(如ADFS或AAD)。 IdSvr部署在 在应用程序和最终的IdP之间,再次,通常允许 应用程序需要的自定义,但仍然是集中的 合并。
免责声明:我调查了这个供我工作的公司使用,我有必须迎合的现有基础设施,所以我选择的解决方案是朝这个方向倾斜的。即便如此,我也试图在研究过程中对自己的想法进行公正的总结。
Azure Active Directory是一种托管身份解决方案,因此设置要少得多(特别是如果像我一样,您发现自己已经在Office 365中使用它)。开箱即用,它提供了一些非常好的功能,可以让你很快开始。
高级版本具有监控和报告功能(Connect Health),因此您可以看到谁登录到您的系统,它具有双因素身份验证,身份管理网站和Microsoft正在监控登录(有点像cloudflare for身份),所以它理论上应该提供一些额外的安全性。但是,UI的自定义非常基础,您必须为高级功能付费,并使用Azure门户进行身份管理(如果您使用免费版本)是一种痛苦。
文档非常好,GitHub上有样本,Microsoft开发人员积极监控有用的问题。我发现一些有用的链接:
IdentityServer是身份管理的瑞士军刀。它可以做任何事情,但需要少量的设置和更多的身份空间知识。它可以完成我上面列出的大部分内容以及更多内容。
必须注意的是,即使您使用的是Azure Active Directory,仍然有理由选择我最初没有考虑过的IdentityServer。例如,如果您有多个用户数据源,例如您正在使用AD以及用户的SQL数据库,然后IdentityServer可用于指向这两个用户信息源。从理论上讲,它也应该更容易从AD切换到其他东西,因为它解耦了东西。
项目正在积极开发中,包含所有身份验证流程的代码示例,您可以从社区获得答案。我发现一些有用的链接:
事实:安全很难。进行身份验证的方法有很多种,称为流量。我把这个link放在这里因为我发现它对理解它们非常有用。
尽管我工作的公司使用AWS,但我还是非常年轻,因此我对AWS Directory Services打了折扣。我们还使用Office 365,因此我发现我们已经有一个Azure Active Directory链接到本地活动目录服务器。即便如此,IdentityServer仍然是一个有效的竞争者,原因我上面解释过。我们仍在试用两种解决方案......
您决定选择的内容完全取决于您遇到的问题。你应该选择哪个?嗯,这取决于开发人员的数量,时间,金钱和精力,你可以花费这些来设置它。没有一种尺寸适合所有解决方案。实际上,上述两种产品的差异在于SaaS和PaaS解决方案之间的差异。