Yubico Forum

...visit our web-store at store.yubico.com
It is currently Tue Jan 30, 2018 11:54 am

All times are UTC + 1 hour




Post new topic Reply to topic  [ 4 posts ] 
Author Message
PostPosted: Mon Apr 29, 2013 7:36 pm 
Offline

Joined: Mon Apr 29, 2013 5:59 pm
Posts: 3
Hello everyone... I downloaded the PHP class from here https://code.google.com/p/php-yubico/ to go with my Yubi Standard key.

Now I am just a sys admin and by no means any PHP guru, but i need to install a basic auth demo for the dev guys to test with.

So i unpacked this demo package on a Linux server, setup the MySQL database imported db.sql and created a user and pass for database access. I then put this info in the config.php file

Now i go to the index.html page click on "Set username and password for this demo"
enter is a simple user and pass, press the Yubi key and in return i get a page that just says "Set username/password for demo"
Nothing get entered in to the database, I tested db connectivity and its fine.. as we have other apps that use php and mysql on this dev server...

even the simple One factor yubi key only fails with "Demo YubiKey only"
Any suggestions?

Thanks..

Rob..
Montreal, Canada


Top
 Profile  
Reply with quote  

Share On:

Share on Facebook FacebookShare on Twitter TwitterShare on Tumblr TumblrShare on Google+ Google+

PostPosted: Tue Apr 30, 2013 8:15 am 
Offline
Site Admin
Site Admin

Joined: Wed Nov 14, 2012 2:59 pm
Posts: 666
Hello Rob,

I'll try to help you out but first i need you to clarify what are you trying to do because i am not sure i get it.

If you want to test you Yubikeys, you simply visit http://demo.yubico.com/ and emit one OTP.
Username and Password for the dame pages are just placeholders text areas they do not mean anything.

The purpose is to show you how to use YubiCloud to verify the OTP emitted by the Yubikey.


This code snipped will help you understand how to verify the user-submitted OTP:

Code:
<?php
 require_once 'Auth/Yubico.php';
 $otp = "ccbbddeertkrctjkkcglfndnlihhnvekchkcctif";

 # Generate a new id+key from https://api.yubico.com/get-api-key/
 $yubi = new Auth_Yubico('42', 'FOOBAR=');
 $auth = $yubi->verify($otp);
 if (PEAR::isError($auth)) {
    print "<p>Authentication failed: " . $auth->getMessage();
    print "<p>Debug output from server: " . $yubi->getLastResponse();
 } else {
    print "<p>You are authenticated!";
 }
?>




Please if this is not clear clarify what are you trying to achieve and what step did you follow from the INSTALLATION tutorial on github.

https://github.com/Yubico/php-yubico

_________________
-Tom


Top
 Profile  
Reply with quote  
PostPosted: Tue Apr 30, 2013 1:12 pm 
Offline

Joined: Mon Apr 29, 2013 5:59 pm
Posts: 3
Hey Tom, thanks for your prompt reply. Sorry if i was not clear enough.
I am trying to setup an auth page like you have on your demo site for our CMS on our dev server that will use the same method as your two factor auth scheme with user/password with the Yubi key

So i downloaded the PHP package which has the same files as your online demo, but just could not get that demo to work on our dev server. We want to protect a couple of CMS sites that we have and want to auth against the Yubi key with a username and password. Before i approach the dev guys i wanted to get a demo on our servers working to show them. Our end result is to give Yubi keys to all our customer service reps in house and abroad to auth on our CMS from anywhere using user/pass and the Yubi key

I hope i am a bit clearer?

Thanks..

Rob


Top
 Profile  
Reply with quote  
PostPosted: Tue Apr 30, 2013 1:54 pm 
Offline
Site Admin
Site Admin

Joined: Wed Nov 14, 2012 2:59 pm
Posts: 666
Hello,

First a simple clarification, you do not authenticate against the Yubikey. You authenticate against the YubiCloud.

The Yubikey generates an OTP, which is sent via a web-request to the YubiCloud. The YubiCloud needs to validate the OTP and will return OK or an ERROR of some kind. This implies that you must be able to reach our API servers from your network (where the CMS is).

What is an OTP?
An OTP is a One Time Password generated following some kind of algorithm. The characteristic of Yubico's OTP is that the first 12 characters of the OTP identify the specific device. Those first 12 chars are namely, the device "public_id"

Now, let's say that you have a database with 1 user: Alice.
What you need to do, is to add a column to your user table called, "device_id" (or something meaningful). Now, at your login page, use some HTML to create a new text area. Call this field OTP and pass it to the PHP function that i have pasted in the previous post. Next time Alice will try to login, she will have to provide username, password and the OTP generated from the Yubikey.

At this point in time you will have 3 information
username
password
OTP

extract the first 12 characters from the OTP, and check if there is a match in the DB for that id. If the ID is associated with Alice, then proceed to the OTP verification verify->$otp
If you will get an OK response, proceed with the normal log-in, verify the password and let the user in.

This is an example of how you can use the Yubikey for T-FA with PHP and CMS. The only thing left to do is to install the Yubico-php module via PEAR as described in the git-hub tutorial. If you want to validate locally you will need to install the Yubico valdiation server and configure the Yubikey accordingly / see documentation on yubico.com/documentation


Database example

user_table:
user_id | username | salted_hash(password) | device_id

query:
is "device_id" associated with "username" ?
|
-----> yes: validate otp, validate password
or
-----> no: tell the user that something was wrong

_________________
-Tom


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group