빠른 시작: 보호된 웹 API에 액세스하는 .NET 콘솔 앱
이 빠른 시작에서는 샘플 .NET 콘솔 애플리케이션을 사용하여 .NET용 MSAL(Microsoft 인증 라이브러리)을 사용하여 보호된 웹 API에 자체 ID로 액세스합니다. 애플리케이션은 기밀 클라이언트 애플리케이션인 디먼 애플리케이션이며 클라이언트 자격 증명 OAuth 흐름을 사용하여 Microsoft Graph API를 호출하는 액세스 토큰을 가져옵니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 계정이 아직 없는 경우 무료로 계정을 만듭니다.
- .NET 6.0 SDK의 최소 요구 사항
- Visual Studio 2022 또는 Visual Studio Code
애플리케이션 및 레코드 식별자를 등록합니다.
등록을 완료하려면 애플리케이션 이름을 제공하고 지원되는 계정 유형을 지정합니다. 등록되면 애플리케이션 개요 창에 애플리케이션 소스 코드에 필요한 식별자가 표시됩니다.
Microsoft Entra 관리 센터에 로그인합니다.
여러 테넌트에 액세스할 수 있는 경우 위쪽 메뉴의 설정 아이콘을 사용하여 디렉터리 + 구독 메뉴에서 애플리케이션을 등록하려는 테넌트로 전환합니다.
ID>애플리케이션>앱 등록으로 이동하고 신규 등록을 선택합니다.
identity-client-daemon-app과 같은 애플리케이션의 이름을 입력합니다.
지원되는 계정 유형의 경우 이 조직 디렉터리 계정의 계정만을 선택합니다. 다양한 계정 유형에 대한 정보를 보려면 선택 도움말 옵션을 선택합니다.
등록을 선택합니다.
등록이 완료되면 애플리케이션의 개요 창이 표시됩니다. 애플리케이션 소스 코드에 사용할 디렉터리(테넌트) ID, 애플리케이션(클라이언트) ID, 개체 ID를 기록해 둡니다.
참고 항목
지원되는 계정 유형은 애플리케이션에서 지원하는 계정 수정을 참조하여 변경할 수 있습니다.
클라이언트 암호 만들기
- Microsoft Entra 관리 센터에서 ID>애플리케이션>앱 등록으로 이동합니다.
- 이전에 등록한 애플리케이션을 선택합니다.
- 애플리케이션의 개요 창에서 인증서 및 비밀>새 클라이언트 비밀을 선택합니다.
- 설명 필드에 비밀에 대한 설명을 입력합니다.
- 비밀에 대한 만료 기간을 선택합니다.
- 추가를 선택합니다.
- 클라이언트 암호의 값을 기록합니다. 값은 한 번만 표시되므로 값을 기록해 둡니다.
샘플 애플리케이션 복제 또는 다운로드
샘플 애플리케이션을 가져오려면 GitHub에서 복제하거나 .zip 파일로 다운로드할 수 있습니다.
샘플을 복제하려면 명령 프롬프트를 열고 프로젝트를 만들려는 위치로 이동한 후 다음 명령을 입력합니다.
git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
.zip 파일을 다운로드합니다. 이름 길이가 260자 미만인 파일 경로에 추출합니다.
프로젝트 구성
IDE에서 샘플이 포함된 프로젝트 폴더 ms-identity-docs-code-dotnet/console-daemon을 엽니다.
Program.cs를 열고 파일 콘텐츠를 다음 코드 조각으로 바꿉니다.
// Full directory URL, in the form of https://login.microsoftonline.com/<tenant_id> Authority = " https://login.microsoftonline.com/Enter_the_tenant_ID_obtained_from_the_Microsoft_Entra_admin_center", // 'Enter the client ID obtained from the Microsoft Entra admin center ClientId = "Enter the client ID obtained from the Microsoft Entra admin center", // Client secret 'Value' (not its ID) from 'Client secrets' in the Microsoft Entra admin center ClientSecret = "Enter the client secret value obtained from the Microsoft Entra admin center", // Client 'Object ID' of app registration in Microsoft Entra admin center - this value is a GUID ClientObjectId = "Enter the client Object ID obtained from the Microsoft Entra admin center"
Authority
- 인증 기관은 MSAL이 토큰을 요청할 수 있는 디렉터리를 나타내는 URL입니다. Enter_the_tenant_ID를 이전에 기록한 디렉터리(테넌트) ID 값으로 바꿉니다.ClientId
- 클라이언트라고도 하는 애플리케이션의 식별자입니다. 따옴표의 텍스트를 등록된 애플리케이션의 개요 페이지에서 이전에 기록된Application (client) ID
값으로 바꿉니다.ClientSecret
- Microsoft Entra 관리 센터에서 애플리케이션을 위해 만들어진 클라이언트 암호입니다. 클라이언트 암호의 값을 입력합니다.ClientObjectId
- 클라이언트 애플리케이션의 개체 ID입니다. 따옴표의 텍스트를 등록된 애플리케이션의 개요 페이지에서 이전에 기록된Object ID
값으로 바꿉니다.
애플리케이션 실행
터미널에서 프로젝트 디렉터리 ms-identity-docs-code-dotnet/console-daemon으로 이동합니다.
다음 명령을 실행하여 애플리케이션을 빌드하고 실행합니다.
dotnet run
애플리케이션이 실행되고 다음과 유사한 응답이 표시됩니다(간결성을 위해 단축됨).
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications/$entity", "id": "00001111-aaaa-2222-bbbb-3333cccc4444", "deletedDateTime": null, "appId": "00001111-aaaa-2222-bbbb-3333cccc4444", "applicationTemplateId": null, "disabledByMicrosoftStatus": null, "createdDateTime": "2021-01-17T15:30:55Z", "displayName": "identity-dotnet-console-app", "description": null, "groupMembershipClaims": null, ... }
관련 콘텐츠
- 자습서: Microsoft ID 플랫폼에 애플리케이션 등록 시리즈를 통해 ASP.NET 웹앱을 빌드하여 알아봅니다.
- 빠른 시작: Microsoft ID 플랫폼을 사용하여 ASP.NET Core 웹 API 보호.
- 빠른 시작: ASP.NET 웹앱을 Azure App Service에 배포