티스토리 뷰
Django 프로젝트에 LDAP 인증을 추가하는 방법을 단계별로 안내하겠습니다. 이 가이드는 Django 애플리케이션에서 LDAP를 사용하여 사용자 인증을 구현하는 데 필요한 모든 단계를 포함합니다.
Python LDAP Library
1. 필요한 패키지 설치
먼저, Django와 LDAP를 연동하기 위해 django-auth-ldap 패키지를 설치해야 합니다. 다음 명령어를 사용하여 설치합니다.
bash
pip install django-auth-ldap
2. Django 프로젝트 설정
Django 프로젝트가 없다면 새로 생성합니다.
bash
django-admin startproject myproject
cd myproject
3. settings.py 수정
settings.py 파일을 열고 필요한 설정을 추가합니다.
python
import ldap
from django_auth_ldap.config import LDAPSearch, GroupOfNamesType
# LDAP 서버 설정
AUTH_LDAP_SERVER_URI = "ldap://your-ldap-server.com"
# LDAP 사용자 검색 설정
AUTH_LDAP_BIND_DN = "cn=admin,dc=example,dc=com"
AUTH_LDAP_BIND_PASSWORD = "your-password"
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=example,dc=com",
ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
# 그룹 설정 (선택 사항)
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=groups,dc=example,dc=com",
ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)")
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
# 인증 백엔드 설정
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
# LDAP 사용자 속성 매핑
AUTH_LDAP_USER_ATTR_MAP = {
"first_name": "givenName",
"last_name": "sn",
}
# Django 사용자 모델에 LDAP 정보 저장
AUTH_LDAP_ALWAYS_UPDATE_USER = True
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
"is_active": "cn=active-users,ou=groups,dc=example,dc=com",
"is_staff": "cn=staff-users,ou=groups,dc=example,dc=com"
}
위의 설정에서 your-ldap-server.com, admin, your-password, 그리고 example.com 등은 실제 환경에 맞게 수정해야 합니다.
4. 데이터베이스 마이그레이션
Django의 기본 사용자 모델을 사용하므로 마이그레이션을 진행합니다.
bash
python manage.py migrate
5. 로그인 템플릿 생성
Django에서 LDAP 인증을 사용하려면 로그인 페이지를 만들어야 합니다. templates 폴더를 생성하고 그 안에 registration/login.html 파일을 생성합니다.
html
<!-- templates/registration/login.html -->
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>로그인</title>
</head>
<body>
<h1>로그인</h1>
<form method="post">
{% csrf_token %}
<div>
<label for="id_username">사용자 이름:</label>
<input type="text" name="username" id="id_username" required>
</div>
<div>
<label for="id_password">비밀번호:</label>
<input type="password" name="password" id="id_password" required>
</div>
<button type="submit">로그인</button>
</form>
</body>
</html>
6. URL 설정
urls.py 파일을 열어 로그인 URL을 설정합니다.
python
from django.urls import path
from django.contrib.auth import views as auth_views
urlpatterns = [
path('login/', auth_views.LoginView.as_view(template_name='registration/login.html'), name='login'),
# 다른 URL 패턴...
]
7. 테스트 실행
서버를 실행하고 로그인 페이지에 접속해 보세요.
bash
python manage.py runserver
브라우저에서 http://127.0.0.1:8000/login/에 접속하여 LDAP 사용자 계정으로 로그인해 보세요.
8. 결론
이제 Django 애플리케이션에서 LDAP 인증이 설정되었습니다. 사용자가 LDAP 서버를 통해 인증할 수 있게 되었으며, 필요한 경우 추가적인 사용자 속성이나 그룹 설정을 조정할 수 있습니다.
이 가이드가 도움이 되었기를 바랍니다! 추가적인 질문이 있다면 언제든지 문의해 주세요.
'Python > Django Framework (DRF)' 카테고리의 다른 글
[CentOS] MySql 설치 오류 (2) | 2025.01.09 |
---|---|
Windows IIS 서버에 Django 애플리케이션 배포 (2) | 2024.12.09 |
Django CheatSheet2. Django에서 API를 호출하는 예제 (1) | 2024.11.27 |
Django CheatSheet 빠르게 설정하기 (0) | 2024.11.25 |
Django REST Framework (DRF) 설치 및 초기 구동 가이드 (Quick Start) (0) | 2024.08.26 |
- Total
- Today
- Yesterday
- chat gpt api 비용 계산
- GitHub
- github action
- 로또 1164회 당첨
- 토치비전
- 케라스
- 클래스형 뷰
- 티스토리챌린지
- chat gpt 가격 예상
- 1164회 로또
- f-string
- python 문자열 슬라이싱
- chat gpt 한국어 가격
- postgre
- 로또 ai
- 1165회 로또
- python import
- chat gpt 4o 예산
- 텍스트 마이닝
- 텍스트 전처리
- Python
- chat gpt 모델 api 가격 예측
- 오블완
- 장고 orm sql문 비교
- 인공지능 로또 예측
- chat gpt 모델별 예산
- pytorch
- Numpy
- chat gpt 모델 별 가격
- TorchVision
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |