1 개요[ | ]
- Extras
- 엑스트라
https://docs.openstack.org/keystoneauth/latest/extras.html
Keystoneauth 플러그인의 확장성은 다양한 인증 메커니즘을 지원하도록 설계되어 있으며, 이러한 메커니즘은 업스트림 패키지에 포함되지 않아도 됩니다. 그러나 업스트림에서 지원하는 몇 가지 플러그인은 keystoneauth 패키지가 직접 의존할 수 없는 추가 의존성을 포함합니다.
이를 해결하기 위해 setuptools의 extras 의존성을 사용하여 추가 플러그인을 설치합니다. 예를 들어, 추가 의존성을 가진 kerberos 플러그인을 사용하려면 다음과 같이 추가 의존성을 설치해야 합니다:
Bash
Copy
pip install keystoneauth1[kerberos]
관례상(필수는 아님) 추가 플러그인은 의존성과 동일한 이름을 가진 모듈을 keystoneauth1.extras 모듈에 위치시킵니다. 예시:
Python
Copy
from keystoneauth1.extras import kerberos
모듈에 접근하기 위해 필요한 의존성이 설치되어 있는지에 대한 keystoneauth 특정 점검은 없습니다. 필요한 의존성이 없을 때 표준 Python ImportError가 발생할 것으로 예상됩니다.
2 예시[ | ]
모든 엑스트라 플러그인은 다음 패턴을 따릅니다:
- 1. 플러그인 모듈을 임포트합니다.
- 2. 플러그인을 인스턴스화합니다.
- 3. 세션 객체를 전달하여 플러그인의 get_token 메소드를 호출하여 토큰을 얻습니다.
2.1 Kerberos[ | ]
Kerberos
를 사용하여 도메인 스코프 토큰 얻기:
Python
Copy
from keystoneauth1.extras import kerberos
from keystoneauth1 import session
plugin = kerberos.Kerberos('http://example.com:5000/v3')
sess = session.Session(plugin)
token = plugin.get_token(sess)
언스코프 페더레이션 토큰 얻기:
Python
Copy
from keystoneauth1.extras import kerberos
from keystoneauth1 import session
plugin = kerberos.MappedKerberos(
auth_url='http://example.com:5000/v3', protocol='example_protocol',
identity_provider='example_identity_provider')
sess = session.Session()
token = plugin.get_token(sess)
프로젝트 스코프 페더레이션 토큰 얻기:
Python
Copy
from keystoneauth1.extras import kerberos
from keystoneauth1 import session
plugin = kerberos.MappedKerberos(
auth_url='http://example.com:5000/v3', protocol='example_protocol',
identity_provider='example_identity_provider',
project_id='example_project_id')
sess = session.Session()
token = plugin.get_token(sess)
project_id = plugin.get_project_id(sess)
편집자 Jmnote
로그인하시면 댓글을 쓸 수 있습니다.