Okta JWT 인증(사용자 지정 JWT)
Okta 로 관리 하는 사용자를 인증하도록 사용자 지정 JSON web token 인증 제공자를 구성할 수 있습니다.
시작하기 전에
Okta를 사용하려면 다음이 필요합니다.
Okta 프로젝트. 자세한 내용은 Okta 설명서를 참조하세요.
아직 사용자 지정 JWT 인증을 사용하지 않는 App Services App입니다. 새 App Services App을 만드는 방법을 알아보려면 앱 생성을 참조하세요.
명령줄 인터페이스를 사용하는 경우 로컬 시스템에 App Services CLI를 설치하고 인증해야 합니다.
Admin API를 사용하는 경우 MongoDB Atlas Admin API 공개/비공개 키 쌍이 필요합니다. API 키에는 프로젝트 소유자 권한이 있어야 합니다.
Okta 앱 및 권한 부여 서버 만들기
Okta에서 클라이언트 애플리케이션을 나타내는 애플리케이션을 생성합니다. 만드는 애플리케이션 유형은 사용 사례에 따라 다릅니다. 예를 들어 웹 브라우저 앱을 빌드하는 경우 Okta에서 단일 페이지 애플리케이션(SPA) 또는 웹 애플리케이션을 생성할 수 있습니다.
애플리케이션을 구성한 후 Okta에서 App Services App을 나타내는 권한 부여 서버를 생성합니다. 원하는 이름과 설명을 사용할 수 있습니다. Audience 를 App Services App의 애플리케이션 ID로 설정합니다. 예를 들어 myapp-abcde
입니다.
Okta 애플리케이션 및 권한 부여 서버 를 설정하다 하는 방법에 대한 학습 내용은 권한 권한 부여 서버 생성 을 참조하세요. Okta 문서에서 확인 가능합니다.
사용자 지정 JWT 인증 제공자 구성하기
UI에서 사용자 지정 JWT 인증을 구성하거나 CLI 또는 관리 API를 사용하여 기본 구성 파일을 직접 수정하여 구성할 수 있습니다. 아래에서 선호하는 방법을 선택하세요.
왼쪽 탐색 메뉴에서 Authentication을 클릭합니다. 그런 다음 Authentication Providers 탭을 클릭하고 Custom JWT 제공자를 선택합니다.
이제 Okta 프로젝트에서 작동하도록 사용자 지정 JSON web token 인증 제공자를 구성할 수 있습니다.
토글을 클릭하여 제공자를 활성화합니다.
Verification Method 을 Use a JWK URI 로 설정합니다. JWK URI 필드에 Okta 권한 부여 서버의 JWK URI를 지정합니다.
Okta JWK URI는 다음과 유사해야 합니다.
https://<Your Okta Domain>/oauth2/<Your Authorization Server ID>/v1/keys 참고
권한 부여 서버의 Metadata URI 링크를 따라가면 Okta UI에서 정확한 JWK URI를 가져올 수 있습니다.
jwks_uri
필드에 나열된 값을 사용합니다.Metadata Fields 를 정의하여 Okta JSON web token의 데이터를 해당 App Services 사용자 계정에 매핑합니다.
Okta JSON web token에서 메타데이터 필드를 매핑할 필요는 없습니다. 그러나 Okta의 사용자 정보를 앱으로 가져오는 데 유용할 수 있습니다. 메타데이터 필드 및 구성 방법에 대해 자세히 알아보려면 사용자 지정 JSON web token 메타데이터 필드 를 참조하세요.
Audience 값은 비워 둡니다.
변경 사항을 배포하려면 Save 를 클릭합니다.
다음 명령을 실행하여 --remote
값을 앱의 클라이언트 앱 ID로 바꿉니다. 이렇게 하면 앱의 최신 구성 파일의 로컬 사본이 다운로드되고 앱과 동일한 이름을 사용하는 구성 파일 디렉토리로 이동합니다.
appservices pull --remote "myapp-abcde" cd myapp
앱의 /auth/providers.json
파일에 새 사용자 지정 JSON 웹 토큰 인증 제공자를 추가합니다. 다음 구성을 템플릿으로 사용합니다. 다음을 확인하세요.
jwkURI
값을 Okta 권한 부여 서버의 JWK URI로 바꿉니다.사용자 지정 JSON web token 메타데이터 필드 를 정의하여 Okta JSON web token 의 데이터를 매핑합니다. 이는 선택 사항이지만 필드 매핑은 Okta에서 앱으로 사용자 정보를 가져오는 데 유용할 수 있습니다.
{ "custom-token": { "name": "custom-token", "type": "custom-token", "disabled": false, "config": { "audience": [], "jwkURI": "https://<Your Okta Domain>/oauth2/<Your Authorization Server ID>/v1/keys", "useJWKURI": true }, "secret_config": { "signingKeys": [] }, "metadata_fields": [] } }
변경 사항을 /auth/providers.json
에 저장합니다. 그런 다음 업데이트된 구성 파일을 푸시하여 앱을 배포합니다.
appservices push
인증 제공자 생성 엔드포인트를 사용하여 앱에 새 사용자 지정 JWT 인증 공급자를 추가합니다.
다음 구성을 템플릿으로 사용합니다. 다음을 확인하세요.
앱의
$PROJECT_ID
및$APP_ID
지정Authorization
헤더에 관리자 API 액세스 토큰을 포함합니다.요청 본문의
jwkURI
값을 Okta 권한 부여 서버의 JWK URI로 바꿉니다.사용자 지정 JSON web token 메타데이터 필드 를 정의하여 Okta JSON web token 의 데이터를 매핑합니다. 이는 선택 사항이지만 필드 매핑은 Okta에서 앱으로 사용자 정보를 가져오는 데 유용할 수 있습니다.
curl "https://services.cloud.mongodb.com/api/admin/v3.0/groups/$PROJECT_ID/apps/$APP_ID/auth_providers" \ -X "POST" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "custom-token", "type": "custom-token", "disabled": false, "config": { "audience": [], "jwkURI": "https://<Your Okta Domain>/oauth2/<Your Authorization Server ID>/v1/keys", "useJWKURI": true }, "secret_config": { "signingKeys": [] }, "metadata_fields": [] }'
Okta JSON web token로 로그인
Okta를 사용하도록 사용자 지정 JSON web token 인증 제공자를 구성한 후에는 Okta JSON web token 액세스 토큰을 사용하여 App Services App에 로그인할 수 있습니다.
사용자를 Okta에 로그인합니다. 방법을 학습 보려면 관련 Okta SDK 설명서 를 참조하세요. 플랫폼 및 프로그래밍 언어 에 적합합니다.
로그인 응답에서 사용자의 Okta 액세스 토큰을 가져옵니다.
Okta 액세스 토큰을 사용하여 Atlas App Services로 인증하세요. HTTP를 통해 세션을 시작 하거나 SDK로 로그인할 수 있습니다. 방법을 알아보려면 다음 SDK 관련 문서를 참조하세요.