"Keystoneauth 세션 사용"의 두 판 사이의 차이

21번째 줄: 21번째 줄:


==사용자용 세션==
==사용자용 세션==
Session 객체는 OpenStack 클라우드 서비스에 대한 접점입니다. 이 객체는 인증 자격증명과 OpenStack과 통신하는 데 필요한 연결 정보를 저장하여 여러 서비스와 통신하는 데 재사용할 수 있습니다. 서비스 생성 시 이 Session 객체가 클라이언트에 전달되어 해당 정보를 사용할 수 있습니다.
세션은 필요할 때 인증을 수행합니다. 인증이 필요한 요청이 세션을 통해 전달되면 인증 플러그인은 유효한 토큰을 요청합니다. 유효한 토큰이 있으면 사용되고, 그렇지 않은 경우 인증 플러그인이 인증 서비스에 연락하여 새 토큰을 가져올 수 있습니다.
Session을 사용하는 keystoneclient 예제:
<syntaxhighlight lang='python'>
from keystoneauth1.identity import v3
from keystoneauth1 import session
from keystoneclient.v3 import client
auth = v3.Password(auth_url='https://my.keystone.com:5000/v3',
                  username='myuser',
                  password='mypassword',
                  project_name='proj',
                  user_domain_id='default',
                  project_domain_id='default')
sess = session.Session(auth=auth,
                      verify='/path/to/ca.cert')
ks = client.Client(session=sess)
users = ks.users.list()
</syntaxhighlight>
다른 OpenStack 클라이언트 라이브러리도 이와 유사한 방식으로 세션 객체를 클라이언트 생성자에 전달하여 생성됩니다.
===인증 플러그인 공유===
===인증 플러그인 공유===
==클라이언트 개발자용 세션==
==클라이언트 개발자용 세션==
===메이저 버전 발견과 마이크로버전 지원===
===메이저 버전 발견과 마이크로버전 지원===

2024년 6월 21일 (금) 21:36 판

1 개요

Using Sessions
세션 사용

https://docs.openstack.org/keystoneauth/latest/using-sessions.html

2 소개

keystoneauth1.session.Session 클래스는 다양한 서비스 간에 공통 인증 및 요청 파라미터를 공유하는 다양한 OpenStack 클라이언트에 통일된 인터페이스를 제공하기 위해 keystoneauth1에 도입되었습니다.

Session과 인증 플러그인을 사용하는 모델과 일반적인 용어는 requests 라이브러리에서 많은 영감을 받았습니다. 그러나 Session 클래스나 인증 플러그인이 requests 라이브러리의 개념에 직접적으로 의존하지 않기 때문에 직접적인 변환을 기대해서는 안 됩니다.

2.1 기능

  • 공통 클라이언트 인증
인증은 다양한 인증 플러그인 중 하나에 의해 처리되며, 이 인증 정보는 동일한 Session 객체를 사용하는 모든 서비스 간에 공유됩니다.
  • 보안 유지관리
보안 코드는 단일 장소에서 유지관리되며 모든 클라이언트 간에 재사용되므로 문제가 발생할 경우 단일 위치에서 수정할 수 있습니다.
  • 표준 서비스 및 버전 발견
클라이언트는 ID 토큰이나 기타 형태의 신원확인 자격증명에 대한 지식을 필요로 하지 않습니다. 서비스, 엔드포인트, 주요 버전 검색 및 마이크로 버전 지원 검색은 Session 및 플러그인에 의해 처리됩니다. 발견 정보는 메모리에 자동으로 캐시되므로 사용자는 과도한 발견 메타데이터 사용에 대해 걱정할 필요가 없습니다.
  • 안전한 HTTP 상호작용 로깅
클라이언트는 HTTP 상호작용의 로깅을 활성화할 수 있어야 하지만, 토큰이나 비밀 정보와 같은 일부 항목은 생략해야 합니다.

3 사용자용 세션

Session 객체는 OpenStack 클라우드 서비스에 대한 접점입니다. 이 객체는 인증 자격증명과 OpenStack과 통신하는 데 필요한 연결 정보를 저장하여 여러 서비스와 통신하는 데 재사용할 수 있습니다. 서비스 생성 시 이 Session 객체가 클라이언트에 전달되어 해당 정보를 사용할 수 있습니다.

세션은 필요할 때 인증을 수행합니다. 인증이 필요한 요청이 세션을 통해 전달되면 인증 플러그인은 유효한 토큰을 요청합니다. 유효한 토큰이 있으면 사용되고, 그렇지 않은 경우 인증 플러그인이 인증 서비스에 연락하여 새 토큰을 가져올 수 있습니다.

Session을 사용하는 keystoneclient 예제:

from keystoneauth1.identity import v3
from keystoneauth1 import session
from keystoneclient.v3 import client

auth = v3.Password(auth_url='https://my.keystone.com:5000/v3',
                   username='myuser',
                   password='mypassword',
                   project_name='proj',
                   user_domain_id='default',
                   project_domain_id='default')
sess = session.Session(auth=auth,
                       verify='/path/to/ca.cert')
ks = client.Client(session=sess)
users = ks.users.list()

다른 OpenStack 클라이언트 라이브러리도 이와 유사한 방식으로 세션 객체를 클라이언트 생성자에 전달하여 생성됩니다.

3.1 인증 플러그인 공유

4 클라이언트 개발자용 세션

4.1 메이저 버전 발견과 마이크로버전 지원

4.2 인증

4.3 서비스 발견

4.4 어댑터 사용

4.5 엔드포인트 메타데이터

4.6 마이크로버전 요청

5 로깅

5.1 로거 사용

5.2 사용자 제공 로거

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}