Keystoneauth 인증 플러그인

1 개요

Authentication Plugins
인증 플러그인

https://docs.openstack.org/keystoneauth/latest/authentication-plugins.html

Crystal Clear action info.png 작성 중인 문서입니다.


2 소개

인증 플러그인은 OpenStack 클라이언트가 알고 있는 인증 메커니즘을 확장할 수 있는 일반적인 수단을 제공합니다.

대부분의 경우 사용되는 인증 플러그인은 OpenStack Identity 서비스(Keystone)와 함께 사용하기 위해 작성된 것들이지만, 이것이 유일한 경우는 아니며, 인증 플러그인을 사용하는 방식과 구현되는 메커니즘은 완전히 커스터마이즈된 인증 솔루션을 포괄할 수 있을 정도로 일반적이어야 합니다.

OpenStack Identity 서버(예: Keystone)와 함께 사용하기 위해 의도된 인증 플러그인의 하위집합을 Identity 플러그인이라고 합니다.

3 사용가능한 플러그인

Keystoneauth는 여러 가지 플러그인을 제공하며, 특히 Identity 플러그인을 제공합니다.

3.1 V2 Identity 플러그인

표준 V2 Identity 플러그인은 모듈 keystoneauth1.identity.v2에 정의되어 있습니다.

포함된 플러그인은 다음과 같습니다:

  • Password: 사용자 이름과 비밀번호를 사용하여 V2 Identity 서비스에 대해 인증합니다.
  • Token: 기존 토큰을 사용하여 V2 Identity 서비스에 대해 인증합니다.

V2 Identity 플러그인은 반드시 V2 Identity 서버 URL의 루트를 가리키는 auth_url을 사용해야 합니다. 예: http://hostname:5000/v2.0.

3.2 V3 Identity 플러그인

표준 V3 Identity 플러그인은 모듈 keystoneauth1.identity.v3에서 정의됩니다.

V3 Identity 플러그인은 V2 플러그인과 약간 다른데, V3 인증 요청은 여러 인증 방법을 포함할 수 있습니다. 이를 처리하기 위해 V3는 다양한 AuthMethod 클래스를 정의합니다:

  • PasswordMethod: 사용자명과 패스워드를 사용하여 V3 identity 서비스에 대해 인증합니다.
  • TokenMethod: 기존 토큰을 사용하여 V3 identity 서비스에 대해 인증합니다.
  • ReceiptMethod: 기존 auth-receipt를 사용하여 V3 identity 서비스에 대해 인증합니다. 이 방법은 최소 하나 이상의 다른 방법과 함께 사용해야 합니다.
  • TOTPMethod: Time-Based One-Time Password (TOTP)를 사용하여 V3 identity 서비스에 대해 인증합니다.
  • TokenlessAuth: 토큰 없이 V3 identity 서비스에 대해 인증합니다.
  • ApplicationCredentialMethod: 애플리케이션 자격 증명을 사용하여 V3 identity 서비스에 대해 인증합니다.
  • KerberosMethod: Kerberos를 사용하여 V3 identity 서비스에 대해 인증합니다.
  • OAuth2ClientCredentialMethod: OAuth2.0 클라이언트 자격 증명을 사용하여 V3 identity 서비스에 대해 인증합니다.
  • OAuth2mTlsClientCredential: OAuth2.0 Mutual-TLS 클라이언트 자격 증명을 사용하여 V3 identity 서비스에 대해 인증합니다.

AuthMethod 객체는 Auth 플러그인에 전달됩니다:

from keystoneauth1 import session
from keystoneauth1.identity import v3
password = v3.PasswordMethod(username='user',
                             password='password',
                             user_domain_name='default')
auth = v3.Auth(auth_url='http://my.keystone.com:5000/v3',
               auth_methods=[password],
               project_id='projectid')
sess = session.Session(auth=auth)

auth 인스턴스가 생성된 이후에도 추가적인 방법을 추가할 수 있습니다:

totp = v3.TOTPMethod(username='user',
                     passcode='123456',
                     user_domain_name='default')
auth.add_method(totp)

또는 MultiFactor 헬퍼 플러그인을 사용하여 한 번에 모두 간단하게 처리할 수 있으며, 이에 대한 예제는 아래 섹션에 있습니다.

일반적인 경우로 한 가지 AuthMethod만 사용하려는 경우, V2 플러그인과 더 유사하게 사용할 수 있는 다양한 AuthMethod에 대한 헬퍼 인증 플러그인이 있습니다:

  • Password: PasswordMethod만 사용하여 인증합니다.
  • Token: TokenMethod만 사용하여 인증합니다.
  • TOTP: TOTPMethod만 사용하여 인증합니다.
  • Kerberos: KerberosMethod만 사용하여 인증합니다.
auth = v3.Password(auth_url='http://my.keystone.com:5000/v3',
                   username='username',
                   password='password',
                   project_id='projectid',
                   user_domain_name='default')
sess = session.Session(auth=auth)

이것은 위의 단일 PasswordMethod를 사용하는 것과 동일한 효과를 가집니다.

V3 identity 플러그인은 V3 identity 서버 URL의 루트를 가리키는 auth_url을 사용해야 합니다, 예: http://hostname:5000/v3.

3.3 V3 Identity 플러그인과 멀티팩터

3.4 독립형 플러그인

4 연합

4.1 버전 독립형 Identity 플러그인

4.2 간단한 플러그인

4.3 V3 OAuth 1.0a 플러그인

5 애플리케이션 자격증명

6 OAuth2.0 클라이언트 자격증명

7 OAuth2.0 상호TLS 클라이언트 자격증명

8 토큰 없는 인증

9 이름으로 플러그인 로딩

10 인증 플러그인 생성

10.1 Identity 플러그인 생성

10.2 커스텀 플러그인 생성

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