다음을 통해 공유


빠른 시작: 보호된 웹 API에 액세스하는 .NET 콘솔 앱

이 빠른 시작에서는 샘플 .NET 콘솔 애플리케이션을 사용하여 .NET용 MSAL(Microsoft 인증 라이브러리)을 사용하여 보호된 웹 API에 자체 ID로 액세스합니다. 애플리케이션은 기밀 클라이언트 애플리케이션인 디먼 애플리케이션이며 클라이언트 자격 증명 OAuth 흐름을 사용하여 Microsoft Graph API를 호출하는 액세스 토큰을 가져옵니다.

필수 조건

애플리케이션 및 레코드 식별자를 등록합니다.

등록을 완료하려면 애플리케이션 이름을 제공하고 지원되는 계정 유형을 지정합니다. 등록되면 애플리케이션 개요 창에 애플리케이션 소스 코드에 필요한 식별자가 표시됩니다.

  1. Microsoft Entra 관리 센터에 로그인합니다.

  2. 여러 테넌트에 액세스할 수 있는 경우 위쪽 메뉴의 설정 아이콘을 사용하여 디렉터리 + 구독 메뉴에서 애플리케이션을 등록하려는 테넌트로 전환합니다.

  3. ID>애플리케이션>앱 등록으로 이동하고 신규 등록을 선택합니다.

  4. identity-client-daemon-app과 같은 애플리케이션의 이름을 입력합니다.

  5. 지원되는 계정 유형의 경우 이 조직 디렉터리 계정의 계정만을 선택합니다. 다양한 계정 유형에 대한 정보를 보려면 선택 도움말 옵션을 선택합니다.

  6. 등록을 선택합니다.

    Microsoft Entra 관리 센터에서 이름을 입력하고 계정 유형을 선택하는 방법을 보여 주는 스크린샷

  7. 등록이 완료되면 애플리케이션의 개요 창이 표시됩니다. 애플리케이션 소스 코드에 사용할 디렉터리(테넌트) ID, 애플리케이션(클라이언트) ID, 개체 ID를 기록해 둡니다.

    Microsoft Entra 관리 센터의 개요 페이지에 있는 식별자 값을 보여 주는 스크린샷

    참고 항목

    지원되는 계정 유형애플리케이션에서 지원하는 계정 수정을 참조하여 변경할 수 있습니다.

클라이언트 암호 만들기

  1. Microsoft Entra 관리 센터에서 ID>애플리케이션>앱 등록으로 이동합니다.
  2. 이전에 등록한 애플리케이션을 선택합니다.
  3. 애플리케이션의 개요 창에서 인증서 및 비밀>새 클라이언트 비밀을 선택합니다.
  4. 설명 필드에 비밀에 대한 설명을 입력합니다.
  5. 비밀에 대한 만료 기간을 선택합니다.
  6. 추가를 선택합니다.
  7. 클라이언트 암호의 을 기록합니다. 값은 한 번만 표시되므로 값을 기록해 둡니다.

샘플 애플리케이션 복제 또는 다운로드

샘플 애플리케이션을 가져오려면 GitHub에서 복제하거나 .zip 파일로 다운로드할 수 있습니다.

  • 샘플을 복제하려면 명령 프롬프트를 열고 프로젝트를 만들려는 위치로 이동한 후 다음 명령을 입력합니다.

    git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
    
  • .zip 파일을 다운로드합니다. 이름 길이가 260자 미만인 파일 경로에 추출합니다.

프로젝트 구성

  1. IDE에서 샘플이 포함된 프로젝트 폴더 ms-identity-docs-code-dotnet/console-daemon을 엽니다.

  2. 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 값으로 바꿉니다.

애플리케이션 실행

  1. 터미널에서 프로젝트 디렉터리 ms-identity-docs-code-dotnet/console-daemon으로 이동합니다.

  2. 다음 명령을 실행하여 애플리케이션을 빌드하고 실행합니다.

    dotnet run
    
  3. 애플리케이션이 실행되고 다음과 유사한 응답이 표시됩니다(간결성을 위해 단축됨).

    {
    "@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,
    ...
    }