Static Web Apps 인증 및 권한 부여

Warning

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

Azure Static Web Apps 인증에 GitHub 및 Microsoft Entra ID를 사용하기 위해 다른 작업이나 구성이 필요하지 않은 간소화된 인증 환경을 제공합니다.

이 문서에서는 기본 동작, 로그인, 로그아웃을 설정하는 방법, 인증 공급자를 차단하는 방법 등에 대해 알아봅니다.

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

필수 조건

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로 로그인하려면 다음 링크와 비슷한 항목을 포함할 수 있습니다.

<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 configure this behavior, 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 상태 코드를 반환할 수 있습니다. 예를 들어 Twitter를 공급자로 제한하려면 다음 경로 규칙을 추가합니다.

{
  "route": "/.auth/login/twitter",
  "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.

다음 단계