다음을 통해 공유


빠른 시작: ASP.NET Core 웹앱에서 사용자 로그인 및 Microsoft Graph API 호출

이 빠른 시작에서는 샘플 ASP.NET Core 웹앱을 사용하여 인증 코드 흐름 사용하여 사용자를 로그인하고 Microsoft Graph API를 호출합니다. 이 샘플은 인증 처리를 위해 Microsoft 인증 라이브러리 for .NETMicrosoft Identity Web을 사용합니다.

필수 구성 요소

애플리케이션 및 레코드 식별자 등록

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

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

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

  3. Identity>애플리케이션>앱 등록으로 이동하여, 새 등록을 선택합니다.

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

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

  6. 등록선택합니다.

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

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

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

    메모

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

플랫폼 리디렉션 URI 추가

앱 등록에 앱 유형을 지정하려면 다음 단계를 수행합니다.

  1. 관리아래에서 인증선택합니다.
  2. 플랫폼 구성 페이지에서 플랫폼 추가선택한 다음, 옵션을 선택합니다.
  3. 리디렉션 URI의에 대해 https://localhost:5001/signin-oidc입력하십시오.
  4. 프런트 채널 로그아웃 URL에 로그아웃할 때 https://localhost:5001/signout-callback-oidc를 입력합니다.
  5. 구성을 선택하여 변경 내용을 저장합니다.

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

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

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

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

자체 서명된 인증서 만들기 및 업로드

애플리케이션을 보호하려면 애플리케이션에 인증서를 추가합니다. 이 섹션에서는 자체 서명된 인증서를 만들고 Microsoft Entra 관리 센터의 애플리케이션 등록에 업로드하는 방법을 보여줍니다.

메모

자체 서명된 인증서는 개발에만 사용해야 합니다. 프로덕션 환경에서는 신뢰할 수 있는 인증 기관의 인증서를 사용해야 합니다.

  1. 터미널을 사용하여 다음 명령을 사용하여 프로젝트 디렉터리에 자체 서명된 인증서를 만듭니다.

    cd ms-identity-docs-code-dotnet\web-app-aspnet\
    dotnet dev-certs https -ep ./certificate.crt --trust
    
  2. Microsoft Entra 관리 센터로 돌아가서 관리아래에서 인증서 & 비밀>인증서 업로드를 선택합니다.

  3. 인증서(0) 탭을 선택한 다음, 인증서업로드를 선택합니다.

  4. 인증서 업로드 창이 나타납니다. 아이콘을 사용하여 이전 단계에서 만든 인증서 파일로 이동하고 열기를 선택합니다.

  5. 인증서에 대한 설명(예: aspnet-web-app 인증서)을 입력하고 추가를 선택합니다.

  6. 다음 단계에서 사용할 지문 값을 기록합니다.

프로젝트 구성

  1. IDE에서 샘플이 포함된 ms-identity-docs-code-dotnet\web-app-aspnet 프로젝트 폴더를 엽니다.

  2. appsettings.json 열고 파일 내용을 다음 코드 조각으로 바꿉니다.

    {
    "AzureAd": {
      "Instance": "https://login.microsoftonline.com/",
      "TenantId": "Enter the tenant ID obtained from the Microsoft Entra admin center",
      "ClientId": "Enter the client ID obtained from the Microsoft Entra admin center",
      "ClientCertificates": [
        {
          "SourceType": "StoreWithThumbprint",
          "CertificateStorePath": "CurrentUser/My",
          "CertificateThumbprint": "Enter the certificate thumbprint obtained the Microsoft Entra admin center"
        }   
      ],
      "CallbackPath": "/signin-oidc"
    },
      "DownstreamApi": {
        "BaseUrl": "https://graph.microsoft.com/v1.0/",
        "RelativePath": "me",
        "Scopes": [ 
          "user.read" 
        ]
      },
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore": "Warning"
        }
      },
      "AllowedHosts": "*"
    }
    
    • TenantId - 애플리케이션이 등록된 테넌트 식별자입니다. 따옴표 안의 텍스트를 등록된 애플리케이션의 개요 페이지에서 이전에 기록한 Directory (tenant) ID으로 바꾸세요.
    • ClientId - 클라이언트라고도 하는 애플리케이션의 식별자입니다. 따옴표로 된 텍스트를 등록된 애플리케이션의 개요 페이지에서 이전에 기록된 Application (client) ID 값으로 바꿉니다.
    • ClientCertificates - 자체 서명된 인증서가 애플리케이션의 인증에 사용됩니다. CertificateThumbprint 텍스트를 이전에 기록된 인증서의 지문으로 바꿉니다.

애플리케이션 실행 및 로그인

  1. 프로젝트 디렉터리에서 터미널을 사용하여 다음 명령을 입력합니다.

    dotnet run
    
  2. 터미널에 표시되는 https URL(예: https://localhost:5001)을 복사하여 브라우저에 붙여넣습니다. 프라이빗 또는 시크릿 브라우저 세션을 사용하는 것이 좋습니다.

  3. 단계를 수행하고 필요한 세부 정보를 입력하여 Microsoft 계정으로 로그인합니다. 한 번 암호를 보낼 수 있도록 전자 메일 주소를 제공하라는 요청이 있습니다. 메시지가 표시되면 코드를 입력합니다.

  4. 애플리케이션은 액세스 권한을 부여한 데이터에 대한 액세스를 유지하고 로그인하여 프로필을 읽을 수 있는 권한을 요청합니다. 수락을 선택합니다.

  5. 애플리케이션에 로그인하고 Microsoft Graph API에서 프로필 세부 정보에 액세스했음을 나타내는 다음 스크린샷이 나타납니다.

    API 호출 결과를 보여 주는 스크린샷

애플리케이션에서 로그아웃

  1. 페이지의 오른쪽 위 모서리에서 로그아웃 링크를 찾아 선택합니다.
  2. 로그아웃할 계정을 선택하라는 메시지가 표시됩니다. 로그인하는 데 사용한 계정을 선택합니다.
  3. 로그아웃했음을 나타내는 메시지가 나타납니다. 이제 브라우저 창을 닫을 수 있습니다.