为什么以及何时应该使用像 Auth0 或 Azure AD B2C 这样的身份提供者,而不是仅仅将用户凭据存储在我的数据库中?
Why and when should I use an Identity Provider like Auth0 or Azure AD B2C instead of just storing the user credentials within my database?
我正在开发一个 ASP.NET 核心 API,并且我正在尝试尽我所能完成身份验证和授权部分。我正在研究 OAuth 2 和 OpenIDConnect(此时是非常初步的研究)。但是从 API 开发人员的角度来看,通过在此过程中插入身份提供者(如 Auth0 或 Azure AD B2C)而不是仅使用某种形式的加密存储用户凭据,我可以获得什么?
此外,Oauth 2 似乎允许许多流程,API 的工作是否与消耗该 API 的应用程序流程有关?似乎有点不合理。我想要的只是有一种安全的方式来存储用户凭据,并允许我的 API 的用户在使用和操作 API 的其他服务中的资源之前执行身份验证和授权。
我知道身份验证和授权是应用程序中的敏感主题,因为它们处理安全问题,我正计划构建一个处理敏感财务操作的应用程序。这就是我选择 Auth0 和 Azure AD B2C 的原因。但老实说,我在尝试理解像这样的身份提供者会给 table 带来什么时遇到了一些麻烦,我知道它们会带来一些重要的东西,我只需要一些帮助来了解什么以及为什么应该我用它们。
what can I gain from inserting an Identity Provider like Auth0 or Azure AD B2C in the process instead of just storing the user credentials using some form of cryptography?
好吧,您可以自由选择不在数据库中存储凭据。
这些服务提供商很可能比您更关心他们的安全。
您获得的另一件事是单点登录。
许多应用程序可以为用户使用相同的身份提供者,因此用户只需登录一次即可使用所有应用程序。
当然不是零成本,OAuth/OIDC里面有复杂性。
但也不是构建您自己的用户商店。
Also, Oauth 2 seems to allow many flows, is the job of the API to be concerned with the flow of the application consuming that API? Seems a bit unreasonable.
不,API 通常不关心调用者使用什么流程。
它关心的是它收到一个有效的访问令牌,其中包含访问特定资源的必要权限。
选择要使用的流是客户端应用程序的关注点。
But to be honest I'm having a little trouble trying to understand what Identity Providers like these will bring to the table, I know they'll bring something of importance, I just need some help to see what and why should I use them.
嗯,这是我想到的事情:
- 更好的安全性(很可能,它不仅仅是关于密码哈希算法等)
- 更好的 SLA(构建像 Auth0 这样的 99.95% SLA 服务并不便宜)
- 可靠的业绩记录
- 单点登录
- 用户使用单一身份访问您的所有应用程序,可以轻松禁用他们的帐户,同时阻止对所有应用程序的访问
- 可以轻松添加对与其他身份提供商的联合身份验证的支持
- 无需在您的应用中存储密码哈希等
- 现成的管理工具(否则您需要构建)
添加到@juunas:
- AI 主动监控用户访问并禁用不可靠的登录,例如从相隔一分钟的美国和俄罗斯登录
- 报告和统计数据。
- 密码保护,例如不允许出现违规的密码
- 门户和 API 用户 CRUD
- 艺术硕士
- 自助密码重置
- 无密码支持
- Fido 2 支持
我正在开发一个 ASP.NET 核心 API,并且我正在尝试尽我所能完成身份验证和授权部分。我正在研究 OAuth 2 和 OpenIDConnect(此时是非常初步的研究)。但是从 API 开发人员的角度来看,通过在此过程中插入身份提供者(如 Auth0 或 Azure AD B2C)而不是仅使用某种形式的加密存储用户凭据,我可以获得什么?
此外,Oauth 2 似乎允许许多流程,API 的工作是否与消耗该 API 的应用程序流程有关?似乎有点不合理。我想要的只是有一种安全的方式来存储用户凭据,并允许我的 API 的用户在使用和操作 API 的其他服务中的资源之前执行身份验证和授权。
我知道身份验证和授权是应用程序中的敏感主题,因为它们处理安全问题,我正计划构建一个处理敏感财务操作的应用程序。这就是我选择 Auth0 和 Azure AD B2C 的原因。但老实说,我在尝试理解像这样的身份提供者会给 table 带来什么时遇到了一些麻烦,我知道它们会带来一些重要的东西,我只需要一些帮助来了解什么以及为什么应该我用它们。
what can I gain from inserting an Identity Provider like Auth0 or Azure AD B2C in the process instead of just storing the user credentials using some form of cryptography?
好吧,您可以自由选择不在数据库中存储凭据。 这些服务提供商很可能比您更关心他们的安全。 您获得的另一件事是单点登录。 许多应用程序可以为用户使用相同的身份提供者,因此用户只需登录一次即可使用所有应用程序。
当然不是零成本,OAuth/OIDC里面有复杂性。 但也不是构建您自己的用户商店。
Also, Oauth 2 seems to allow many flows, is the job of the API to be concerned with the flow of the application consuming that API? Seems a bit unreasonable.
不,API 通常不关心调用者使用什么流程。 它关心的是它收到一个有效的访问令牌,其中包含访问特定资源的必要权限。 选择要使用的流是客户端应用程序的关注点。
But to be honest I'm having a little trouble trying to understand what Identity Providers like these will bring to the table, I know they'll bring something of importance, I just need some help to see what and why should I use them.
嗯,这是我想到的事情:
- 更好的安全性(很可能,它不仅仅是关于密码哈希算法等)
- 更好的 SLA(构建像 Auth0 这样的 99.95% SLA 服务并不便宜)
- 可靠的业绩记录
- 单点登录
- 用户使用单一身份访问您的所有应用程序,可以轻松禁用他们的帐户,同时阻止对所有应用程序的访问
- 可以轻松添加对与其他身份提供商的联合身份验证的支持
- 无需在您的应用中存储密码哈希等
- 现成的管理工具(否则您需要构建)
添加到@juunas:
- AI 主动监控用户访问并禁用不可靠的登录,例如从相隔一分钟的美国和俄罗斯登录
- 报告和统计数据。
- 密码保护,例如不允许出现违规的密码
- 门户和 API 用户 CRUD
- 艺术硕士
- 自助密码重置
- 无密码支持
- Fido 2 支持