3장. 토큰 기반 인증을 사용하여 외부 애플리케이션에 대한 액세스 구성
토큰 기반 인증은 통합된 OAuth 2 토큰 지원을 통해 플랫폼으로 타사 툴 및 서비스를 인증할 수 있습니다. Ansible Automation Platform은 OAuth 토큰과PAT(개인 액세스 토큰)를 모두 사용합니다.
- OAuth 토큰
- OAuth 토큰은 특정 애플리케이션과 연결되어 있으며 애플리케이션이 사용자 로그인 정보를 공개하지 않고 데이터에 액세스할 수 있습니다.
- 개인 액세스 토큰
- Feel은 사용자에게 개인적이며 특정 애플리케이션에 연결되지 않습니다. 사용자는 자신의 사용을 위해 직접 생성됩니다.
액세스 토큰의 기본 만료 시간이 1000년에서 1년으로 업데이트되었습니다. 이 변경으로 인해 인증 정보 보안이 증가하기 위해 토큰 순환이 자주 발생합니다.
컨트롤러 2.4 및 이전 버전의 플랫폼 게이트웨이의 액세스 토큰은 1000년 동안 유효합니다. 2.5.20250604 패치 릴리스 전에 생성된 기존 토큰은 1000년 만료를 유지합니다.
다음과 같이 settings.py 파일의 만료 시간을 수정하여 특정 요구 사항을 충족하도록 이 설정을 사용자 지정할 수 있습니다.
OAUTH2_PROVIDER__ACCESS_TOKEN_EXPIRE_SECONDS = 31536000
OAUTH2_PROVIDER__ACCESS_TOKEN_EXPIRE_SECONDS = 31536000
settings.py 파일과 플랫폼의 측면을 구성하는 데 사용할 수 있는 방법에 대한 자세한 내용은 Operating Ansible Automation Platform의 settings.py 를 참조하십시오.
OAuth2 사양에 대한 자세한 내용은 OAuth 2.0 인증 프레임워크 를 참조하십시오.
토큰을 생성하는 데 manage 유틸리티를 사용하는 방법에 대한 자세한 내용은 토큰 및 세션 관리를 참조하십시오.
3.1. 애플리케이션 링크 복사링크가 클립보드에 복사되었습니다!
ServiceNow 및 Jenkins와 같은 외부 애플리케이션에 대한 토큰 기반 인증을 생성하고 구성합니다. 토큰 기반 인증을 사용하면 외부 애플리케이션이 Ansible Automation Platform과 쉽게 통합될 수 있습니다.
플랫폼 UI의 자동화 컨트롤러 OAuth 애플리케이션은 2.4에서 2.5로 마이그레이션할 수 없습니다. 자세한 내용은 지식베이스 문서를 참조하십시오.
플랫폼 관리자는 플랫폼 내에서 사용자 지정 외부 애플리케이션 URL을 구성하여 외부 서비스와 원활하게 통합할 수 있습니다. 이 기능은 현재 기술 프리뷰로 사용할 수 있습니다. 구성되면 플랫폼 UI 탐색 패널에 외부 애플리케이션 URL이 표시되어 사용자에게 애플리케이션에 쉽게 액세스할 수 있습니다. 이 기능은 플랫폼 UI에서 외부 서비스에 빠르게 액세스하여 워크플로우를 간소화합니다.
기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. Red Hat은 프로덕션 환경에서 사용하는 것을 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
OAuth 2에서는 로그인 정보를 공개하지 않고 토큰을 사용하여 애플리케이션과 데이터를 공유할 수 있습니다. 이러한 토큰을 읽기 전용으로 구성할 수 있습니다.
통합할 외부 애플리케이션을 나타내는 애플리케이션을 생성한 다음, 이를 사용하여 사용자를 대신하여 사용할 애플리케이션의 토큰을 생성할 수 있습니다.
이러한 토큰을 애플리케이션 리소스와 연결하면 특정 애플리케이션에 대해 발행된 모든 토큰을 관리할 수 있습니다. OAuth 애플리케이션에서 토큰 문제를 분리하면 시스템의 모든 토큰을 취소하지 않고도 애플리케이션을 기반으로 모든 토큰을 취소할 수 있습니다.
3.1.1. OAuth 애플리케이션 시작하기 링크 복사링크가 클립보드에 복사되었습니다!
탐색 패널에서 를 선택하여 페이지에 액세스할 수 있습니다. 여기에서 Ansible Automation Platform 및 자동화 컨트롤러에서 현재 관리하는 애플리케이션을 보고, 생성, 정렬 및 검색할 수 있습니다.
애플리케이션이 없는 경우 을 클릭하여 생성할 수 있습니다.
애플리케이션 액세스 규칙은 다음과 같습니다.
- 플랫폼 관리자는 시스템의 모든 애플리케이션을 보고 조작할 수 있습니다.
- 플랫폼 감사자는 시스템의 애플리케이션만 볼 수 있습니다.
- 반면 토큰은 들어오는 요청을 인증하고 기본 사용자의 권한을 마스킹하는 데 사용되는 리소스입니다.
토큰 액세스 규칙은 다음과 같습니다.
- 사용자는 개인 액세스 토큰을 직접 생성할 수 있습니다.
- 플랫폼 관리자는 시스템의 모든 토큰을 보고 조작할 수 있습니다.
- 플랫폼 감사자는 시스템의 토큰만 볼 수 있습니다.
- 다른 일반 사용자는 고유한 토큰만 보고 조작할 수 있습니다.
사용자는 생성 시만 토큰을 보거나 토큰 값을 새로 고칠 수 있습니다.
3.1.1.1. 애플리케이션 기능 링크 복사링크가 클립보드에 복사되었습니다!
권한 부여, 토큰 새로 고침, 취소에 여러 OAuth 2 유틸리티를 사용할 수 있습니다. 애플리케이션을 생성할 때 다음 권한 부여 유형을 지정할 수 있습니다.
- 암호
- 이 권한 부여 유형은 웹 애플리케이션에 대한 기본 액세스 권한이 있고 클라이언트가 리소스 소유자인 경우 사용해야 하는 사용자에게 이상적입니다.
- 허가 코드
- 외부 애플리케이션 또는 서비스에 액세스 토큰을 직접 발행해야 하는 경우 이 권한 부여 유형을 사용해야 합니다.
애플리케이션을 사용할 때 권한 토큰을 얻으려면 권한 부여 코드 유형만 사용할 수 있습니다. 외부 웹 애플리케이션을 Ansible Automation Platform과 통합할 때 해당 웹 애플리케이션에서 다른 웹 애플리케이션의 사용자를 대신하여 OAuth2 토큰을 생성해야 할 수 있습니다. 다음과 같은 이유로 권한 부여 코드 권한 부여 유형을 사용하여 플랫폼에서 애플리케이션을 생성하는 것이 좋습니다.
- 이를 통해 외부 애플리케이션에서 사용자의 Ansible Automation Platform에서 인증 정보를 사용하여 토큰을 가져올 수 있습니다.
- 특정 애플리케이션에 대해 발행되는 분류된 토큰을 사용하면 해당 토큰을 쉽게 관리할 수 있습니다. 예를 들어 시스템의 모든 토큰을 취소하지 않고도 해당 애플리케이션과 연결된 모든 토큰을 취소합니다.
3.1.1.1.1. 만료 후 액세스 토큰 요청 링크 복사링크가 클립보드에 복사되었습니다!
액세스 토큰의 기본 만료 기간은 1년입니다.
인증 코드 권한 부여 유형을 사용하여 애플리케이션 통합을 설정하는 가장 좋은 방법은 해당 사이트 간 요청에 대한 원본을 허용하는 것입니다. 더 일반적으로는 액세스 토큰을 제공하려는 플랫폼에 통합 중인 서비스 또는 애플리케이션을 허용 목록에 추가해야 합니다.
이렇게 하려면 관리자가 로컬 Ansible Automation Platform 설정 파일에 이 허용 목록을 추가하도록 합니다.
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOWED_ORIGIN_REGEXES = [
r"http://django-oauth-toolkit.herokuapp.com*",
r"http://www.example.com*"
]
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOWED_ORIGIN_REGEXES = [
r"http://django-oauth-toolkit.herokuapp.com*",
r"http://www.example.com*"
]
여기서 http://django-oauth-toolkit.herokuapp.com 및 http://www.example.com 은 플랫폼에 액세스하기 위해 토큰이 필요한 애플리케이션입니다.
3.1.2. 새 애플리케이션 생성 링크 복사링크가 클립보드에 복사되었습니다!
외부 웹 애플리케이션을 Ansible Automation Platform과 통합할 때 웹 애플리케이션은 웹 애플리케이션 사용자를 대신하여 OAuth2 토큰을 생성해야 할 수 있습니다.
다음과 같은 이유로 인증 코드 권한 부여 유형을 사용하여 애플리케이션을 생성하는 것이 좋습니다.
- 외부 애플리케이션은 인증 정보를 사용하여 사용자의 토큰을 가져올 수 있습니다.
- 특정 애플리케이션에 대해 발행된 분류된 토큰을 통해 해당 토큰을 쉽게 관리할 수 있습니다. 예를 들어 해당 애플리케이션과 연결된 모든 토큰을 취소합니다.
프로세스
-
탐색 패널에서
를 선택합니다. - 클릭합니다. 애플리케이션 생성 페이지가 열립니다.
다음 세부 정보를 입력합니다.
- 이름
- (필수) 생성할 애플리케이션의 이름을 입력합니다.
- URL
- (선택 사항) 외부 애플리케이션의 URL을 입력합니다. 이 링크는 쉽게 액세스할 수 있도록 탐색 패널에 추가됩니다. 이 설정은 현재 기술 프리뷰로만 제공됩니다.
- 설명
- (선택 사항) 애플리케이션에 대한 간단한 설명을 포함합니다.
- 조직
- (필수) 이 애플리케이션이 연결된 조직을 선택합니다.
- 권한 부여 유형
- (필수) 사용자가 이 애플리케이션에 대한 토큰을 가져오는 데 사용할 권한 부여 유형 중 하나를 선택합니다. 자세한 내용은 권한 부여 형식에 대한 자세한 내용은 애플리케이션 함수를 참조하십시오.For more information, see Application functions for more information about grant types.
- 클라이언트 유형
- (필수) 클라이언트 장치의 보안 수준을 선택합니다.
- URI 리디렉션
- 허용된 URI 목록을 공백으로 구분하여 제공합니다. 권한 부여 유형을 인증 코드로 지정한 경우 이 작업이 필요합니다.
을 클릭하거나 .
클라이언트 ID 및 클라이언트 시크릿 이 창에 표시됩니다. 클라이언트 시크릿이 표시되는 유일한 시간입니다.
참고클라이언트 시크릿은 Client 유형이 기밀 로 설정된 경우에만 생성됩니다.
- 복사 아이콘을 클릭하고 클라이언트 ID 및 클라이언트 시크릿을 저장하여 Ansible Automation Platform과 외부 애플리케이션을 통합합니다.