我正在努力学习Web API和API的一般方法。
目前,我正在调查身份验证。
我知道API身份验证和授权有多种方法。最常见的似乎是不记名令牌。
我也看到了SAML,我也知道x509(从我的WCF时代开始)。
我今天想谈谈不记名令牌。承载令牌作为标头传递。标题未加密可能没有加密?因此,有人可能会抓住所述标记并在未经同意的情况下冒充用户。这是我对持有人令牌的看法。今天许多流行的服务似乎都使用这种身份验证方法来实现API。
除了持票人令牌之外还有哪些其他选择但是或多或少与HMAC消息一样安全?
我似乎对许多身份验证方法了解不多。我试图了解更多,并希望构建一个非常安全的API,允许SSO(单点登录) - 如果承载令牌是要走的路,那么很好,它是非常容易和开箱即用的解决方案。如果有更好,更安全的东西,即使工作和时间远远超过持票人,我仍然愿意接受。
我不知道为什么我不喜欢不记名令牌的声音,但它似乎很容易被攻击和利用。特别是对于支付相关类型的服务。
谢谢!
答案 0 :(得分:3)
标头使用HTTPS加密 - 对于安全性而言,Bearer令牌非常好,我现在正在我的企业应用程序中使用它。
答案 1 :(得分:2)
承载令牌作为标头传递。标题未加密,因此,某人可能会抓住所述标记并在未经同意的情况下冒充用户。
虽然这可能并不总是理想的解决方案,但您可以确保只使用https传递数据。根据{{3}}(本文实际上建议不要使用承载令牌),如果使用HTTPS传递,标头信息将保持安全。此外,您可以在需要再次使用时将自己的加密算法添加到令牌或敏感数据中 见Eran Hammer