Microsoft 계정 인증 구성Configuring Microsoft Account authentication

<a name=security-authentication-microsoft-logins>

작성자: Valeriy NovytskyyRick AndersonBy Valeriy Novytskyy and Rick Anderson

이 자습서에서 만든 샘플 ASP.NET 코어 2.0 프로젝트를 사용 하 여 자신의 Microsoft 계정으로 로그인 하 여 사용자가 사용할 수 있도록 하는 방법을 보여 줍니다.는 이전 페이지합니다.This tutorial shows you how to enable your users to sign in with their Microsoft account using a sample ASP.NET Core 2.0 project created on the previous page.

Microsoft 개발자 포털에서 응용 프로그램 만들기Create the app in Microsoft Developer Portal

대화 상자에 로그인

Microsoft 계정이 없는 경우 탭 만드세요!If you don't already have a Microsoft account, tap Create one! 로그인 한 후 리디렉션됩니다 내 응용 프로그램이 페이지:After signing in you are redirected to My applications page:

Microsoft 개발자 포털에서 Microsoft Edge 열기

  • 앱 추가 오른쪽 상단 모서리 고을 입력 하면 응용 프로그램 이름Contact Email:Tap Add an app in the upper right corner and enter your Application Name and Contact Email:

새 응용 프로그램 등록 대화 상자

  • 이 자습서에서는 선택을 취소는 단계별 설치 확인란 합니다.For the purposes of this tutorial, clear the Guided Setup check box.

  • 만들기 를 계속 하려면는 등록 페이지.Tap Create to continue to the Registration page. 제공는 이름 의 값을 확인 하 고는 응용 프로그램 Id,으로 사용할 수 있는 ClientId 자습서의 뒷부분에 나오는:Provide a Name and note the value of the Application Id, which you use as ClientId later in the tutorial:

등록 페이지

  • 추가 플랫폼플랫폼 선택한 섹션의 플랫폼:Tap Add Platform in the Platforms section and select the Web platform:

추가 플랫폼 대화 상자

  • 플랫폼 섹션에서와 개발 URL 입력 /signin-microsoft 에 추가 리디렉션 Url 필드 (예: https://localhost:44320/signin-microsoft).In the new Web platform section, enter your development URL with /signin-microsoft appended into the Redirect URLs field (for example: https://localhost:44320/signin-microsoft). 이 자습서의 뒷부분에 나오는 구성 된 Microsoft 인증 구성표에는 요청을 자동으로 처리할 /signin-microsoft OAuth 흐름을 구현 하는 경로:The Microsoft authentication scheme configured later in this tutorial will automatically handle requests at /signin-microsoft route to implement the OAuth flow:

웹 플랫폼 섹션

  • URL 추가 URL 추가 되었습니다.Tap Add URL to ensure the URL was added.

  • 필요한 경우 다른 응용 프로그램 설정 작성 하 고 탭 저장 앱 구성 변경 내용을 저장 하려면 페이지 맨 아래에 있습니다.Fill out any other application settings if necessary and tap Save at the bottom of the page to save changes to app configuration.

  • 다시 방문 해야 사이트를 배포 하는 경우는 등록 페이지 하 고 새 공개 URL을 설정 합니다.When deploying the site you'll need to revisit the Registration page and set a new public URL.

Microsoft 응용 프로그램 Id와 암호를 저장 합니다.Store Microsoft Application Id and Password

  • 참고는 Application Id 에 표시 되는 등록 페이지.Note the Application Id displayed on the Registration page.

  • 새 암호를 생성할응용 프로그램 암호 섹션.Tap Generate New Password in the Application Secrets section. 응용 프로그램 암호를 복사할 수 있습니다는 상자가 표시 됩니다.This displays a box where you can copy the application password:

새 암호가 생성 대화 상자

Microsoft와 같은 중요 한 설정이 연결 Application IDPassword 사용 하 여 응용 프로그램 구성에는 암호 관리자합니다.Link sensitive settings like Microsoft Application ID and Password to your application configuration using the Secret Manager. 이 자습서에서는 이름을 토큰 Authentication:Microsoft:ApplicationIdAuthentication:Microsoft:Password합니다.For the purposes of this tutorial, name the tokens Authentication:Microsoft:ApplicationId and Authentication:Microsoft:Password.

Microsoft 계정 인증 구성Configure Microsoft Account Authentication

이 자습서에 사용 된 프로젝트 템플릿을 사용 하면 Microsoft.AspNetCore.Authentication.MicrosoftAccount 패키지가 이미 설치 되었습니다.The project template used in this tutorial ensures that Microsoft.AspNetCore.Authentication.MicrosoftAccount package is already installed.

  • Visual Studio 2017으로이 패키지를 설치 하려면 마우스 오른쪽 단추로 클릭 프로젝트와 선택 NuGet 패키지 관리합니다.To install this package with Visual Studio 2017, right-click on the project and select Manage NuGet Packages.
  • .NET Core CLI를 설치 하려면 다음 프로젝트 디렉터리에 실행 합니다.To install with .NET Core CLI, execute the following in your project directory:

    dotnet add package Microsoft.AspNetCore.Authentication.MicrosoftAccount

Microsoft 계정 서비스에 추가 ConfigureServices 메서드에서 Startup.cs 파일:Add the Microsoft Account service in the ConfigureServices method in Startup.cs file:

services.AddIdentity<ApplicationUser, IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();

services.AddAuthentication().AddMicrosoftAccount(microsoftOptions =>
{
    microsoftOptions.ClientId = Configuration["Authentication:Microsoft:ApplicationId"];
    microsoftOptions.ClientSecret = Configuration["Authentication:Microsoft:Password"];
});

참고: 에 대 한 호출 AddIdentity 기본 체계 설정을 구성 합니다.Note: The call to AddIdentity configures the default scheme settings. AddAuthentication(string defaultScheme) 집합 오버 로드는 DefaultScheme 속성 그 뿐만 아니라 AddAuthentication(Action<AuthenticationOptions> configureOptions) 만 명시적으로 설정 하는 속성을 설정 하는 오버 로드 합니다.The AddAuthentication(string defaultScheme) overload sets the DefaultScheme property; and, the AddAuthentication(Action<AuthenticationOptions> configureOptions) overload sets only the properties you explicitly set. 이러한 오버 로드 중 하나 에서만 호출 해야 한 번 추가 하는 경우 여러 인증 공급자.Either of these overloads should only be called once when adding multiple authentication providers. 에 대 한 후속 호출 이전에 구성 된 모든 재정의의 가능성이 있는 AuthenticationOptions 속성입니다.Subsequent calls to it have the potential of overriding any previously configured AuthenticationOptions properties.

하지만 Microsoft 개발자 포털에서 사용 되는 용어 이러한 토큰 이름을 ApplicationIdPassword,으로 노출 된 ClientIdClientSecret 구성 API에 합니다.Although the terminology used on Microsoft Developer Portal names these tokens ApplicationId and Password, they are exposed as ClientId and ClientSecret to the configuration API.

참조는 MicrosoftAccountOptions Microsoft 계정 인증에서 지 원하는 구성 옵션에 대 한 자세한 내용은 API 참조 합니다.See the MicrosoftAccountOptions API reference for more information on configuration options supported by Microsoft Account authentication. 이 사용 하 여 사용자에 대 한 다른 정보를 요청할 수 수 있습니다.This can be used to request different information about the user.

Microsoft 계정으로 로그인Sign in with Microsoft Account

응용 프로그램을 실행 하 고 클릭 로그인합니다.Run your application and click Log in. Microsoft를 사용 하 여 로그인 하는 옵션이 표시 됩니다.An option to sign in with Microsoft appears:

웹 페이지에 응용 프로그램 로그: 인증 되지 않은 사용자

Microsoft을 클릭할 때 리디렉션됩니다 Microsoft 인증에 대 한 합니다.When you click on Microsoft, you are redirected to Microsoft for authentication. (아직 로그인) 하는 경우 Microsoft 계정으로 로그인 한 후 정보에 액세스 하는 앱을 사용 하 라는 메시지가 표시 됩니다.After signing in with your Microsoft Account (if not already signed in) you will be prompted to let the app access your info:

Microsoft 인증 대화 상자

및 전자 메일을 설정할 수 있는 웹 사이트로 다시 리디렉션됩니다.Tap Yes and you will be redirected back to the web site where you can set your email.

이제 Microsoft 자격 증명을 사용 하 여 로그인:You are now logged in using your Microsoft credentials:

웹 응용 프로그램: 인증 된 사용자

문제 해결Troubleshooting

  • Microsoft 계정 공급자 오류 페이지에 로그인 할 사용자를 리디렉션하를 하는 경우 오류 제목 및 설명 쿼리 문자열 매개 변수 바로 다음에 유의 # (hashtag) Uri에 있습니다.If the Microsoft Account provider redirects you to a sign in error page, note the error title and description query string parameters directly following the # (hashtag) in the Uri.

    가장 일반적인 원인은 Uri의 일치 하지 않는 응용 프로그램 오류 메시지가 Microsoft 인증 문제가 있는 것 처럼 보이지만는 리디렉션 Uri 에 대해 지정 된 된 플랫폼 .Although the error message seems to indicate a problem with Microsoft authentication, the most common cause is your application Uri not matching any of the Redirect URIs specified for the Web platform.

  • ASP.NET Core 2.x만: 경우 Identity를 호출 하 여 구성 되지 않은 services.AddIdentityConfigureServices, 인증을 시도 하면 ArgumentException: 'SignInScheme' 옵션을 제공 해야합니다.ASP.NET Core 2.x only: If Identity is not configured by calling services.AddIdentity in ConfigureServices, attempting to authenticate will result in ArgumentException: The 'SignInScheme' option must be provided. 이 자습서에 사용 된 프로젝트 템플릿을 확인이 수행 되도록 합니다.The project template used in this tutorial ensures that this is done.
  • 사이트 데이터베이스 초기 마이그레이션을 적용 하 여 생성 되지 않은 경우 발생 합니다 요청을 처리 하는 동안 데이터베이스 작업이 실패 했습니다 오류입니다.If the site database has not been created by applying the initial migration, you will get A database operation failed while processing the request error. 적용 마이그레이션 는 데이터베이스를 만들고 오류 지 나 새로 고침 합니다.Tap Apply Migrations to create the database and refresh to continue past the error.

다음 단계Next steps

  • 이 문서를 Microsoft와 인증 방법에 대해 살펴보았습니다.This article showed how you can authenticate with Microsoft. 이와 비슷한 방식에 제시 된 다른 공급자를 사용 하 여 인증을 따를 수 있습니다는 이전 페이지합니다.You can follow a similar approach to authenticate with other providers listed on the previous page.

  • 새 만들어야 Azure 웹 앱에 웹 사이트를 게시 한 Password Microsoft 개발자 포털에서 합니다.Once you publish your web site to Azure web app, you should create a new Password in the Microsoft Developer Portal.

  • 설정의 Authentication:Microsoft:ApplicationIdAuthentication:Microsoft:Password Azure 포털에서 응용 프로그램 설정으로 합니다.Set the Authentication:Microsoft:ApplicationId and Authentication:Microsoft:Password as application settings in the Azure portal. 구성 시스템 환경 변수에서 키를 읽을 수 설정 됩니다.The configuration system is set up to read keys from environment variables.