빠른 시작: 보호된 웹 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>애플리케이션>앱 등록으로 이동하고 신규 등록을 선택합니다.
idy-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 보호.
- 빠른 시작: Azure 앱 Service에 ASP.NET 웹앱 배포