Web API:授权或/和身份验证

时间:2015-10-14 10:22:55

标签: api authentication oauth authorization hmac

我创建了asp.net web api项目。我需要添加授权或/和身份验证。我已经阅读了很多关于OAuth,SAML,JWT,HMAC等的内容。每次我看到作者都强调OAuth不是身份验证而你需要将authN与authZ区分开来。我有点困惑,因为我不明白:

  1. 当我需要使用身份验证(SSO,登录/密码)和授权(OAuth,令牌)API时?
  2. 是HMAC,JWT用于授权还是用于身份验证?因为它们已签名,我可以将userid添加到此令牌中,例如用户标识符
  3. authN工作流程与authZ工作流程之间的真正区别是什么?

1 个答案:

答案 0 :(得分:1)

OAuth还可以使用资源所有者授权对用户进行身份验证(即客户端获取访问令牌提供用户+密码凭证)。

生成的访问令牌是您应该调用的授权,因为它将包含描述权限,权限掩码或角色的声明等信息(这取决于您的授权方案)在你的解决方案中实施。)

JWT (JSON Web令牌)只是访问令牌和任何其他相关信息的JSON表示。 JWT 是某些身份验证结果的内容,可用于对某些资源进行授权。由于 JWT 包含访问令牌,如果您使用的是基本授权,则会在您的请求中添加Authorization标头:{ {1}}。