相关疑难解决方法(0)

基本HTTP和承载令牌认证

我目前正在开发一个REST-API,它为开发环境提供HTTP-Basic保护.由于真正的身份验证是通过令牌完成的,我仍然试图找出,如何发送两个授权头.

我试过这个:

curl -i http://dev.myapp.com/api/users \
  -H "Authorization: Basic Ym9zY236Ym9zY28=" \
  -H "Authorization: Bearer mytoken123"
Run Code Online (Sandbox Code Playgroud)

我可以为我的IP禁用HTTP身份验证,但由于我通常在具有动态IP的不同环境中工作,这不是一个好的解决方案.我错过了什么吗?

rest curl restful-authentication basic-authentication access-token

105
推荐指数
4
解决办法
29万
查看次数

HTTP"授权"标头的多种身份验证方案

对于我们的api用户,我们需要两种身份验证:

  • 验证api-user(移动设备,合作伙伴集成)
  • 验证特定的"普通"用户,该用户拥有我们这方面的数据

标准挑战与响应是通过WWW-AuthenticateAuthorizationHeaders 处理的.我想重用这个.

我有以下用例:在第一级我们验证api用户(例如移动设备),对于一些api-actions我们还需要验证用户(例如移动设备的用户).因此,我们有一个特殊情况,我们需要"同时"两个身份验证方案.

查看http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html我看不到在"授权"标题中有两个不同的方案是可能的.


// I just made up delimiter ';'
Authorization: Digest .... ; CustomXXX ...

我是否正确,如果有的话还有其他选择吗?

security rest http

12
推荐指数
1
解决办法
4797
查看次数

如何在节点js中验证服务器端的google身份验证令牌?

我的前端应用程序使用gmail帐户进行身份验证.

我在身份验证成功后检索id_token,并将其作为授权标头发送为承载令牌.

例如 http:// localhost:4000/api

授权承载token_id

nodejs服务器端,我调用以下方法来验证令牌.

exports.verifyUser = function(req, res, next) {
    var GoogleAuth = require('google-auth-library');
    var auth = new GoogleAuth();
    var client = new auth.OAuth2(config.passport.google.clientID, config.passport.google.clientSecret, config.passport.google.callbackURL);
    // check header or url parameters or post parameters for token
    var token = "";
    var tokenHeader = req.headers["authorization"];
    var items = tokenHeader.split(/[ ]+/);
    if (items.length > 1 && items[0].trim().toLowerCase() == "bearer") {
        token = items[1];
    }
    if (token) { …
Run Code Online (Sandbox Code Playgroud)

javascript api google-authentication node.js google-signin

9
推荐指数
1
解决办法
5808
查看次数

keycloak auth/admin/master/console/whoami 401(未经授权)

由于一些组织限制,我的 DNS 服务器在将请求传递到服务器之前会执行基本的身份验证凭据检查。这是为了避免不需要的请求到达应用程序服务器。

为了正确加载应用程序的公共部分,我已将 Auth-Headers 添加到应用程序层的请求中,以便只有第一个/新的命中需要凭据

在此输入图像描述

但是我无法登录并查看网站的私人部分。

我有一个在 docker 容器中运行的 keycloak,虽然当我在组织网络内部时它工作正常,但是从网络外部我在 auth/admin/master/console/whoami 请求上收到 401(未经授权)。

我可以看到,对于该请求,用 keycloak 身份验证的令牌替换了授权标头,因此该请求被 DNS 阻止,并且永远不会到达我的服务器。

在此输入图像描述

我该如何解决这个问题?我如何告诉 keycloak 在其请求中发送另一个授权标头及其标头。像这里那样多个 HTTP 授权标头?(如果这确实是一个解决方案?)

keycloak

5
推荐指数
1
解决办法
2180
查看次数