Microsoft Entra ID란?
Entra ID는 Windows Server AD의 클라우드 버전? ㄴㄴ아님. 온프레미스 AD 완전 대체? 아님. Windows AD 서버를 쓸 경우 Entra ID에 연결해서 Azure로 확장하는거임. ⇒ 동일한 인증 방법으로 로컬, 클라우드 리소스에 접근 가능해진다.

Windows AD와 별도로 Entra ID 쓸 수도 있음. 소규모 회사인 경우에는 Entra ID만 써서 M365 등에 접근함.
Entra ID만 쓸 경우: 중앙집중 관리 모델 X Windows머신: 로컬 자격 증명 사용으로 인증. Entra ID 앱 사용하고 관리할 권한을 얻을 수 있음.
디렉토리, 구독, 사용자
MS가 제공하는 클라우드 제품들은 모두 Entra ID로 사용자를 식별하고 접근 권한을 제어함. 회사(조직)가 등록하면 ‘기본 디렉토리’가 할당됨. ‘기본 디렉토리’는 Entra ID의 인스턴스임. 이 디렉토리에는 회사가 구매한 서비스에 접근할 수 있는 사용자, 그룹이 포함됨. 이 디렉토리를 테넌트 라고도 하며, 테넌트로 참조할 수 있음. 테넌트 = 조직과 조직에 할당된 기본 디렉토리
‘구독’은 청구 단위이면서 보안 경계임. VM 등의 리소스들은 구독에 연결됨. 구독은 해당 구독의 리소스에서 발생하는 비용 지불하는 ‘소유자’가 있음. 구독은 양도될 수 있음. 단일 MS Entra 디렉토리와 연결됨. 하나의 디렉토리에 여러 구독이 있다는 뜻. 구독에 사용자, 그룹 추가 가능함.

여러 디렉토리에 속한 경우에는 디렉토리 전환이 가능함. 기본 디렉토리를 마지막에 방문한 디렉토리 또는 특정 디렉토리로 지정할 수 있음. 구독의 필터도 설정할 수 있는데, 여러 구독에 접근할 수 있지만 일부에서만 작업하는 경우에 유용함.

… 디렉토리 생성에 대한 내용은 생략함.
사용자 만들기 및 관리
로그인 → Entra ID가 토큰으로 권한 부여 → 접근할 수 있는 리소스, 수행할 작업 결정
- MS Entra 관리 센터
- Entra 제품을 위한 ID 포털 웹.
- 조직, 관리자가 중앙에서 관리할 수 있는 통합 관리 환경
사용자 보기
왼쪽 창에서 사용자 - 모든 사용자 선택. 사용자 유형, ID 확인 가능.

사용자는 세 가지가 있음.
-
클라우드 ID
- Entra ID에만 존재. 관리자 계정이 해당됨.
- 다른 디렉토리의 사용자가 위 구독 리소스에 접근해야 함 → 원본은 Entra ID or 외부 Entra ID
- 주 디렉토리에서 제거할 경우 삭제됨.
-
디렉토리 동기화 된 ID
- 온프레미스 AD에 존재하는 사용자
- Windows Server AD - Entra Connect 동기화 작업 → Azure로 가져옴
-
게스트 사용자
- Azure 외부 사용자
- 외부 클라우드 공급자 계정, MS계정(Xbox live 계정 등)
- 출처: 초대받은 사용자
- 외부 공급업체 / 계약자가 리소스에 접근해야 하는 경우 사용
- 사용 완료 시 계정, 권한 제거 가능
사용자 추가
Entra ID에 클라우드 ID 추가하는 방법들
- 온프레미스 Windows Server AD 동기화
- MS Entra 관리 센텉 사용
- Azure Portal 사용
- CLI 사용 등
온프레미스 WSAD 동기화
Entra Connect: AD를 Entra 인스턴스로 동기화 해주는 서비스 대부분의 고객들인 이 방법으로 사용자 추가. SSO로 로컬, 클라우드 리소스에 접근 가능.
Microsoft Entra 관리 센터 사용
Entra 관리 센터로 새 사용자 수동 추가 가능 << 제일 쉬움 권한이 ‘사용자 관리자’ 역할이어야만 가능함.
새 사용자 만들기 
프로필 정보 추가: 디렉토리의 기본 도메인 포함하는 이름 갖게 됨(temp@exampledomain.onmicrosoft.com)

디렉토리로 사용자 초대 가능: 메일로 초대함. 해당 메일 주소와 계정이 연결됨. 메일 주소 연결 안돼있으면 MS 계정 만들어야 함. 게스트 사용자로 Entra ID에 추가됨.

CLI 사용
추가할 사람 많으면 CLI 써라.
New-MgUser 명령어 쓰자.
PowerShell 기준임.
# create a password profile value
$PasswordProfile = @{ PassWord = "<PassWord>"}
# create the new user
New-MgUser -DisplayName "Abby Brown" -PasswordProfile $PasswordProfile -MailNeckName "AbbyB" -UserPrincipalName "AbbyB@contoso.com" -AccountEnabled위 명령어 입력하면 새로운 사용자 return.
DisplayName Id UserPrincipalName
----------- -- -----------------
Abby Brown f36634c8-8a93-4909-9248-0845548bc515 AbbyB@contoso.comPowerShell 싫으면 Azure CLI 써도 됨.
az ad user create --display-name "Abby Brown" --password "<password>" --user-principal-name "AbbyB@contoso.com" --force-change-password-next-login true --mail-nickname "AbbyB"사용자 대량 추가 시 많은 경우에 CSV파일을 씀. 이 경우에는 아래 것들을 주의해야 함.
- 네이밍 규칙: 네이밍 규칙 설정, 구현
- 암호: 암호 규칙 구현. 일반적으로 랜덤 생성 후 새 사용자나 관리자에게 메일 전송함.
Azure PowerShell에서 CSV 쓰려면?
Connect-MgGraph명령어로 디렉토리에 대한 PowerShell 연결 생성(디렉토리에 대해 권한 있는 관리자 계정으로 해야 함).- 새 사용자의 새 암호 프로필 생성. 암호 복잡석 규칙 준수해야 함.
Import-CSV로 CSV 파일 가져옴. 경로 + 파일 이름 지정.- 파일의 사용자 반복 → 사용자 매개변수(계정이름, 표시이름, 부서, 직위 등) 생성.
New-MgUser명령으로 사용자 생성. 각 계정은 활성화 해야 함.
기타 옵션
Microsoft Graph API 사용하거나 동일한 디렉토리 공유하는 경우
- M365 관리 센터, Microsoft Intune 관리 콘솔
- 프로그래밍 방식으로 Entra ID 사용자 추가
그룹 만들기, 관리
그룹으로 더 쉬운 권한 관리 가능. 리소스 소유자 or Entra 디렉토리 소유자: 구성원들에게 권한 한번에 할당 가능. 그룹으로 경계를 정의하고 특정 사용자를 제거하는 등 최소 노력으로 접근 허가/거부. Entra ID는 부서, 직함 등의 규칙 기반의 멤버 자격 정의 기능을 지원함.
Entra ID로 두 형식의 그룹 정의 가능:
- 보안 그룹
- 가장 일반적
- 사용자 그룹의 공유 리소스에 대한 구성원, 컴퓨터 접근 관리
- 예) 특정 정책의 특정 보안 그룹 생성 가능 → 모든 구성원에게 권한 조정 가능 (MS Entra 관리자 필요).
- M365 그룹
- 공유 사서함, 일정, 파일 등의 권한 부여 → 협업 기회 제공
- 외부 사용자에게 그룹 접근 권한 제공 가능.
- 사용자, 관리자 모두 사용 가능
사용 가능한 그룹 보기
Entra 관리 센터 - 그룹 - 개요 ⇒ 모든 그룹 조회 가능

MS Entra ID에 그룹 추가

Membership type의 값:
- Assigned
- 해당 그룹에 특정 사용자 or 그룹 포함됨
- Dynamic User
- 기준을 만들어 규칙 생성
- 예) 영업 부서 사용자는 영업 그룹에 동적 할당
- 보안 그룹: 디바이스, 사용자에게
- M365 그룹: 사용자 그룹에만 사용 가능.
- 다른 부서로 이동하면 사용자는 그룹에서 자동 제거
- MS Entra P1 라이선스 필요
- 기준을 만들어 규칙 생성
- Dynamic Device
- 디바이스를 기준으로 동적 할당.
- Dynamic User의 사용자 → 디바이스
- MS Entra P1 라이선스 필요
그룹 소유자: 그룹 관리 가능 그룹 구성원: 그룹에 포함됨 위 둘 모두 개별 사용자 뿐 아니라 다른 그룹도 포함할 수 있음.
스크립트 그룹 만들기
New-MgGroup 명령어로 그룹 추가 가능.
New-MgGroup -Description "Marketing" -DisplayName "Marketing" -MailNickName "Marketing" -SecurityEnabled -MailEnabled:$False그룹의 멤버십 변경
그룹 생성 후에 사용자 추가, 제거 가능. 해당 그룹 선택 후 관리 섹션의 옵션 사용.
역할을 사용해 리소스 접근 제어
Azure 리소스에 대한 기본 제공 역할 (with PowerShell)
기본적으로 제공되는 역할이 잇음. 모든 리소스에 적용되는 세 가지 역할:
- 소유자
- 권한 위임을 포함한 모든 접근 권한 보우
- 기여자
- 모든 리소스 생성, 관리 가능하지만 권한 부여 불가
- 읽기 권한자
- 말 그대로 읽기만 가능
역할 정의
역할은 JSON 파일에 정의됨. 이름, ID설명 등이 있음.
허용된 권한, 거부된 권한, 역할 범위(읽기 권한 등)가 포함됨.
PowerShell의 Get-AzRoleDefinition Owner cmdlet으로 정보를 가져와보자.
Get-AzRoleDefinition OwnerName : Owner
Id : 8e3af657-a8ff-443c-a75c-2fe8c4bcb635
IsCustom : False
Description : Lets you manage everything, including access to resources.
Actions : {*}
NotActions : {}
DataActions : {}
NotDataActions : {}
AssignableScopes : {/}기본 제공 역할
자세히 알아보려면 여기 링크를 참조할 것.
역할 정의란?
역할 정의 = 사용 권한 컬렉션. 읽기, 쓰기, 삭제 등 수행 가능한 작업들이 나열됨. 수행 불가능한 작업 or 데이터 관련 작업도 나열 가능.
| 이름 | 설명 |
|---|---|
Id | Azure에서 할당한 역할의 고유 식별자 |
IsCustom | Custom이면 True, 기본 제공 역할이면 False |
Description | 역할에 대한 설명 |
Actions [] | 허용된 사용 권한 |
NotActions [] | 거부된 사용 권한 |
DataActions [] | (데이터에 적용되는) 허용된 특정 사용 권한 |
NotDataActions [] | (데이터에 적용되는) 거부된 특정 사용 권한 |
AssignableScopes [] | 역할 적용 범위. /의 경우 전역을 나타냄. |
RBAC 또는 기본 API에서 쓸 경우 JSON으로 표시됨. 아래는 JSON 형식의 참가자 역할 정의.
{
"Name": "Contributor",
"Id": "b24988ac-6180-42a0-ab88-20f7382dd24c",
"IsCustom": false,
"Description": "Lets you manage everything except access to resources.",
"Actions": [
"*"
],
"NotActions": [
"Microsoft.Authorization/*/Delete",
"Microsoft.Authorization/*/Write",
"Microsoft.Authorization/elevateAccess/Action"
],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/"
]
}Actions 및 NotActions
Actions 및 NotActions 속성을 조정하면 권한 부여 or 거부할 수 있음.
이들은 항상 {Company}.{ProviderName}/{resourceType}/{action}의 형식임.
아래는 위의 세 역할에 대한 예시임.
| 기본 제공 역할 | Actions | NotActions |
|---|---|---|
| 소유자 | * | - |
| 참가자 | * | Microsoft.Authorization/*/Delete, Microsoft.Authorization/*/Write, Microsoft.Authorization/elecateAccess/Action |
| 읽기 권한자 | */read | - |
Actions의 *는 모든 작업을 수행할 수 있다는 뜻.
→ Azure에 새로운 리소스 종류가 추가되어도 관리 가능함
NotActions 작업들은 Actions에서 제외됨.
참가자 역할에서 NotActions는 못하고, 나머지는 다 된다.
읽기 권한자는 말 그대로 읽을 수만 있음.
DataActions 및 NotDataActions
데이터 작업은 DataActions, NotDataActions에 명시됨.
관리작업과 데이터 작업 각자 따로인거임.
아무튼 지정 가능한 몇 가지 작업에는
- 컨테이너 Blob 목록 읽기
- Storage blob 작성
- 큐의 메세지 삭제 등등이 있다.
리소스 공급자는 isDataAction 속성을 true로 설정해 데이터 작업임을 명시할 수 있음.
데이터 작업이 없는 역할의 경우 생략 가능.
예시는 아래와 같다.

할당 가능한 범위
Actions, NotActions 만으로는 완전한 구현 안됨. 범위도 지정해야 함.
- 구독 내부로 제한
- 특정 구독의 특정 리소스 그룹으로 제한
- 특정 리소스로 제한
- 두 개의 구독에 역할 할당
역할 만들기
기본 제공 역할로 99% 해낼 수 있는데 맘에 안들면 커스텀 가능. 근데 P1, P2 있어야 함.
- Entra 관리 센터
- Azure Portal
- Azure PowerShell
- Azure Graph API 를 통해 설정할 수 있음.
Microsoft Entra Connect로 AD를 MS Entra ID에 연결
온프레미스 WSAD 쓰는 회사는 Entra Connect로 마이그레이션 가능. Entra Connect는 동기화를 위해 설치 가능한 무료 도구임. 하이브리드 ID 환경에서 Entra ID와 통합된 공통 ID를 제공할 수 있음.

MS Entra Connect에 포함된 것
하이브리드 ID 시스템을 만들기 위해 제공하는 것들 ㅇㅇ
- 서비스 동기화
- 사용자, 그룹 등 개체 생성
- 온프레미스 정보가 클라우드와 동기화
- 상태 모니터링
- Azure Portal에서 모니터링, 중앙 위치 제공
- Entra Connect Health에서 확인
- AD FS (AD Feredation Services)
- 선택적 옵션
- AD FS 인프라를 통해 SSO, AD 로그인 정책, 다단계 인증 등 복잡한 배포 해결 가능
- 암호 해시 동기화
- 사용자 온프레미스 AD 암호 해시를 Entra ID와 동기화 → 로그인
- 패스스루 인증
- 온프레미스, 클라우드 앱 모두 동일한 암호로 로그인
- 위의 암호 해시 동기화 대신 본 기능 사용할 수 있음
혜택
온프레미스를 Entra ID와 통합하면 ID가 같아지니까 당연히 편하겠죠 ㅇㅅㅇ
- 단일 ID로 온프레미스 앱, M365 등 클라우드 앱에 모두 접근
- 단일 도구로 동기화, 로그인 위한 간편 배포 환경 제공
- 필요한 최신 기능 제공
설치 중
[설치 가이드](설치 가이드) 있음.