标签: authentication

使用 LDAP 在 Laravel 中进行身份验证/登录而无需管理员连接?

我试图让 Laravel 5.4 使用 LDAP 而不是传统的数据库方法对用户进行身份验证。

已经有一个库,Adldap2/Adldap2-Laravel。问题是这个库:

  1. 首先以管理员用户身份连接 LDAP 服务器
  2. 然后搜索想要登录我的应用程序的用户
  3. 检查密码是否正确
  4. 将与该用户关联的数据存储在“本地”Laravel 数据库中
  5. 以管理员用户身份重新连接到 LDAP

这在我的情况下不起作用,因为 LDAP 服务器中没有管理员,我 ?w?a?n?t? 必须连接到;只允许使用该应用程序的用户名,没有角色。

如已存在的问题所示,我LoginController使用以下代码修改了该类(出于测试目的,我试图连接到此网页中提供的服务器:在线 LDAP 测试服务器)。

protected function attemptLogin(Request $request) {
    $conn_settings = config('adldap.connections')[config('adldap_auth.connection')]['connection_settings'];
    $credentials = $request->only(config('adldap_auth.usernames.eloquent'), 'password');

    $user_format = env('ADLDAP_USER_FORMAT', 'uid=%s,' . $conn_settings['base_dn']);
    $userdn = sprintf($user_format, $credentials[config('adldap_auth.usernames.eloquent')]);
    $pass = $credentials['password'];

    if(Adldap::auth()->attempt($userdn, $pass, $bindAsUser = true)) {
        return true;
    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)

我现在遇到的问题是,一旦使用正确的凭据登录,我就会被送回登录表单。当凭据错误时,我会收到相应的错误消息。

我的配置文件,以防万一:

.env:

ADLDAP_CONTROLLERS=ldap.forumsys.com 
ADLDAP_BASEDN=dc=example,dc=com
ADLDAP_USER_FORMAT=uid=%s,dc=example,dc=com
Run Code Online (Sandbox Code Playgroud)

adldap_auth.php:

[
    'connection' => env('ADLDAP_CONNECTION', …
Run Code Online (Sandbox Code Playgroud)

php authentication login ldap laravel

0
推荐指数
1
解决办法
2万
查看次数

Alamofire 中的基本身份验证标头

我有一个受保护的 api,我得到了它的用户名和密码。当我使用 Postman 时,我选择了“Basic Auth”类型,在正文中我有用户登录信息等参数。它工作得很好。

在此处输入图片说明

但是,我正在尝试使用 Alamofire 做同样的事情,但我无法获得正确的 JSON 返回值。这是我所做的:

  // user auth 
  let param = ["mobile":"3", "password":"100200"]
    let urlStr = "http://MyApi.com/api/login"
    let url = URL(string: urlStr)

    // api auth 
    let user = "apiUserName"
    let password = "ApiAuthPassword"


    var headers: HTTPHeaders = ["mobile":"001",
                                "password":"1111"]

    if let authorizationHeader = Request.authorizationHeader(user: user, password: password) {
        headers[authorizationHeader.key] = authorizationHeader.value
    }

    Alamofire.request(url!, headers: headers)
        .responseJSON { response in

            print(response.result.value)
            if let value: AnyObject = response.result.value as AnyObject? {
                //Handle the results as JSON
                print(value) …
Run Code Online (Sandbox Code Playgroud)

authentication json swift alamofire

0
推荐指数
1
解决办法
6514
查看次数

Java Spring 不清楚应该从 SecurityContext 的 getDetails 中得到什么

我如何确定以下行在今天和未来版本的 Spring 中会返回什么?我没有找到有关此的文档。我怎样才能确定 Spring 决定分配给这个字段的内容是什么?

SecurityContextHolder.getContext().getAuthentication().getDetails()
Run Code Online (Sandbox Code Playgroud)

根据这个你可以期待西班牙宗教裁判所

java authentication spring spring-security security-context

0
推荐指数
1
解决办法
459
查看次数

Node.js - 检查用户是否存在

我正在使用 NodeJS 和通行证让用户在看到他们刚刚参加的测验结果之前创建一个帐户。我的挑战是我需要在页面刷新之前确认用户名可用,因为如果发生这种情况,用户将丢失他们的结果。

再次:我需要在刷新之前验证用户名未被占用。

我想我很接近,但它不起作用。我将如何更改我的代码来应对这个挑战?

目前,如果用户名被占用,它会在尝试创建帐户时返回错误,并且用户最终会出现在 /failpage 上,如下所示。

app.post('/quiz', usernameToLowerCase, emailToLowerCase, function(req, res) {


    User.findOne({
        username: req.body.username
    }, function(err, user) {
        if (err) {
            alert(err)
            if (user) {
                alert('this username is already taken. Please choose another.')
                console.log('there was a user');
                return false;

            }
        }
    });

    var user = new User({
        username: req.body.username,
        email: req.body.email,
        password: req.body.password,
    })



    user.save(function(err) {
        console.log('this is the problem' + ' ' + err)
        if (err) {
            return res.redirect('/failpage')
        }


        req.logIn(user, function(err) {
            if (err) { …
Run Code Online (Sandbox Code Playgroud)

authentication mongodb node.js express passport.js

0
推荐指数
1
解决办法
1万
查看次数

Hashicorp Vault 客户端最佳实践

我有一个使用 Hashicorp Vault 来存储用户名和密码秘密的应用程序。应用程序部署到云托管平台并传递令牌作为环境变量。在应用程序启动时,使用令牌从保管库中读取机密,并用于打开与远程服务的会话。远程服务的应用程序和会话是长期存在的。如果一切顺利,应用程序很少重新启动,因此很少从保管库中读取。当应用程序重新启动时,令牌可能已过期,从而导致失败。

是否有关于客户应如何使用保管库的最佳实践指南?令牌生命周期可以延长,但生命周期越长,安全性就越低。应用程序可以在每次需要时重新建立与远程服务的会话,但这将是低效的。有没有我不考虑的另一种选择?任何想法将不胜感激。

security authentication hashicorp-vault

0
推荐指数
1
解决办法
1234
查看次数

对于未经授权的 Web api 调用,Openiddict 返回 404 而不是 401(核心 2.0)

我已经在 .net core 2.0 web api 中设置了 openiddict,并使代码和密码流正常工作。我有测试用例来确保当请求者未经授权查找 401 状态代码时,API 中的锁定操作会被拒绝。

当这些测试运行时,响应是 404 not found 而不是 401,这使我的测试失败。我知道这条路线是正确的,因为它在允许匿名时返回 200。每当我尝试访问任何未经身份验证而锁定的操作时,我都会收到 404。当您尝试访问资源而不进行身份验证时,这是 openiddict 的默认状态吗?无论是从浏览器、邮递员还是测试用例运行,都会发生此行为。如何配置它以返回 401?我在下面提供了我的配置。

services.AddOpenIddict<int>(options =>
{
    options.AddEntityFrameworkCoreStores<ApplicationContext>();
    options.AddMvcBinders();
    options.EnableAuthorizationEndpoint("/connect/authorize");
    options.EnableTokenEndpoint("/connect/token");
    options.AllowAuthorizationCodeFlow();
    options.AllowPasswordFlow();
    options.AllowRefreshTokenFlow();
    options.RequireClientIdentification();
    options.SetAccessTokenLifetime(TimeSpan.FromMinutes(1));
    options.SetRefreshTokenLifetime(TimeSpan.FromMinutes(20160));
    options.DisableHttpsRequirement();
 });
services.AddAuthentication()
    .AddFacebook(o => { o.ClientId = settings.FacebookAppID; o.ClientSecret = settings.FacebookAppSecret; })
    .AddOAuthValidation();
Run Code Online (Sandbox Code Playgroud)

authentication openid-connect openiddict asp.net-core-webapi

0
推荐指数
1
解决办法
1402
查看次数

使用什么样的HTTP身份验证来保护传输到我服务器的数据?

可能重复:
HTTP身份验证的类型以及如何设计安全数据库?

我有一个iphone应用程序,它与我的服务器交换XML数据.

用户第一次运行应用程序时,应用程序将连接到URL并请求用户ID.

我使用HTTP基本身份验证,但是通过一个简单的Web调试器(嗅探器),我能够看到发送/接收来自我的服务器的所有XML表单以及发出用户id的url.

那么我可以做些什么来隐藏所有这些数据而不是用调试器可见?有人建议使用https(http over ssl),但我看到数以百万计的网站/应用程序使用http来做这些事情.我错过了什么吗?我能做些什么才能拥有这种安全保障?

我想要的是避免有人制作脚本并用垃圾填充我的数据库,因为所有内容(URL,XML文件的形式)都是可见的.

php database authentication http ios

-1
推荐指数
1
解决办法
98
查看次数

哈希密码.安全?

我没有要发布的代码,因为这只是一个普遍的问题.

我目前有一个网站,我有身份验证设置.我有网站的成员,我将他们的凭据存储在数据库中.这完全没问题.常识适用于此,我知道我不应该将用户信息存储为纯文本.然而,当我研究的时候,我看到哈希字符串很容易做到.在整个开发过程中,我发现还有一种方法可以解密这些密码,从而引发了我的这个问题.只是哈希密码吗?我应该和它一起做某种加密吗?什么是最佳做法?我没有在网上找到任何好的信息......

string dec = FormsAuthentication.HashPasswordForStoringInConfigFile(Login1.Password, "SHA1"); 提前感谢任何有用的输入.

c# security authentication encryption

-1
推荐指数
1
解决办法
85
查看次数

使用 .p12 创建 CA?

我已经从我的服务器生成了 .p12 文件。但是现在我们正在开发 IOS 应用程序,需要 CA 来实现它。

我们正在使用 Amazon EC 负载均衡器服务器,所以我不知道在哪里可以获得 CA,.p12 是否也可以生成 CA?

authentication ssl ca

-1
推荐指数
1
解决办法
1661
查看次数

Laravel使用GET方法进行身份验证

在我的laravel项目中,我使用zizaco / entrust进行基于角色的身份验证。我有两个角色admin和user。现在我希望用户可以登录两个过程。laravel中正常登录系统的一个过程(运行良好), 当用户设置此url时,另一个过程使用诸如
http:// myproject / login?username = username&password = password之类的get方法,然后调用登录路径,以获取电子邮件和密码url的用户名和密码,并在匹配数据登录用户后成功。现在我要问的是,我该如何处理第二个进程从用户登录。我可以遵循任何技术吗?

php authentication laravel-5

-1
推荐指数
1
解决办法
100
查看次数