Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / / / /

외부 ID 제공자 구성

이 페이지의 내용

  • 이 작업에 대하여
  • 시작하기 전에
  • 단계
  • 다음 단계
  • 자세히 알아보기

OIDC를 사용하여 Workforce Identity Federation을 구성하려면 Okta 또는 Microsoft Entra ID 와 같은 외부 ID 제공자 에 OIDC 애플리케이션 을 등록합니다. 이렇게 하면 보안 인증 이 보장되고 사용자 관리 가 쉬워집니다.

Workforce Identity Federation은 OIDC를 사용합니다. OIDC 표준을 지원하는 모든 외부 ID 제공자 를 사용할 수 있습니다.

다음 권한 부여 유형에 대해 OIDC 애플리케이션 을 구성할 수 있습니다.

  • PKCE를 사용한 권한 부여 코드 흐름

  • 기기 권한 부여 흐름

MongoDB 는 보안 강화를 위해 PKCE와 함께 Authorization Code Flow(권한 부여 코드 흐름)를 사용할 것을 권장합니다. 사용자가 브라우저 없이 컴퓨터에서 데이터베이스 에 액세스 해야 하는 경우에만 Device Authorization Flow(장치 권한 부여 흐름)를 사용하세요.

참고

Workforce Identity Federation은 인증 에 JWT만 지원합니다. 불투명 액세스 토큰은 지원 하지 않습니다.

다음 절차에서는 Microsoft Entra ID 및 Okta에 대한 자세한 구성 지침과 기타 외부 ID 제공자를 위한 일반 구성 지침을 제공합니다.

  • To use Okta as an identity 제공자, you must have an Okta account.

  • Microsoft Entra ID 를 ID 제공자 로 사용하려면 Microsoft Azure 계정이 있어야 합니다.

1
  1. App registrations 로 이동합니다.

    1. Azure Portal Microsoft Entra ID에서 계정, Atlas Search를 클릭하고 를 클릭합니다.

    2. 좌측 탐색의 Manage 섹션에서 App registrations을 클릭합니다.

  2. New registration를 클릭합니다.

  3. 다음 값을 적용합니다.

    필드

    Name

    MongoDB - Workforce

    Supported Account Types

    Accounts in this organizational directory only (single tenant)

    Redirect URI

    - Public client/native (mobile & desktop)
    - To access clusters using MongoDB Compass and MongoDB Shell, set the Redirect URI to http://localhost:27097/redirect.
  4. Register를 클릭합니다.

애플리케이션 등록에 대해 자세히 알아보려면 Azure 설명서를 참조하세요.

2
  1. Token Configuration(으)로 이동합니다.

    좌측 탐색의 Manage 섹션에서 Token Configuration을 클릭합니다.

  2. Add groups claim를 클릭합니다.

  3. Edit groups claim 0} 모달에서 을 Security 선택합니다.

    선택하는 그룹은 Azure 환경에서 구성한 그룹 유형에 따라 다릅니다. 적절한 그룹 정보를 전송하려면 다른 그룹 유형을 선택해야 할 수도 있습니다.

  4. Customize token properties by type 섹션에서 Group ID 만 선택합니다.

  5. Add를 클릭합니다.

그룹 클레임 추가에 대해자세히 알아보려면 Azure 설명서를 참조하세요.

3
  1. Add optional claim를 클릭합니다.

  2. Add optional claim 0} 모달에서 을 Access 선택합니다.

  3. 이메일과 같은 MongoDB 액세스 로그에서 참조할 수 있는 사용자 식별자가 포함된 클레임을 선택합니다.

    UPN 클레임을 사용하여 이메일 주소 로 사용자를 식별할 수 있습니다.

  4. Add를 클릭합니다.

  5. Microsoft Graph Permissions 노트에서 확인란을 선택하고 Add를 클릭합니다.

자세한 내용은 Azure 설명서를 참조하세요.

4
  1. 좌측 탐색의 Manage 섹션에서 Manifest을 클릭합니다.

  2. 0}을 accessTokenAcceptedVersion null 에서 2 로 업데이트합니다.

    숫자 2는 Microsoft의 액세스 토큰 버전 2를 나타냅니다. 다른 애플리케이션에서는 이를 Active Directory에서 관리하는 사용자 ID의 서명된 증명으로 사용합니다. 버전 2는 토큰이 MongoDB가 이해할 수 있는 JSON Web Token인지 확인합니다.

  3. Save를 클릭합니다.

선택적 클레임을 추가하는 방법에 대해 자세히 알아보려면 Azure 설명서를 참조하세요.

5
  1. 왼쪽 탐색에서 Overview을 클릭합니다.

    Application (client) ID 값을 복사합니다.

  2. 상단 탐색에서 Endpoints을 클릭합니다.

    /.well-known/openid-configuration 부분을 제외한 OpenID Connect metadata document 값을 복사합니다.

    OpenID Connect metadata document URL 에서 issuer 값을 복사하여 이 값을 가져올 수도 있습니다.

다음 표는 이러한 Microsoft Entra ID UI 값이 MongoDB 매개 oidcIdentityProviders 변수에서 매핑되는 것을 보여줍니다.

Microsoft Entra ID UI
MongoDB oidcIdentityProviders 매개변수 필드

Application (client) ID

clientID
audience

OpenID Connect metadata document (without /.well-known/openid-configuration)

issuer

1

Okta Admin 대시보드 에서 왼쪽 탐색 창을 사용하여 Applications → Applications 로 이동합니다.

  1. Applications 화면에서 Create App Integration을 클릭합니다.

  2. Sign-in method 섹션에서 OIDC - OpenID Connect를 선택합니다.

  3. Application type 섹션에서 Native Application를 선택합니다.

  4. Next를 클릭합니다.

학습 내용은 OIDC 앱 통합 생성을 참조하세요.

2

앱 통합을 생성하면 자동으로 New Native App Integration 화면으로 리디렉션됩니다.

  1. App integration name 필드 에 애플리케이션 의 이름을 입력합니다.

  2. Grant type 필드 에서 권한 부여 유형을 선택합니다.

    다음 권한 부여 유형을 활성화합니다.

    • Authorization Code or Device Authorization

    • (선택 사항) Refresh Token

      토큰 새로 고침을 활성화하면 더 나은 사용자 경험을 제공할 수 있습니다. 새로 고침 토큰이 활성화되지 않은 경우 사용자는 액세스 토큰이 만료되면 ID 제공자 로 다시 인증해야 합니다.

  3. Sign-in redirect URIs 섹션에 URL 을 입력합니다.

    다음 URL 을 입력합니다: http://localhost:27097/redirect.

  4. Assignments 섹션에서 Controlled accessEnable immediate access 필드를 구성합니다.

    1. Controlled access 필드 에서 Allow everyone in your organization to access을(를) 선택합니다.

    2. Enable immediate access 필드 의 경우 Enable immediate access with Federation Broker Mode 이 선택되어 있는지 확인합니다.

  5. Save를 클릭합니다.

학습 내용은 OIDC 앱 통합 생성을 참조하세요.

3

애플리케이션 대시보드 에서 General 탭 으로 이동하여 다음을 구성합니다.

  1. Client ID 필드 에서 아이콘을 클릭하여 나중에 사용할 수 있도록 클라이언트 ID 를 복사합니다.

  2. Proof Key for Code Exchange (PKCE) 필드 에서 Require PKCE as additional verification 이(가) 활성화되어 있는지 확인합니다( 기본값 선택되어 있음).

4

왼쪽 탐색 창에서 Security → API 로 이동합니다. Add Authorization Server 을(를) 클릭합니다.

  1. Name 필드 에 서버 의 이름을 입력합니다.

  2. Audience 필드 에 이전 단계의 클라이언트 ID 를 붙여넣습니다.

  3. (선택 사항) Description 필드 에 서버 에 대한 설명을 입력합니다.

  4. Save를 클릭합니다.

학습보려면 권한 부여 서버 만들기를 참조하세요.

5

권한 부여 서버 를 생성하면 자동으로 권한 부여 서버 화면으로 리디렉션됩니다.

Settings 탭 아래에서 Metadata URI 의 첫 번째 부분을 .well-known 섹션까지 복사하여 발급자 URI를 저장합니다. URI 구조는 https://trial4238026.okta.com/oauth2/ausabgmhveoOQSMsE697와 유사해야 합니다.

6

권한 부여 서버 화면에서 Claims 탭 으로 이동하여 Add Claim 을 클릭합니다.

  1. 다음 구성 정보를 사용하여 Groups 클레임을 구성합니다.

    필드

    Name

    클레임의 이름을 입력합니다.

    Include in token type

    드롭다운을 클릭하고 Access Token을 선택합니다.

    Value type

    드롭다운을 클릭하고 Groups을 선택합니다.

    Filter

    드롭다운을 클릭하고 Matches regex을 선택합니다. 드롭다운 옆에 .*을 입력합니다.

    Disable claim

    확인하지 마세요.

    Include in

    Any scope0}을 선택합니다.

  2. Create를 클릭합니다.

학습보려면 클레임 생성을 참조하세요.

7

권한 부여 서버 화면에서 Access Policies 탭 으로 이동하여 Add Policy 을 클릭합니다.

  1. Name 필드 에 정책 이름을 입력합니다.

  2. Description 필드 에 정책에 대한 설명을 입력합니다.

  3. Assign to 필드 에서 All clients을(를) 선택합니다.

  4. Create Policy를 클릭합니다.

학습보려면 액세스 정책 생성을 참조하세요.

8

Access Policies 탭 에서 Add Rule을(를) 클릭합니다.

  1. Rule Name 필드 에 액세스 정책의 이름을 입력합니다.

  2. IF Grant Type is에 대해 부여 유형을 선택합니다.

    권한 부여 유형을 구성할 때 클라이언트 동작에 따라 적절한 옵션을 선택합니다.

    • 클라이언트 가 자체적으로 작동하는 경우 Client Credentials 을 선택합니다.

    • 클라이언트 가 사용자를 대신하는 경우 다음을 선택합니다.

      • Authorization Code

      • Device Authorization

  3. 조직의 보안 정책에 따라 규칙 구성을 추가합니다.

    Okta 규칙 구성 예시:

    필드

    AND user is

    Any user assigned to the app0}을 선택합니다.

    AND Scopes requested

    Any scopes0}을 선택합니다.

    THEN Use this inline hook

    없음(비활성화)

    AND Access token lifetime is

    1 Hours

    AND Refresh token lifetime is

    두 번째 드롭다운을 클릭하고 Unlimited을 선택합니다.

    but will expire if not used every

    7 days을(를) 입력합니다.

  4. Create Rule를 클릭합니다.

학습 내용은 각 액세스 정책에 대한 규칙 만들기를 참조하세요.

9

왼쪽 탐색 창에서 Directory → Groups(으)로 이동하여 Add Group을(를) 클릭합니다.

  1. Name 필드 에서 디렉토리 이름을 OIDC 으로 지정합니다.

  2. (선택 사항) Description 필드 에 규칙에 대한 설명을 입력합니다.

  3. Save를 클릭합니다.

학습보려면 그룹 생성을 참조하세요.

10

왼쪽 탐색 창에서 Directory → People(으)로 이동하여 Add Person을(를) 클릭합니다.

  1. 해당 필드에 다음 값을 입력하여 사용자 세부 정보를 제공합니다.

    필드

    User type

    User0}을 선택합니다.

    First name

    필요에 따라 이름을 입력합니다.

    Last name

    필요에 따라 이름을 입력합니다.

    Username

    사용자 이름 으로 이메일 을 입력합니다.

    Primary email

    이메일 을 입력합니다. 이메일 은 Username 필드 에 사용된 이메일과 동일해야 합니다.

    Secondary email

    선택 사항.

    Groups

    OIDC을(를) 입력합니다.

    Activation

    Activate Now 을(를) 선택하고 I will set password을(를) 확인합니다.

    Password

    비밀번호를 입력합니다.

    User must change password on first login

    SELECT Optional

  2. Save를 클릭합니다.

학습 보려면 수동으로 사용자 추가를 참조하세요.

1

클라이언트 유형으로 public client/native application 를 선택합니다.

2
3

그룹의 경우 이 단계에서는 액세스 토큰에 인증하는 사용자의 그룹 멤버십 정보가 포함되어 있는지 확인합니다. MongoDB는 권한 부여를 위해 그룹 클레임으로 전송된 값을 사용합니다.

4

(선택 사항) 더 나은 사용자 경험을 위해 MongoDB 클라이언트가 토큰을 새로 고치도록 하려면 토큰 새로 고침 허용

5

(선택 사항) 데이터베이스 연결 세션 시간에 맞게 액세스 토큰 수명(exp 클레임)을 구성합니다.

애플리케이션 을 등록한 후 구성의 다음 단계에서 사용할 issuer, clientIdaudience 값을 저장합니다.

돌아가기

인력(휴먼)