외부 테넌트에서 샘플 ASP.NET Core 웹앱에 대한 사용자 로그인
이 방법 가이드에서는 샘플 ASP.NET Core 웹 애플리케이션을 사용하여 .NET용 Microsoft 인증 라이브러리 및 ASP.NET Core용 Microsoft ID 웹을 사용하여 인증을 처리하는 최신 인증의 기본 사항을 보여줍니다.
이 문서에서는 Microsoft Entra 관리 센터에 웹 애플리케이션을 등록하고 로그인 및 로그아웃 사용자 흐름을 만들게 됩니다. 사용자 흐름과 웹 애플리케이션을 연결하고, 사용자 고유의 외부 테넌트 세부 정보를 사용하여 샘플 ASP.NET Core 웹 애플리케이션을 다운로드하고 업데이트합니다. 마지막으로 샘플 웹 애플리케이션을 실행하고 테스트합니다.
필수 조건
- ASP.NET Core 애플리케이션을 지원하는 모든 IDE를 사용할 수 있지만 이 가이드에서는 Visual Studio Code를 사용합니다. 이 IDE는 다운로드 페이지에서 다운로드할 수 있습니다.
- .NET 7.0 SDK.
- 외부 테넌트입니다. 아직 없는 경우 평가판에 등록합니다.
웹앱 등록
애플리케이션이 Microsoft Entra를 사용하여 사용자를 로그인할 수 있도록 하려면 Microsoft Entra 외부 ID가 사용자가 생성한 애플리케이션을 인식해야 합니다. 앱 등록은 앱과 Microsoft Entra 간의 신뢰 관계를 설정합니다. 애플리케이션을 등록하면 외부 ID는 인증 요청을 만들 때 앱을 식별하는 데 사용되는 값인 애플리케이션(클라이언트) ID라는 고유 식별자를 만듭니다.
다음 단계에서는 Microsoft Entra 관리 센터에 앱을 등록하는 방법을 보여 줍니다.
최소한 애플리케이션 개발자 자격으로 Microsoft Entra 관리 센터에 로그인합니다.
여러 테넌트에 액세스할 수 있는 경우 상단 메뉴의 설정 아이콘
을 사용하여 디렉터리 + 구독 메뉴에서 외부 테넌트로 전환합니다.
ID>애플리케이션>앱 등록으로 이동합니다.
+ 새 등록을 선택합니다.
애플리케이션 등록 페이지가 표시됩니다.
- 앱 사용자에게 표시될 의미 있는 애플리케이션 이름을 입력합니다(예: ciam-client-app).
- 지원되는 계정 유형에서 이 조직 디렉터리의 계정만을 선택합니다.
등록을 선택합니다.
성공적으로 등록되면 애플리케이션의 개요 창이 표시됩니다. 애플리케이션 소스 코드에 사용할 애플리케이션(클라이언트) ID를 기록해 둡니다.
플랫폼 및 URL 정의
앱 등록에 앱 형식을 지정하려면 다음 단계를 수행합니다.
- 관리에서 인증을 선택합니다.
- 플랫폼 구성 페이지에서 플랫폼 추가를 선택한 다음 웹 옵션을 선택합니다.
- 리디렉션 URL에
https://localhost:7274/signin-oidc
를 입력합니다. - 프런트 채널 로그아웃 URL에서 로그아웃을 위해
https://localhost:7274/signout-callback-oidc
를 입력합니다. - 변경 내용을 저장하려면 구성을 선택합니다.
암시적 및 하이브리드 흐름 사용
빌드하는 애플리케이션은 암시적 흐름을 사용하며, 이를 위해 활성화가 필요합니다.
- 암시적 허용 및 하이브리드 흐름 섹션 아래에서 ID 토큰 옵션을 선택합니다.
- 저장을 선택합니다.
앱 클라이언트 암호 추가
등록된 애플리케이션에 대한 클라이언트 암호를 만듭니다. 애플리케이션은 토큰을 요청할 때 클라이언트 암호를 사용하여 ID를 증명합니다.
- 앱 등록 페이지에서 만든 애플리케이션(예: ciam-client-app)을 선택하여 개요 페이지를 엽니다.
- 관리에서 인증서 및 비밀을 선택합니다.
- 새 클라이언트 비밀을 선택합니다.
- 설명 상자에 클라이언트 암호에 대한 설명을 입력합니다(예: ciam 앱 클라이언트 암호).
- 만료에서 조직의 보안 규칙에 따라 비밀이 유효한 기간을 선택한 다음 추가를 선택합니다.
- 비밀의 값을 기록합니다. 이후 단계에서 구성에 이 값을 사용합니다. 인증서 및 비밀 페이지에서 다른 페이지로 이동한 후에는 비밀 값이 다시 표시되지 않으며 어떠한 방법으로도 검색할 수 없습니다. 따라서 반드시 기록해 둡니다.
관리자 동의 부여
앱 등록 페이지에서 만든 애플리케이션(예: ciam-client-app)을 선택하여 개요 페이지를 엽니다.
관리 아래에서 API 권한을 선택합니다. 구성된 권한 목록에서 애플리케이션에 User.Read 권한이 할당되었습니다. 그러나 테넌트는 외부 테넌트이므로 소비자 사용자 자신은 이러한 권한에 동의할 수 없습니다. 관리자가 테넌트의 모든 사용자를 대신하여 다음 권한에 동의해야 합니다.
- <테넌트 이름>에 대한 관리자 동의 부여를 선택한 다음 예를 선택합니다.
- 새로 고침을 선택한 다음 두 범위에 대해 <테넌트 이름>에 부여됨이 상태 아래에 표시되는지 확인합니다.
사용자 흐름 만들기
다음 단계에 따라 고객이 애플리케이션에 로그인하거나 등록하는 데 사용할 수 있는 사용자 흐름을 만듭니다.
최소한 외부 ID 사용자 흐름 관리자로 Microsoft Entra 관리 센터에 로그인합니다.
여러 테넌트에 액세스할 수 있는 경우 상단 메뉴의 설정 아이콘
을 사용하여 디렉터리 + 구독 메뉴에서 외부 테넌트로 전환합니다.
ID>External Identities>사용자 흐름으로 이동합니다.
+새 사용자 흐름을 선택합니다.
만들기 페이지에서:
SignInSignUpSample과 같은 사용자 흐름에 사용할 이름을 입력합니다.
ID 공급자 목록에서 이메일 계정을 선택합니다. 이 ID 공급자를 사용하면 사용자가 이메일 주소를 사용하여 로그인하거나 등록할 수 있습니다.
이메일 계정에서 두 가지 옵션 중 하나를 선택할 수 있습니다. 이 자습서에서는 암호가 있는 이메일을 선택합니다.
- 암호가 있는 이메일: 새 사용자가 이메일 주소를 로그인 이름으로 사용하고 암호를 첫 번째 자격 증명으로 사용하여 등록하고 로그인할 수 있습니다.
- 이메일 일회용 암호: 새 사용자는 이메일 주소를 로그인 이름으로 사용하고 이메일 일회용 암호를 첫 번째 자격 증명으로 사용하여 등록하고 로그인할 수 있습니다. 이 옵션을 사용자 흐름 수준에서 사용할 수 있도록 하려면 테넌트 수준(모든 ID 공급자>이메일 일회용 암호)에서 이메일 일회용 암호를 사용하도록 설정해야 합니다.
사용자 특성에서 등록 시 사용자로부터 수집할 특성을 선택합니다. 자세히 보기를 선택하여 국가/지역, 표시 이름 및 우편 번호의 특성 및 클레임을 선택할 수 있습니다. 확인을 선택합니다. (사용자가 처음으로 등록할 때만 특성을 묻는 메시지가 표시됩니다.)
만들기를 실행합니다. 사용자 흐름 목록에 새 사용자 흐름이 표시됩니다. 필요한 경우 페이지를 새로 고칩니다.
셀프 서비스 암호 재설정을 사용하도록 설정하려면 셀프 서비스 암호 재설정 사용 문서의 단계를 사용합니다.
웹 애플리케이션을 사용자 흐름과 연결
많은 애플리케이션을 사용자 흐름과 연결할 수 있지만 단일 애플리케이션은 하나의 사용자 흐름에만 연결할 수 있습니다. 사용자 흐름을 사용하면 특정 애플리케이션에 대한 사용자 환경을 구성할 수 있습니다. 예를 들어 사용자가 메일 주소로 로그인하거나 등록해야 하는 사용자 흐름을 구성할 수 있습니다.
사이드바 메뉴에서 ID를 선택합니다.
External Identities를 선택한 다음 사용자 흐름을 선택합니다.
사용자 흐름 페이지에서 이전에 만든 사용자 흐름 이름(예: SignInSignUpSample)을 선택합니다.
사용에서 애플리케이션을 선택합니다.
애플리케이션 추가를 선택합니다.
ciam-client-app과 같은 목록에서 애플리케이션을 선택하거나 검색 상자를 사용하여 애플리케이션을 찾은 다음 선택합니다.
선택을 선택합니다.
샘플 웹 애플리케이션 복제 또는 다운로드
샘플 애플리케이션을 가져오려면 GitHub에서 복제하거나 .zip 파일로 다운로드할 수 있습니다.
샘플을 복제하려면 명령 프롬프트를 열고 프로젝트를 만들려는 위치로 이동한 후 다음 명령을 입력합니다.
git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
.zip 파일을 다운로드합니다. 이름 길이가 260자 미만인 파일 경로에 추출합니다.
애플리케이션 구성
다운로드한 샘플의 루트 폴더와 ASP.NET Core 샘플 앱이 포함된 디렉터리로 이동합니다.
cd 1-Authentication\1-sign-in-aspnet-core-mvc
appsettings.json 파일을 엽니다.
권한에서
Enter_the_Tenant_Subdomain_Here
를 찾아 테넌트의 하위 도메인으로 바꿉니다. 예를 들어, 테넌트 기본 도메인이 caseyjensen@onmicrosoft.com인 경우 입력해야 하는 값은 casyjensen입니다.Enter_the_Application_Id_Here
값을 찾아 Microsoft Entra 관리 센터에 등록한 앱의 애플리케이션 ID(clientId)로 바꿉니다.Enter_the_Client_Secret_Here
을(를) 앱 클라이언트 암호 추가에서 설정한 클라이언트 암호 값으로 바꿉니다.
코드 샘플 실행
셸이나 명령줄에서 다음 명령을 실행합니다.
dotnet run
웹 브라우저를 열고,
https://localhost:7274
로 이동합니다.외부 테넌트에 등록된 계정으로 로그인합니다.
로그인하면 다음 스크린샷과 같이 표시 이름이 로그아웃 단추 옆에 표시됩니다.
애플리케이션에서 로그아웃하려면 로그아웃 단추를 선택합니다.
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기