當前位置:
首頁 > 最新 > Apache用戶認證配置之Basic認證

Apache用戶認證配置之Basic認證

很多時候我們可能需要對伺服器資源進行保護,通常的做法是在應用層通過鑒權來實現,如果你嫌自己去實現鑒權太麻煩,那就直接讓Apache去幫你實現吧!

Apache常見的用戶認證可以分為下面三種:

- 基於IP,子網的訪問控制(ACL)

- 基本用戶驗證(Basic Authentication)

- 消息摘要式身份驗證(Digest Authentication)

基於IP的訪問控制可以通過配置 Allow From實現!這裡不多講。

一般的,我們還會在IP的基礎上,再增加一層 Basic Authentication,實現一個基本的伺服器用戶認證!

1、生成用戶名密碼文件

Adding password for user test

Adding password for user test2

test:$apr1$4R3foyQ5$1KGHVA5HQL8M9b0K/2UWO0

test2:$apr1$pKLy86CD$W9hFUvs4F06OBXtQhCbPV/

可以看到用戶名密碼文件已經生成了,一行一個!

2、配置 VirtualHost,如:

- AllowOverride 表示通過配置文件進行身份驗證

- AuthName 發送給客戶端報文頭內容:WWW-Authenticate

- AuthType 認證類型

- AuthUserFile 這個就是剛剛生成的用戶名密碼文件

- Require 指定哪些用戶或組才能被授權訪問。如:

- require user test test2(只有用戶 test 和 test2 可以訪問)

- requires groups managers (只有組 managers 中成員可以訪問)

- require valid-user (在 AuthUserFile 指定的文件中任何用戶都可以訪問)

我們來看一下效果:

在瀏覽器訪問:

cURL請求:

* Trying 10.223.28.1...

* Connected to pma.979137.com (10.223.28.1) port 80 (#0)

> GET /test.php HTTP/1.1

> Host: pma.979137.com

> User-Agent: curl/7.43.0

> Accept: */*>

401 Authorization Required

>Authorization Required

This server could not verify that you

are authorized to access the document

requested. Either you supplied the wrong

credentials (e.g., bad password), or your

browser doesn"t understand how to supply

the credentials required.

在沒有攜帶用戶名和密碼時,HTTP Code 返回了 401,並輸出了 Authorization Required!

表示需要該請求需要進行認證!

我們再來看下,攜帶密碼請求:

* Trying 10.223.28.1...

* Connected to pma.979137.com (10.223.28.1) port 80 (#0)

* Server auth using Basic with user "test"

> GET /test.php HTTP/1.1

> Host: pma.979137.com

> Authorization: Basic c2hpbGlhbmd4aWU6YWl5aTEzMTQ=

> User-Agent: curl/7.43.0

> Accept: */*

>

HTTP Code 已經是 200 了,並且返回了正確的內容!

至此,一個簡單的 Basic 認證就OK了!這種認證一般可用於瀏覽器訪問,也可以用於 API 認證!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

南京最時髦野餐指南
哄娃吃飯原來也能這麼6,全靠選對一把好餐椅!

TAG:全球大搜羅 |