편집

다음을 통해 공유


Static Web Apps 인증 및 권한 부여

Azure Static Web Apps는 인증을 위해 GitHub 및 Microsoft Entra ID를 사용하는 데 추가 구성이 필요하지 않은 간소화된 인증 환경을 제공합니다. 이 문서에 나열된 모든 기능은 모든 Static Web Apps 계획에서 사용할 수 있습니다.

이 문서에서는 기본 동작, 로그인, 로그아웃을 설정하는 방법, 인증 공급자를 차단하는 방법 등에 대해 알아봅니다. 특정 사용에 대한 인증 세부 정보를 읽으려면 Access 사용자 정보를 참조하세요.

미리 구성된 모든 공급자를 사용하지 않도록 설정하는 사용자 지정 공급자를 등록할 수 있습니다.

Warning

X(이전 Twitter) API 정책의 변경으로 인해 앱에 대해 미리 구성된 공급자의 일부로 지원이 제공되지 않습니다. 앱에서 인증/권한 부여에 X(이전의 Twitter)를 계속 사용하려면 앱 구성을 업데이트하여 사용자 지정 공급자를 등록하세요.

필수 조건

Azure Static Web Apps 인증 및 권한 부여를 위한 다음 기본값 및 리소스에 유의하세요.

기본값:

  • 모든 사용자는 미리 구성된 공급자로 인증할 수 있습니다.
    • GitHub
    • Microsoft Entra ID
    • 인증 공급자를 제한하려면 사용자 지정 경로 규칙을 사용하여 액세스 차단
  • 로그인한 후 사용자는 anonymousauthenticated 역할에 속합니다. 역할에 대한 자세한 내용은 역할 관리를 참조하세요.

리소스:

로그인 설정

Azure Static Web Apps는 /.auth system 폴더를 사용하여 권한 부여 관련 API에 대한 액세스를 제공합니다. /.auth 폴더 아래의 경로를 최종 사용자에게 직접 노출하는 대신, 친숙한 URL에 대한 라우팅 규칙을 만듭니다.

공급자별 경로를 찾으려면 다음 표를 사용합니다.

권한 부여 공급자 로그인 경로
Microsoft Entra ID /.auth/login/aad
GitHub /.auth/login/github

예를 들어, GitHub에 로그인하려면 다음 예와 유사한 URL을 사용할 수 있습니다.

<a href="/.auth/login/github">Login</a>

둘 이상의 공급자를 지원하기로 선택한 경우 웹 사이트의 각 공급자에 대한 공급자별 링크를 사용합니다. 경로 규칙을 사용하여 기본 공급자를 /login과 같은 친숙한 경로에 매핑합니다.

{
  "route": "/login",
  "redirect": "/.auth/login/github"
}

로그인 후 리디렉션 설정

post_login_redirect_uri 쿼리 문자열 매개 변수에 정규화된 URL을 제공하여 사용자가 로그인한 후 특정 페이지로 돌아갈 수 있습니다.

<a href="/.auth/login/github?post_login_redirect_uri=https://zealous-water.azurestaticapps.net/success">Login</a>

You can also redirect unauthenticated users back to the referring page after they sign in. To add this redirect, create a response override rule that sets post_login_redirect_uri to .referrer, like in the following example.

{
  "responseOverrides": {
    "401": {
      "redirect": "/.auth/login/github?post_login_redirect_uri=.referrer",
      "statusCode": 302
    }
  }
}

로그아웃 설정

/.auth/logout 경로는 웹 사이트에서 사용자를 로그아웃합니다. 다음 예제와 같이 사용자가 로그아웃할 수 있도록 사이트 탐색에 링크를 추가할 수 있습니다.

<a href="/.auth/logout">Log out</a>

경로 규칙을 사용하여 /logout과 같은 친숙한 경로를 매핑합니다.

{
  "route": "/logout",
  "redirect": "/.auth/logout"
}

로그아웃 후 리디렉션 설정

로그아웃한 후 특정 페이지로 사용자를 반환하려면 post_logout_redirect_uri 쿼리 문자열 매개 변수에 URL을 제공합니다.

인증 공급자 차단

기본적으로 모든 인증 공급자가 사용하도록 설정되어 있지만 앱에서 공급자를 사용하지 못하도록 제한할 수 있습니다. 예를 들어, 앱은 이메일 주소를 노출하는 공급자만 사용하려고 할 수 있습니다.

공급자를 차단하려면 차단된 공급자별 경로에 대한 요청에 대해 404 상태 코드를 반환하는 경로 규칙을 만듭니다. 예를 들어 Entra ID(이전의 Azure Active Directory, "aad"라고 함) 공급자를 제한하려면 다음 경로 규칙을 추가합니다.

{
  "route": "/.auth/login/aad",
  "statusCode": 404
}

개인 데이터 제거

최종 사용자로 애플리케이션에 동의하면 애플리케이션은 ID 공급자에 따라 메일 주소 또는 사용자 이름에 액세스할 수 있습니다. 이 정보가 제공되면 애플리케이션의 소유자는 개인 데이터를 관리하는 방법을 결정할 수 있습니다.

최종 사용자는 개별 웹앱의 관리자에게 문의하여 시스템에서 이 정보를 해지해야 합니다.

Azure Static Web Apps 플랫폼에서 개인 데이터를 제거하고, 플랫폼이 향후 요청에 대해 이 정보를 제공하지 않도록 하려면 다음 URL을 사용하여 요청을 제출합니다.

https://identity.azurestaticapps.net/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>

To prevent the platform from providing this information on future requests to individual apps, submit a request using the following URL:

https://<WEB_APP_DOMAIN_NAME>/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>

If you're using Microsoft Entra ID, use aad as the value for the <AUTHENTICATION_PROVIDER_NAME> placeholder.

Tip

For information about general restrictions and limitations, see Quotas.

다음 단계