Azure Static Web Apps의 사용자 지정 인증

Azure Static Web Apps는 Azure에서 관리하는 공급자 등록을 사용하는 관리 인증을 제공합니다. 등록에 대한 유연성을 높일 수 있도록 사용자 지정 등록을 사용하여 기본값을 재정의할 수 있습니다.

참고 항목

사용자 지정 인증은 Azure Static Web Apps 표준 계획에서만 사용할 수 있습니다.

사용자 지정 ID 공급자 구성

사용자 지정 ID 공급자는 구성 파일auth 섹션에서 구성됩니다.

소스 제어에 비밀을 배치하지 않도록 구성은 구성 파일에서 일치하는 이름의 애플리케이션 설정을 살펴봅니다. Azure Key Vault에 비밀을 저장하도록 선택할 수도 있습니다.

등록을 만들려면 먼저 다음 애플리케이션 설정을 만듭니다.

설정 이름
AZURE_CLIENT_ID Microsoft Entra 앱 등록에 대한 애플리케이션(클라이언트) ID입니다.
AZURE_CLIENT_SECRET Microsoft Entra 앱 등록에 대한 클라이언트 암호입니다.

다음으로, 아래의 샘플을 사용하여 구성 파일에서 공급자를 구성합니다.

Microsoft Entra 공급자는 두 가지 버전으로 제공됩니다. 버전 1은 페이로드가 userDetailsClaim사용자 정보를 반환할 수 있도록 하는 명시적으로 정의합니다. 반면 버전 2는 기본적으로 사용자 정보를 반환하며 URL에 openIdIssuer 의해 v2.0 지정됩니다.

Microsoft Entra 버전 1

{
  "auth": {
    "identityProviders": {
      "azureActiveDirectory": {
        "userDetailsClaim": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
        "registration": {
          "openIdIssuer": "https://login.microsoftonline.com/<TENANT_ID>",
          "clientIdSettingName": "AZURE_CLIENT_ID",
          "clientSecretSettingName": "AZURE_CLIENT_SECRET"
        }
      }
    }
  }
}

Microsoft Entra 테넌트 ID로 바꾸어 <TENANT_ID> 야 합니다.

Microsoft Entra 버전 2

{
  "auth": {
    "identityProviders": {
      "azureActiveDirectory": {
        "registration": {
          "openIdIssuer": "https://login.microsoftonline.com/<TENANT_ID>/v2.0",
          "clientIdSettingName": "AZURE_CLIENT_ID",
          "clientSecretSettingName": "AZURE_CLIENT_SECRET"
        }
      }
    }
  }
}

Microsoft Entra 테넌트 ID로 바꾸어 <TENANT_ID> 야 합니다.

Microsoft Entra ID를 구성하는 방법에 대한 자세한 내용은 기존 등록 사용에 대한 App Service 인증/권한 부여 설명서를 참조하세요.

로그인할 수 있는 계정을 구성하려면 애플리케이션에서 지원하는 계정 수정 및 Microsoft Entra 테넌트에서 Microsoft Entra 앱의 사용자 집합으로 제한을 참조하세요.

참고 항목

Microsoft Entra ID에 대한 구성 섹션이 있는 동안 플랫폼은 azureActiveDirectory로그인, 로그아웃 및 사용자 정보 제거를 위해 URL에 별 aad 칭을 지정합니다. 자세한 내용은 인증 및 권한 부여 섹션을 참조하세요.

인증 콜백

ID 공급자가 로그인 또는 로그아웃 요청을 완료하려면 리디렉션 URL이 필요합니다. 대부분의 공급자는 콜백 URL을 허용 목록에 추가해야 합니다. 다음 엔드포인트는 리디렉션 대상으로 사용할 수 있습니다.

Type URL 패턴
로그인 https://<YOUR_SITE>/.auth/login/<PROVIDER_NAME_IN_CONFIG>/callback
로그아웃 https://<YOUR_SITE>/.auth/logout/<PROVIDER_NAME_IN_CONFIG>/callback

Microsoft Entra ID를 사용하는 경우 자리 표시자에 대한 <PROVIDER_NAME_IN_CONFIG> 값으로 사용합니다aad.

참고 항목

이러한 URL은 인증 공급자로부터 응답을 받기 위해 Azure Static Web Apps에서 제공하므로 이러한 경로에서 페이지를 만들 필요가 없습니다.

로그인, 로그아웃 및 사용자 세부 정보

사용자 지정 ID 공급자를 사용하려면 다음 URL 패턴을 사용합니다.

작업 패턴
로그인 /.auth/login/<PROVIDER_NAME_IN_CONFIG>
로그아웃 /.auth/logout
사용자 세부 정보 /.auth/me
사용자 세부 정보 제거 /.auth/purge/<PROVIDER_NAME_IN_CONFIG>

Microsoft Entra ID를 사용하는 경우 자리 표시자에 대한 <PROVIDER_NAME_IN_CONFIG> 값으로 사용합니다aad.

역할 관리

정적 웹앱에 액세스하는 모든 사용자는 하나 이상의 역할에 속해 있습니다. 사용자가 속할 수 있는 두 가지 기본 제공 역할이 있습니다.

  • anonymous: 모든 사용자가 자동으로 익명 역할에 속합니다.
  • 인증됨: 로그인한 모든 사용자가 인증된 역할에 속합니다.

기본 제공 역할 외에 사용자 지정 역할을 사용자에게 할당하고, staticwebapp.config.json 파일에서 참조할 수 있습니다.

역할에 사용자 추가

역할에 사용자를 추가하려면 사용자를 특정 역할에 연결할 수 있는 초대를 생성합니다. 역할은 정의되고 staticwebapp.config.json 파일에 기본.

초대 만들기

초대는 개별 권한 부여 공급자와 관련이 있으므로 지원할 공급자를 선택할 때 앱의 요구 사항을 고려합니다. 일부 공급자는 사용자의 이메일 주소를 노출하지만 다른 공급자는 사이트의 사용자 이름만 제공합니다.

권한 부여 공급자 노출
Microsoft Entra ID 메일 주소
GitHub 사용자 이름
Twitter 사용자 이름

다음 단계를 수행하여 초대를 만듭니다.

  1. Azure Portal에서 Static Web Apps 리소스로 이동합니다.
  2. 설정에서 역할 관리를 선택합니다.
  3. 초대를 선택합니다.
  4. 옵션 목록에서 권한 부여 공급자를 선택합니다.
  5. 초대 대상 세부 정보 상자에 받는 사람의 사용자 이름 또는 전자 메일 주소를 추가합니다.
    • GitHub 및 Twitter의 경우 사용자 이름을 입력합니다. 다른 모든 사람의 경우 받는 사람의 전자 메일 주소를 입력합니다.
  6. Do기본 드롭다운 메뉴에서 정적 사이트의 do기본를 선택합니다.
    • 선택한 도메인은 초대에 표시되는 도메인입니다. 사용자 지정 do기본 사이트와 연결된 경우 사용자 지정 작업을 선택합니다기본.
  7. 역할 상자에 쉼표로 구분된 역할 이름 목록을 추가합니다.
  8. 초대를 다시 사용할 최대 시간을 입력합니다기본 유효합니다.
    • 가능한 최대 제한은 7일인 168시간입니다.
  9. 생성을 선택합니다.
  10. 초대 링크 상자에서 링크를 복사합니다.
  11. 액세스 권한을 부여하는 사용자에게 초대 링크를 전자 메일로 보냅니다.

사용자가 초대에서 링크를 선택하면 해당 계정으로 로그인하라는 메시지가 표시됩니다. 성공적으로 로그인하면 사용자가 선택한 역할과 연결됩니다.

주의

경로 규칙이 선택한 인증 공급자와 충돌하지 않는지 확인합니다. 경로 규칙으로 공급자를 차단하면 사용자가 초대를 수락할 수 없습니다.

역할 할당 업데이트

  1. Azure Portal에서 Static Web Apps 리소스로 이동합니다.
  2. 설정에서 역할 관리를 선택합니다.
  3. 목록에서 사용자를 선택합니다.
  4. 역할 상자에서 역할 목록을 편집합니다.
  5. 업데이트를 선택합니다.

사용자 삭제

  1. Azure Portal에서 Static Web Apps 리소스로 이동합니다.
  2. 설정에서 역할 관리를 선택합니다.
  3. 목록에서 사용자를 찾습니다.
  4. 사용자의 행에 대한 확인란을 선택합니다.
  5. 삭제를 선택합니다.

사용자를 제거할 때 다음 항목에 유의하세요.

  • 사용자를 제거하면 해당 권한이 무효화됩니다.
  • 전 세계적으로 전파하는 데 몇 분 정도 걸릴 수 있습니다.
  • 사용자를 앱에 다시 추가하면 userId가 변경됩니다.

다음 단계