외부 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 계정이 있어야 합니다.
단계
애플리케이션 등록
App registrations 로 이동합니다.
Azure Portal Microsoft Entra ID에서 계정, Atlas Search를 클릭하고 를 클릭합니다.
좌측 탐색의 Manage 섹션에서 App registrations을 클릭합니다.
New registration를 클릭합니다.
다음 값을 적용합니다.
필드값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 tohttp://localhost:27097/redirect
.Register를 클릭합니다.
애플리케이션 등록에 대해 자세히 알아보려면 Azure 설명서를 참조하세요.
그룹 클레임 추가
Token Configuration(으)로 이동합니다.
좌측 탐색의 Manage 섹션에서 Token Configuration을 클릭합니다.
Add groups claim를 클릭합니다.
Edit groups claim 0} 모달에서 을 Security 선택합니다.
선택하는 그룹은 Azure 환경에서 구성한 그룹 유형에 따라 다릅니다. 적절한 그룹 정보를 전송하려면 다른 그룹 유형을 선택해야 할 수도 있습니다.
Customize token properties by type 섹션에서 Group ID 만 선택합니다.
Add를 클릭합니다.
그룹 클레임 추가에 대해자세히 알아보려면 Azure 설명서를 참조하세요.
매니페스트 업데이트
좌측 탐색의 Manage 섹션에서 Manifest을 클릭합니다.
0}을 accessTokenAcceptedVersion
null
에서2
로 업데이트합니다.숫자
2
는 Microsoft의 액세스 토큰 버전 2를 나타냅니다. 다른 애플리케이션에서는 이를 Active Directory에서 관리하는 사용자 ID의 서명된 증명으로 사용합니다. 버전 2는 토큰이 MongoDB가 이해할 수 있는 JSON Web Token인지 확인합니다.Save를 클릭합니다.
선택적 클레임을 추가하는 방법에 대해 자세히 알아보려면 Azure 설명서를 참조하세요.
메타데이터 기억
왼쪽 탐색에서 Overview을 클릭합니다.
Application (client) ID 값을 복사합니다.
상단 탐색에서 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) |
|
다음을 구성합니다. New Native App Integration
앱 통합을 생성하면 자동으로 New Native App Integration 화면으로 리디렉션됩니다.
App integration name 필드 에 애플리케이션 의 이름을 입력합니다.
Grant type 필드 에서 권한 부여 유형을 선택합니다.
다음 권한 부여 유형을 활성화합니다.
Authorization Code or Device Authorization
(선택 사항) Refresh Token
토큰 새로 고침을 활성화하면 더 나은 사용자 경험을 제공할 수 있습니다. 새로 고침 토큰이 활성화되지 않은 경우 사용자는 액세스 토큰이 만료되면 ID 제공자 로 다시 인증해야 합니다.
Sign-in redirect URIs 섹션에 URL 을 입력합니다.
다음 URL 을 입력합니다:
http://localhost:27097/redirect
.Assignments 섹션에서 Controlled access 및 Enable immediate access 필드를 구성합니다.
Controlled access 필드 에서 Allow everyone in your organization to access을(를) 선택합니다.
Enable immediate access 필드 의 경우 Enable immediate access with Federation Broker Mode 이 선택되어 있는지 확인합니다.
Save를 클릭합니다.
권한 부여 서버 추가
왼쪽 탐색 창에서 Security → API 로 이동합니다. Add Authorization Server 을(를) 클릭합니다.
Name 필드 에 서버 의 이름을 입력합니다.
Audience 필드 에 이전 단계의 클라이언트 ID 를 붙여넣습니다.
(선택 사항) Description 필드 에 서버 에 대한 설명을 입력합니다.
Save를 클릭합니다.
학습보려면 권한 부여 서버 만들기를 참조하세요.
클레임 Groups 추가
권한 부여 서버 화면에서 Claims 탭 으로 이동하여 Add Claim 을 클릭합니다.
다음 구성 정보를 사용하여 Groups 클레임을 구성합니다.
필드값Name
클레임의 이름을 입력합니다.
Include in token type
드롭다운을 클릭하고 Access Token을 선택합니다.
Value type
드롭다운을 클릭하고 Groups을 선택합니다.
Filter
드롭다운을 클릭하고 Matches regex을 선택합니다. 드롭다운 옆에
.*
을 입력합니다.Disable claim
확인하지 마세요.
Include in
Any scope0}을 선택합니다.
Create를 클릭합니다.
학습보려면 클레임 생성을 참조하세요.
액세스 정책 만들기
권한 부여 서버 화면에서 Access Policies 탭 으로 이동하여 Add Policy 을 클릭합니다.
Name 필드 에 정책 이름을 입력합니다.
Description 필드 에 정책에 대한 설명을 입력합니다.
Assign to 필드 에서 All clients을(를) 선택합니다.
Create Policy를 클릭합니다.
학습보려면 액세스 정책 생성을 참조하세요.
액세스 정책에 대한 규칙 만들기
Access Policies 탭 에서 Add Rule을(를) 클릭합니다.
Rule Name 필드 에 액세스 정책의 이름을 입력합니다.
IF Grant Type is에 대해 부여 유형을 선택합니다.
권한 부여 유형을 구성할 때 클라이언트 동작에 따라 적절한 옵션을 선택합니다.
클라이언트 가 자체적으로 작동하는 경우 Client Credentials 을 선택합니다.
클라이언트 가 사용자를 대신하는 경우 다음을 선택합니다.
Authorization Code
Device Authorization
조직의 보안 정책에 따라 규칙 구성을 추가합니다.
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을(를) 입력합니다.
Create Rule를 클릭합니다.
그룹 만들기
왼쪽 탐색 창에서 Directory → Groups(으)로 이동하여 Add Group을(를) 클릭합니다.
Name 필드 에서 디렉토리 이름을
OIDC
으로 지정합니다.(선택 사항) Description 필드 에 규칙에 대한 설명을 입력합니다.
Save를 클릭합니다.
학습보려면 그룹 생성을 참조하세요.
조직 에 사용자 추가
왼쪽 탐색 창에서 Directory → People(으)로 이동하여 Add Person을(를) 클릭합니다.
해당 필드에 다음 값을 입력하여 사용자 세부 정보를 제공합니다.
필드값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
Save를 클릭합니다.
학습 보려면 수동으로 사용자 추가를 참조하세요.
(조건부) 그룹으로 인증하는 경우 클레임을 groups 추가하거나 활성화 합니다.
그룹의 경우 이 단계에서는 액세스 토큰에 인증하는 사용자의 그룹 멤버십 정보가 포함되어 있는지 확인합니다. MongoDB는 권한 부여를 위해 그룹 클레임으로 전송된 값을 사용합니다.
(선택 사항) 더 나은 사용자 경험을 위해 MongoDB 클라이언트가 토큰을 새로 고치도록 하려면 토큰 새로 고침 허용
(선택 사항) 데이터베이스 연결 세션 시간에 맞게 액세스 토큰 수명(exp
클레임)을 구성합니다.
애플리케이션 을 등록한 후 구성의 다음 단계에서 사용할 issuer
, clientId
및 audience
값을 저장합니다.