Oauth2:根据电子邮件

时间:2016-04-05 09:53:38

标签: rest security oauth oauth-2.0 claims

我们的应用程序使用 oauth2&用于auth& auth的openid connect 。它是使用调用REST API的角度客户端构建的。我想知道如何授权访问API,基于拥有一个不可思议的网址。

我会再解释一下这个。在应用程序中,用户可以邀请其他用户。发生这种情况时,会向第二个用户发送一封电子邮件。当用户2单击电子邮件中的链接时,他将被发送到包含邀请详细信息的网页。

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

问题:如何基于知道不可提交的网址来授权用户?如何在加载网页时分配声明,以及如何在API调用中验证此声明接下来呢?我看到的唯一解决方案是设置一个包含令牌的cookie。但这与我们现有的身份验证机制不符。我不想编写自己的令牌验证码,让身份提供商处理这个问题。

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

解决这个问题的方法是什么?或者我处理错了吗?

1 个答案:

答案 0 :(得分:0)

在询问之后,普遍的共识是不要让外部auth机制处理这个问题,而是自己验证链接。

解决方案是在某种令牌中转换网址的不可用部分('链接ID'),这可以在调用API时进行验证。这是由API本身完成的,而不是由Identity Server完成的。

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