2016-04-05 15 views
0

我们的应用使用oauth2 & openid连接用于身份验证&验证。它是使用调用REST API的角度客户端构建的。我想知道如何授权访问该API,基于拥有一个不可猜测的网址。Oauth2:根据电子邮件中不可猜测的网址授权访问

我会再解释一遍。在应用程序中,用户可以邀请其他用户。发生这种情况时,会将电子邮件发送给第二个用户。当用户2点击电子邮件中的链接时,他被发送到具有关于该邀请的详细信息的网页。

只允许用户2看到邀请页面。我打算通过在电子邮件中使用'不可猜测的网址'来解决这个问题。在访问url时,用户必须以某种方式被授权从API获取邀请详细信息。

问题:如何基于知道不可猜测的url来授权用户?如何在加载页面时分配索赔,以及如何在随后的API调用中验证此索赔?我看到的唯一解决方案是设置包含令牌的cookie。但这不符合我们现有的认证机制。我更喜欢不写我自己的令牌验证码,并让身份提供商处理这个问题。

附加信息:用户2在系统中可能有也可能没有帐户,他可能会也可能不会登录。也不应阻止用户看到邀请详细信息。换句话说:完全不知名的用户应该能够看到该页面。网址的知识应该是唯一的要求。

对此问题的任何解决方案?或者我处理所有错误?

回答

0

经过询问后,普遍的共识是不让外部认证机制来处理这个问题,而是自己来验证这个连接。

解决的办法是在某些类型的令牌中调用url的不可猜测部分('link id'),这可以在调用API时进行验证。这由API本身完成,而不是由Identity Server完成。

适用于邀请问题:创建邀请时,将链接ID与一些​​信息(即允许的访问类型(邀请访问)以及邀请的ID)一起存储。当用户调用API获取邀请时,传递链接ID进行验证。将邀请ID与存储在链接中的邀请ID进行匹配,如果不匹配,则抛出错误。

相关问题