OpenID,如何开发提供者
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenID,如何开发提供者相关的知识,希望对你有一定的参考价值。
目前我正在开发一些基础架构,并且我已经实现了自己的RESTful身份验证机制。
现在我想到,也许我不应该采用这种方式并使用行业标准,因此与我的项目的互操作性在认证和授权方面可能是微不足道的,也更容易理解。
在查看了一些google搜索的文章并在Stackoverflow中阅读了一些问答后,我找不到如何成为OpenID提供商 - 我不是在谈论使用Google,Windows Live,Facebook Connect等认证用户,我想开发一个启用OpenID的系统,如果有人想注册我的服务,他们将在我自己的域中进行 - 。
实际上我的问题是:任何人都可以成为OpenID提供商,并且DotNetOpenAuth是一个库,可以在您自己的基础架构中开发此协议吗?
谢谢。
在组织的网站环境中开发OpenID提供程序作为单点登录(SSO)的手段是一种非常有效的方案。 DotNetOpenAuth附带了一对示例网站(提供商和依赖方),展示了单点登录关系。它们被称为OpenIdWebRingSsoProvider和OpenIdWebRingSsoRelyingParty。
请不要自己尝试实施OpenID,而不是自己实施SSL。正确获取OpenID安全性和互操作性需要很长时间和深层次的领域知识。 DotNetOpenAuth特别为您提供编程访问,可以使用OpenID执行您想要的任何操作,并且由于它是免费的,因此很难出错。
披露:我是DotNetOpenAuth背后的开发人员。
实际上我的问题是:任何人都可以成为OpenID提供商,并且DotNetOpenAuth是一个库,可以在您自己的基础架构中开发此协议吗?
- How to become an OpenID Provider
- DotNetOpenAuth有一些小问题,但是在.NET下使用它是一个很好的工具
如果你认为你可以做到,你可以遵循:
最后,也是最具挑战性的是在您的软件和帐户管理工具中实施OpenID的自定义支持。虽然这种方法当然可以最大程度地控制用户体验,但它也是最危险的,仅适用于具有Web安全性的开发人员。首先回顾一下规格和文档。
但我的问题永远是:
为什么还有一个提供者Facebook,Google,MyOpenID,...已经拥有它,并且有很多用户(即使没有他们知道)有一个OpenID登录...
StackExchange is an OpenID provider从前一段时间开始,但是...有很多用户通过StackExchange平台。您是否正在开发这样一个大型社区,因此创建和实施您自己的提供商是合理的吗?
我看到答案已经有几年了。如果您正在寻找使用Microsoft技术堆栈构建OpenID提供程序的最新解决方案,IdentityServer是开源选项。可以使用它并构建一个Open ID connect Identity提供程序。
有关如何使用和构建的文档:https://identityserver4.readthedocs.io/en/latest/
IdentityServer4是ASP.NET Core 2的OpenID Connect和OAuth 2.0框架。
它可以在您的应用程序中启用以下功能:
身份验证即服务所有应用程序(Web,本机,移动设备,服务)的集中登录逻辑和工作流程。 IdentityServer是OpenID Connect的官方认证实现。
单点登录/注销单点登录(和退出)多种应用程序类型。
API的访问控制为各种类型的客户端发布API的访问令牌,例如服务器到服务器,Web应用程序,SPA和本机/移动应用程序。
联合网关支持外部身份提供程序,如Azure Active Directory,Google,Facebook等。这可以使您的应用程序免受如何连接到这些外部提供程序的详细信息的影响。
专注于定制最重要的部分 - IdentityServer的许多方面都可以根据您的需求进行定制。由于IdentityServer是一个框架而不是盒装产品或SaaS,因此您可以编写代码以使系统适应您的方案。
成熟的开源IdentityServer使用允许的Apache 2许可证,允许在其上构建商业产品。它也是.NET Foundation的一部分,它提供治理和法律支持。
以上是关于OpenID,如何开发提供者的主要内容,如果未能解决你的问题,请参考以下文章