단일 자격 증명 설정하다 사용하여 다양한 플랫폼에서 사용자를 인증하도록 MongoDB with Workforce Identity Federation을 구성합니다. 이렇게 하면 보안이 강화되고 사용자 관리 간소화됩니다.
중요
OIDC(OpenID Connect)는 Linux 에서만 지원됩니다.
시작하기 전에
MongoDB Enterprise를 사용하고 있는지 확인합니다.
MongoDB 엔터프라이즈 사용하고 있는지 확인하려면
--version명령줄 옵션을 또는mongodmongos에 전달합니다.mongod --version 이 명령의 출력에서
modules: subscription또는modules: enterprise문자열을 찾아 MongoDB Enterprise 바이너리를 사용하고 있는지 확인합니다.외부 자격 증명 공급자를 구성합니다. 자세한 내용은 인력 인증을 위한 OIDC 구성을 참조하세요.
단계
OIDC(OpenID Connect)로 MongoDB 서버 구성
참고
Workforce Identity Federation을 위해 MongoDB 구성할 때는 supportsHumanFlows 에서 필드 oidcIdentityProviders 생략합니다.
구성 파일 또는 명령줄 사용하여 MongoDB 서버 구성할 수 있습니다.
구성 파일 사용하려면 파일 에 다음 매개변수를 지정합니다.
setParameter: authenticationMechanisms: MONGODB-OIDC oidcIdentityProviders: '[ { "issuer": "https://okta-test.okta.com", "audience": "example@kernel.mongodb.com", "authNamePrefix": "okta-issuer", "authorizationClaim": "groups", "clientId": "0zzw3ggfd2ase33", } ]'
여러 IdP를 지정하려면 oidcIdentityProviders 배열 에 객체를 추가합니다. 여러 IdP를 지정하는 경우 각 제공자 에 대해 matchPattern 를 지정해야 합니다. 예시 들면 다음과 같습니다.
setParameter: authenticationMechanisms: MONGODB-OIDC oidcIdentityProviders: '[ { "issuer": "https://okta-test.okta.com", "audience": "example@kernel.mongodb.com", "authNamePrefix": "okta-issuer", "authorizationClaim": "groups", "matchPattern": "@okta.com$", "clientId": "0zzw3ggfd2ase33", }, { "issuer": "https://azure-test.azure.com", "audience": "example2@kernel.mongodb.com", "authNamePrefix": "azure-issuer", "authorizationClaim": "groups", "matchPattern": "@azure.com$", "clientId": "1zzw3ggfd2ase33", } ]'
명령줄 사용하려면 다음 스타트업 옵션을 지정합니다.
mongod --auth --setParameter authenticationMechanisms=MONGODB-OIDC --setParameter \ 'oidcIdentityProviders=[ { "issuer": "https://okta-test.okta.com", "audience": "example@kernel.mongodb.com", "authNamePrefix": "okta-issuer", "authorizationClaim": "groups", "clientId": "0zzw3ggfd2ase33", } ]'
여러 IdP를 지정하려면 oidcIdentityProviders 배열 에 객체를 추가합니다. 여러 IdP를 지정하는 경우 각 제공자 에 대해 matchPattern 를 지정해야 합니다. 예시 들면 다음과 같습니다.
mongod --auth --setParameter authenticationMechanisms=MONGODB-OIDC --setParameter \ 'oidcIdentityProviders=[ { "issuer": "https://okta-test.okta.com", "audience": "example@kernel.mongodb.com", "authNamePrefix": "okta-issuer", "authorizationClaim": "groups", "matchPattern": "@okta.com$", "clientId": "0zzw3ggfd2ase33", }, { "issuer": "https://azure-test.azure.com", "audience": "example2@kernel.mongodb.com", "authNamePrefix": "azure-issuer", "authorizationClaim": "groups", "matchPattern": "@azure.com$", "clientId": "1zzw3ggfd2ase33", } ]'
(선택 사항) 내부 권한 부여 부여 활성화
내부 권한 부여 활성화 하려면 oidcIdentityProviders 매개변수의 useAuthorizationClaim 필드 false로 설정하다 . 이 설정을 사용하면 IdP의 권한 부여 클레임 대신 사용자 문서에 의존하여 보다 유연한 사용자 관리 가능합니다.
중요
useAuthorizationClaim 이(가) false(으)로 설정하다 경우 authorizationClaim 필드 포함하지 마세요.
setParameter: authenticationMechanisms: MONGODB-OIDC oidcIdentityProviders: '[ { "issuer": "https://okta-test.okta.com", "audience": "example@kernel.mongodb.com", "authNamePrefix": "okta-issuer", "useAuthorizationClaim": false, "clientId": "0zzw3ggfd2ase33" } ]'
여러 IdP를 지정하려면 oidcIdentityProviders 배열 에 객체를 추가합니다. 예시 들면 다음과 같습니다.
setParameter: authenticationMechanisms: MONGODB-OIDC oidcIdentityProviders: '[ { "issuer": "https://okta-test.okta.com", "audience": "example@kernel.mongodb.com", "authNamePrefix": "okta-issuer", "useAuthorizationClaim": false, "clientId": "0zzw3ggfd2ase33" }, { "issuer": "https://azure-test.azure.com", "audience": "example2@kernel.mongodb.com", "authNamePrefix": "azure-issuer", "useAuthorizationClaim": false, "clientId": "1zzw3ggfd2ase33" } ]'
mongod --auth --setParameter authenticationMechanisms=MONGODB-OIDC --setParameter \ 'oidcIdentityProviders=[ { "issuer": "https://okta-test.okta.com", "audience": "example@kernel.mongodb.com", "authNamePrefix": "okta-issuer", "useAuthorizationClaim": false, "clientId": "0zzw3ggfd2ase33" } ]'
여러 IdP를 지정하려면 oidcIdentityProviders 배열 에 객체를 추가합니다. 예시 들면 다음과 같습니다.
mongod --auth --setParameter authenticationMechanisms=MONGODB-OIDC --setParameter \ 'oidcIdentityProviders=[ { "issuer": "https://okta-test.okta.com", "audience": "example@kernel.mongodb.com", "authNamePrefix": "okta-issuer", "useAuthorizationClaim": false, "clientId": "0zzw3ggfd2ase33" }, { "issuer": "https://azure-test.azure.com", "audience": "example2@kernel.mongodb.com", "authNamePrefix": "azure-issuer", "useAuthorizationClaim": false, "clientId": "1zzw3ggfd2ase33" } ]'
When you set useAuthorizationClaim to false, users who authenticate with the MONGODB-OIDC mechanism obtain their 권한 부여 rights from a user document in $external. 서버 자격 증명 공급자 사용자에 대한 모든 OIDC 기반 인증 시도에 대해 authNamePrefix/principalName 클레임 값과 일치하는 _id 가 있는 사용자 document 검색합니다.
(조건부) 내부 X509 TLS용 CA 인증서
내부 인증 기관(CA)에서 서명한 X509 TLS 인증서를 사용하는 환경의 경우, mongod 이(가) 자격 증명 공급자와 통신할 수 있도록 시스템 CA 인증서 번들에 CA 인증서를 추가해야 합니다. 이는 콜백 메서드를 사용할 때 사용자 인증 및 워크로드 인증 에 적용됩니다. 이 단계를 생략하면 OIDC SSL 인증서 또는 JWT 키 확인 오류가 발생할 수 있습니다.
샤드 클러스터용 oidcIdentityProviders
샤딩된 클러스터에서는 oidcIdentityProviders 모든 인스턴스에서 를 구성합니다.mongos 클라이언트는 mongos를 통해 인증하며, 자격 증명 공급자 토큰을 확인하려면 이 구성이 필요합니다. 클라이언트가 config 서버 또는 샤드 mongod 인스턴스에 직접 연결하는 경우 해당 인스턴스에서 oidcIdentityProviders 도 구성해야 합니다.
이 튜토리얼의 단계를 배포서버 의 각 mongos 인스턴스 에 적용합니다. Workforce Identity Federation에 대한 데이터베이스 사용자를 구성하려면 Authorize Users with Workforce Identity Federation을 참조하세요.