Azure Active Directory

  • 15 minutes to read

Azure Active Directory(AD)는 Microsoft의 클라우드 기반 IDaaS(Identity as a Service) 서비스입니다. Azure AD는 사용자, 그룹 및 애플리케이션 등의 ID 관리 및 인증 서비스를 제공합니다.

Azure AD는 클라우드 기반의 ID 관리 서비스로서, 사용자 인증과 권한 부여를 처리하며, 다양한 애플리케이션 및 서비스와 통합하여 단일 ID 및 액세스 제어를 제공합니다. Azure AD는 다음과 같은 기능을 제공합니다.

  1. 사용자 및 그룹 관리: 사용자와 그룹을 Azure AD에 추가하고 관리할 수 있습니다. 그룹 기반 권한 부여를 사용하여 사용자에게 액세스 권한을 부여할 수 있습니다.

  2. 인증 및 SSO: 다양한 인증 방법을 지원하며, 단일 로그인(SSO)을 통해 다른 애플리케이션 및 서비스에 대한 액세스를 허용합니다.

  3. 애플리케이션 통합: Azure AD는 다양한 애플리케이션 및 서비스와 통합할 수 있습니다. Azure AD를 사용하여 애플리케이션 및 서비스에 대한 액세스 권한을 부여하고, 인증 및 SSO를 구현할 수 있습니다.

  4. 보안 및 감사: Azure AD는 사용자 및 애플리케이션에 대한 감사 로그를 제공하며, 다양한 보안 기능을 제공합니다. 예를 들어, 멀티 팩터 인증(MFA)과 같은 보안 기능을 지원합니다.

Azure AD는 기업용 및 개인용으로 제공됩니다. 기업용 Azure AD는 기업에서 사용자, 그룹 및 애플리케이션을 관리하는 데 사용되며, 개인용 Azure AD는 Microsoft 계정과 관련된 ID 관리 서비스를 제공합니다.

Azure AD B2C의 User flows에 대한 소개

Azure Active Directory B2C (Azure AD B2C)는 사용자 중심의 클라우드 기반 ID 및 액세스 관리 서비스입니다. 이 서비스는 개발자가 사용자 인증 및 인가 기능을 쉽게 통합할 수 있게 해주며, 기업과 개발자 모두에게 맞춤화된 사용자 경험을 제공할 수 있습니다. Azure AD B2C의 핵심 기능 중 하나는 "User flows"입니다.

User flows는 사전 정의된 단계별 프로세스로, 사용자가 애플리케이션에서 수행해야 할 일련의 작업을 가이드합니다. 이러한 작업에는 가입, 로그인, 프로필 편집 및 암호 재설정과 같은 일반적인 사용자 액세스 작업이 포함됩니다. User flows는 애플리케이션에 필요한 인증 및 인가 시나리오를 쉽게 구현할 수 있게 도와줍니다.

User flows의 주요 특징은 다음과 같습니다:

  1. 사용자 친화적: 사용자는 애플리케이션에 직관적으로 액세스하고 작업을 수행할 수 있습니다. 이를 통해 사용자 경험이 향상되며, 사용자의 만족도와 애플리케이션에 대한 충성도가 높아집니다.

  2. 맞춤화 가능: User flows를 애플리케이션에 맞게 구성할 수 있으며, 사용자 인터페이스를 완전히 사용자화할 수 있습니다. 이를 통해 기업 브랜드와 일관성을 유지하면서 사용자에게 맞춤화된 경험을 제공할 수 있습니다.

  3. 확장성: 애플리케이션 규모에 관계없이 User flows를 사용하여 사용자 액세스를 관리할 수 있습니다. 이는 시간이 지남에 따라 사용자 수가 늘어나거나 애플리케이션 요구 사항이 변경될 때 유용합니다.

  4. 보안 강화: User flows는 Azure AD B2C의 보안 기능을 활용하여 사용자 액세스를 안전하게 관리합니다. 이러한 기능에는 다단계 인증, 암호 정책, 사기 예방 기능 등이 포함됩니다.

Azure AD B2C의 User flows를 사용하여 사용자 액세스를 관리하려면 다음 단계를 수행해야 합니다:

  1. Azure AD B2C 디렉토리 생성 및 구성

  2. 애플리케이션 등록

  3. User flows 생성 및 구성: Azure AD B2C 포털에서 사용자 액세스 작업에 맞는 User flows를 생성하고 구성합니다. 예를 들어, 가입 및 로그인, 프로필 편집, 암호 재설정 등의 작업을 수행하려면 각각에 대해 별도의 User flows를 생성해야 합니다.

  4. User flows 속성 정의: 생성한 User flows에서 사용자가 입력하거나 수정해야 하는 속성을 정의합니다. 이러한 속성은 이메일 주소, 이름, 전화 번호 등과 같은 사용자 정보를 포함할 수 있습니다.

  5. 인증 및 인가 설정 구성: User flows를 사용하여 다양한 인증 방법과 인가 정책을 구성할 수 있습니다. 예를 들어, 다단계 인증을 사용하거나, 특정 소셜 미디어 계정으로 로그인하는 등의 옵션을 설정할 수 있습니다.

  6. 사용자 인터페이스 사용자화: User flows에서 제공되는 페이지 레이아웃 및 스타일링 옵션을 사용하여 사용자 인터페이스를 맞춤화할 수 있습니다. 이를 통해 기업 브랜드 및 디자인 가이드라인에 맞는 사용자 경험을 제공할 수 있습니다.

  7. 애플리케이션 통합: 생성한 User flows를 애플리케이션에 통합합니다. 이를 위해 애플리케이션 코드에서 Azure AD B2C SDK를 사용하거나 OpenID Connect 및 OAuth 2.0 표준을 사용하여 직접 통합할 수 있습니다.

  8. 테스트 및 배포: User flows를 통합한 후, 정상적으로 작동하는지 확인하기 위해 애플리케이션을 테스트합니다. 문제가 없다면 애플리케이션을 실제 환경에 배포합니다.

Azure AD B2C의 User flows를 사용하여 사용자 액세스를 관리하면, 개발자는 보안 및 사용자 경험에 관한 복잡한 문제를 신속하게 해결할 수 있습니다. 이를 통해 기업은 사용자의 만족도를 높이고, 개발 비용과 시간을 절약할 수 있습니다.

AddMicrosoftIdentityUI 메서드

builder.Services.AddControllersWithViews().AddMicrosoftIdentityUI(); 코드는 ASP.NET Core 애플리케이션에서 Azure Active Directory B2C (Azure AD B2C)와 같은 Microsoft Identity Platform을 사용하여 인증을 구현하는 데 필요한 구성 요소를 설정하는 데 사용됩니다.

이 코드는 다음 두 가지 주요 작업을 수행합니다:

  1. AddControllersWithViews(): 이 메서드는 애플리케이션에서 MVC 패턴을 사용할 수 있게 해줍니다. MVC 패턴은 Model-View-Controller를 나타내며, 이 패턴을 사용하면 애플리케이션의 코드와 사용자 인터페이스를 구조화하고 분리할 수 있습니다. AddControllersWithViews() 메서드는 필요한 서비스와 구성 요소를 추가하여 애플리케이션에서 컨트롤러와 뷰를 사용할 수 있게 해줍니다.

  2. AddMicrosoftIdentityUI(): 이 메서드는 Microsoft Identity Platform과 연동되는 사용자 인터페이스(UI)를 제공하는 데 필요한 구성 요소와 서비스를 애플리케이션에 추가합니다. 이 메서드를 사용하면 로그인, 로그아웃, 프로필 관리 등의 인증 관련 기능을 사용자에게 제공하는 데 필요한 UI를 쉽게 통합할 수 있습니다.

이 코드는 일반적으로 ASP.NET Core 애플리케이션의 Startup.cs 파일의 ConfigureServices 메서드 내에서 사용됩니다. ConfigureServices 메서드는 애플리케이션의 종속성 주입 컨테이너에 서비스를 등록하는 데 사용되며, 애플리케이션이 시작할 때 호출됩니다.

따라서 builder.Services.AddControllersWithViews().AddMicrosoftIdentityUI(); 코드를 사용하면, 애플리케이션에 필요한 인증과 관련된 UI를 쉽게 통합하고, Azure AD B2C와 같은 Microsoft Identity Platform을 사용하여 사용자 인증을 구현할 수 있습니다.

AddAuthorization 메서드

builder.Services.AddAuthorization(options => 
{
    options.FallbackPolicy = options.DefaultPolicy;    
});

이 코드는 ASP.NET Core 애플리케이션에서 인가 정책을 구성하는 데 사용됩니다. 인가는 인증된 사용자가 수행할 수 있는 작업에 대한 권한을 결정하는 과정입니다. 인가 정책은 사용자의 역할, 클레임, 그룹 구성원 등과 같은 사용자 정보에 기반하여 액세스 권한을 부여하거나 거부하는 규칙을 정의합니다.

이 코드의 주요 구성 요소는 다음과 같습니다:

  1. builder.Services.AddAuthorization(): 이 메서드는 애플리케이션에 필요한 인가 서비스와 구성 요소를 추가합니다. 이 메서드는 ConfigureServices 메서드 내에서 호출되며, 인가 정책을 구성하기 위해 람다 식으로 옵션을 정의합니다.

  2. options.FallbackPolicy = options.DefaultPolicy;: 이 코드는 인가 정책의 FallbackPolicy를 설정합니다. FallbackPolicy는 명시적으로 정의되지 않은 요청에 대한 기본 정책을 설정하는 데 사용됩니다. 이 경우, FallbackPolicy는 기본(Default) 정책과 동일하게 설정되어 있습니다.

이 설정을 사용하면, 특정 인가 정책이 구성되지 않은 요청에 대해 기본 정책이 적용됩니다. 이렇게 하면 개발자가 모든 요청에 대해 명시적으로 정책을 정의할 필요 없이 기본 액세스 권한을 설정할 수 있습니다.

간단한 예를 들면, 애플리케이션에서 특정 엔드포인트에 대해 인가 정책을 정의하지 않았다고 가정해보겠습니다. 이 경우 FallbackPolicy에 의해 해당 요청은 기본 정책에 따라 처리됩니다. 이렇게 함으로써, 누락된 인가 정책에 대한 처리를 간소화하고, 개발자가 기본적인 액세스 권한을 쉽게 관리할 수 있게 됩니다.

AddMicrosoftIdentityConsentHandler 메서드

builder.Services.AddServerSideBlazor().AddMicrosoftIdentityConsentHandler() 코드는 ASP.NET Core 애플리케이션에서 서버 측 Blazor를 사용하면서 Microsoft Identity Platform을 사용하여 인증 및 인가를 처리하는 데 필요한 구성 요소를 설정하는 데 사용됩니다.

이 코드는 다음 두 가지 주요 작업을 수행합니다:

  1. AddServerSideBlazor(): 이 메서드는 애플리케이션에서 서버 측 Blazor를 사용할 수 있도록 설정합니다. 서버 측 Blazor는 웹 애플리케이션에서 C# 및 Razor 구문을 사용하여 동적 사용자 인터페이스를 구축하는 데 사용되는 프레임워크입니다. 이 메서드는 ConfigureServices 메서드 내에서 호출되며, 서버 측 Blazor 구성 요소 및 서비스를 추가합니다.

  2. AddMicrosoftIdentityConsentHandler(): 이 메서드는 Microsoft Identity Platform과 연동하여 사용자 동의 처리를 구성하는 데 필요한 구성 요소와 서비스를 애플리케이션에 추가합니다. 사용자 동의는 사용자가 애플리케이션에 특정 정보에 액세스하거나 작업을 수행할 수 있는 권한을 부여하는 과정입니다. 이 메서드를 사용하면, 사용자가 필요한 동의를 제공하기 전까지 개인 정보에 액세스하지 못하도록 애플리케이션을 보호할 수 있습니다.

따라서 builder.Services.AddServerSideBlazor().AddMicrosoftIdentityConsentHandler(); 코드를 사용하면, 애플리케이션에서 서버 측 Blazor를 사용하여 동적인 사용자 인터페이스를 구축하면서 Microsoft Identity Platform을 사용하여 인증 및 사용자 동의 처리를 구현할 수 있습니다. 이렇게 함으로써 개발자는 사용자 인증 및 동의 과정을 보다 간단하고 안전하게 처리할 수 있습니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com