访问我们API的第三方应用程序的用户是否必须登录我们,即使他们已经使用他们的系统进行身份验证?



我们有一个开发移动应用程序的第三方公司,他们想称呼我们的API。我们的API受使用OpenID Connect和OAuth2的Identity Server 4保护。为了访问我们的API,他们的应用程序是否必须弹出一个移动浏览器,以便用户可以登录我们的系统?如果用户已经对第三方的身份提供商进行了身份验证,该怎么办?似乎这将创建负面的用户体验,以在使用应用程序时对两个不同的时间进行身份验证。

我的理解是,我们将使用授权代码授予在身份服务器中添加他们的应用程序。我们可以将他们的身份提供商添加为我们的身份服务器可以调用的身份提供商吗?

对此的任何帮助将不胜感激。我已经研究了一个洞。

他们的应用程序是否必须弹出一个移动浏览器,以便用户可以登录我们的系统?

您的假设几乎是正确的,即他们的应用程序必须以某种方式启动OIDC流程,以允许移动应用程序的用户使用API(身份提供者(的授权进行身份验证。

似乎会创造一个负面的用户体验,以在使用应用程序时对两个不同的时间进行身份验证。

看来这就是阻碍您退缩的原因。首先,该移动应用程序的身份提供商与您的API的权威分开,重要的是要了解,使用其他身份提供商对API的"用户"验证均接近API,因为该令牌已由其他权威发行,并且不是。即使是您的用户群的"用户"。

我的理解是,我们将使用授权代码授予在身份服务器中添加他们的应用程序。

是的,但是还可以使用PKCE检查授权代码授予,以添加额外的安全措施。

我们是否可以将他们的身份提供商添加为我们的身份服务器可以调用的身份提供商?

是的,您将需要做到这一点,但这只是您要实现所需的目标所需要做的事情的开始。因为您已经拥有身份服务器4,所以我认为您的系统已经拥有已建立的用户群,因此,如果您只是重定向到外部身份提供商,一旦用户对那里进行了身份验证并将令牌发出后,则它们的回报 - 这没什么意思,因为您没有任何意义第三方系统的用户没有任何形式的映射到系统的用户。

身份服务器4中几乎没有什么可以帮助您解决此问题的方法,但是解决此问题的一种方法是实现某种帐户链接机制,用户首先必须"链接"他们在您的系统中使用第三方系统中的帐户帐户。通过链接帐户,您将有意发出与您的系统相关的索赔。

Identity Server 4绝对具有包装解决方案。如果他们没有,将他们称为OAuth 2.0框架是什么?

您不需要像所述的那样启动OIDC流。无论如何,这是什么意思?OIDC是连接协议,而不是流程。流包括混合动力,隐式,客户端的等等。

您可以为您的第三方应用程序获得一个访问令牌身份服务器4令牌端点通过他们想要访问的客户端,您提供的共享秘密以及他们试图访问的API范围,传递client_credentials赠款类型。

另一个选项是您可以在身份服务器4上为此客户端创建一个用户,然后通过击中"密码授予类型,clientID,用户名和密码"的令牌端点来使用resourceWownerPassword流量获得访问令牌他们想访问的API范围。

有关如何完成上述所有操作的信息,请查看他的链接。它将在路上帮助您。

http://docs.indistityserver.io/en/latest/endpoints/token.html

相关内容

最新更新