다음을 통해 공유


방법: Silverlight 클라이언트 응용 프로그램에서 인증 활성화

LightSwitch에서는 보안 권한이 없는 사용자의 데이터 읽기, 변경 또는 삭제를 방지하여 응용 프로그램의 보안을 강화할 수 있습니다. 인증 및 권한 부여를 구현하는 경우 응용 프로그램에 액세스하기 전에 사용자가 자신의 ID를 증명해야 합니다.

참고

권한 설정 프로세스가 HTML 클라이언트에 대한 프로세스와 다릅니다. 방법: HTML 클라이언트 응용 프로그램에서 인증 활성화을 참조하십시오.SharePoint에 대해 사용된 LightSwitch 응용 프로그램은 액세스 제어를 위해 SharePoint 인증을 사용합니다.

사용자가 여러 명 있는 경우, 특정 화면 및 데이터에 대한 다양한 액세스 수준이 있는 사용자 역할을 만든 다음 각 사용자에게 적절한 역할을 할당하여 보다 쉽게 액세스를 관리할 수도 있습니다.

예를 들어, 직원이 급여 응용 프로그램에서 자신의 급여 정보를 보기만 할 수 있고 변경하지 못하게 할 수 있습니다. 그러나 급여 감독자에게는 직원 정보 보기 및 변경 권한이 주어질 수 있습니다. 직원은 직원 역할에 할당되며 감독자는 감독자 역할에 할당됩니다.

사용자를 Active Directory의 보안 그룹에 추가한 후 해당 그룹에 사용 권한을 할당하여 관리 권한을 보다 쉽게 관리할 수도 있습니다. 멤버 자격과 권한은 상속되기 때문에 한 번의 변경으로 그룹 뿐만 아니라 모든 하위 그룹에 권한을 부여하고 거부할 수 있습니다. 예를 들어, Active Directory에서 Bob을 Sales 그룹에 추가할 수 있습니다. Sales가 Marketing의 하위 그룹인 경우 Marketing에 부여하는 권한은 Bob에도 부여됩니다.

인증

응용 프로그램을 보호하는 첫 번째 단계는 인증을 사용하는 것입니다. 폼 인증 또는 Windows 인증을 사용할 수 있습니다. 폼 인증은 자체 응용 프로그램에 의해 관리되며 사용자는 응용 프로그램에 액세스하려면 사용자 이름과 암호를 제공해야 합니다. Windows 인증에서 응용 프로그램을 실행하는 컴퓨터에 로그온하는 데 사용된 자격 증명은 응용 프로그램 사용자를 인증하는 데 사용되며 다른 추가 사용자 이름 또는 암호가 필요하지 않습니다. 두 경우 모두 응용 프로그램 관리자는 권한이 있는 사용자 목록을 유지 관리합니다. 폼 인증에서 관리자는 암호화된 암호도 유지 관리합니다.

인증을 활성화하려면

  1. 솔루션 탐색기에서 속성 노드의 바로 가기 메뉴를 열고 열기를 선택합니다.

  2. 응용 프로그램 디자이너에서 액세스 제어 탭을 선택합니다.

  3. 사용할 인증 형식 선택 목록에서 Windows 인증 사용 또는 폼 인증 사용을 선택합니다.

    Windows 인증 사용을 선택한 경우 응용 프로그램의 사용자 화면에서 지정된 사용자만 허용 옵션 단추나 인증된 모든 Windows 사용자 허용 옵션 단추를 선택합니다.

    이제 응용 프로그램에서 사용자에게 응용 프로그램에 액세스하기 위한 자격 증명을 제공할 것을 요구합니다.

인증을 비활성화하려면

  1. 솔루션 탐색기에서 속성 노드의 바로 가기 메뉴를 열고 열기를 선택합니다.

  2. 응용 프로그램 디자이너에서 액세스 제어 탭을 선택합니다.

  3. 사용할 인증 형식 선택: 목록에서 인증 사용 안 함을 선택합니다.

    응용 프로그램에서는 사용자에게 응용 프로그램에 액세스하기 위한 자격 증명을 요구하지 않으며, 모든 사용자가 응용 프로그램의 모든 부분에 액세스할 수 있습니다.

사용 권한

응용 프로그램을 보호하는 다음 단계는 권한을 만드는 것입니다. 화면, 명령, 데이터 엔터티 및 쿼리에 대한 권한을 정의할 수 있습니다. 먼저 응용 프로그램 디자이너 권한 개체를 정의합니다. 그런 다음 CanRun<ScreenName> 또는 <QueryName>_CanExecute 같은 Can 메서드에서 코드의 개체를 참조할 수 있습니다. 이러한 메서드의 코드는 일반적으로 현재 사용자 또는 역할에게 권한이 있는지 확인하고 권한이 유효한 경우에 폼을 표시하거나 쿼리를 실행합니다.

코드를 테스트하려면 권한이 있는 사용자와 권한이 없는 사용자 모두로 응용 프로그램을 실행합니다. 디버그 권한을 설정하여 응용 프로그램을 테스트 또는 디버깅할 때 사용자를 가장할 수 있습니다.

권한을 생성하려면

  1. 솔루션 탐색기에서 속성 노드의 바로 가기 메뉴를 열고 열기를 선택합니다.

  2. 응용 프로그램 디자이너에서 액세스 제어 탭을 선택합니다.

  3. 디버깅에 사용할 권한 정의 또는 권한 선택 표의 이름 열에서 **<새 권한 추가>**를 선택한 후 권한에 대한 프로그래밍 이름을 입력합니다.

    이름은 영문자로 시작해야 하고 영문자, 숫자 또는 밑줄을 포함할 수 있습니다.

  4. 표시 이름 열에서 화면에 표시되어 응용 프로그램 관리자가 역할 할당을 위해 사용할 권한의 이름을 입력합니다.

  5. 설명 열에 권한에 대한 설명을 입력합니다.

화면에 대한 사용 권한을 설정하는 코드를 작성하려면

  1. 솔루션 탐색기에서 화면 노드의 바로 가기 메뉴를 열고 열기를 선택합니다.

    해당 화면에 대해 화면 디자이너가 열립니다.

  2. 코드 작성 목록에서 CanRunScreenName을 선택합니다. 여기서 ScreenName은 선택한 화면의 이름입니다.

  3. 코드 편집기에서 CanRunScreenName 메서드에 다음 코드를 입력합니다.

    If Application.User.HasPermission(Can_View_Products) Then
        result =  True
    Else
        result = False
    End If
    
    if (Application.User.HasPermission(Permissions.Can_View_Products)) 
    {
        result = true;
    } 
    else 
    {
        result = false;
    }
    

    이 코드는 응용 프로그램이 시작될 때마다 평가됩니다.

    참고

    이 코드 예제에서는 Can_View_Products라는 권한을 확인합니다.응용 프로그램에서 정의한 권한의 이름을 바꿉니다.

명령에 대한 사용 권한을 설정하는 코드를 작성하려면

  1. 솔루션 탐색기에서 화면 노드의 바로 가기 메뉴를 열고 열기를 선택합니다.

    해당 화면에 대해 화면 디자이너가 열립니다.

  2. 화면 내용 트리 창에서 명령 노드를 확장한 다음 코드를 작성하려는 명령을 선택합니다.

  3. 명령에 대한 바로 가기 메뉴를 열고 ButtonName**_CanExecute**를 선택합니다. 여기서 ButtonName은 선택한 명령 이름입니다.

  4. 코드 편집기의 ButtonName**_CanExecute** 메서드에 원하는 코드를 입력합니다.

    참고

    코드 예제는 이 항목의 앞부분에 나오는 "화면에 대한 사용 권한을 설정하는 코드를 작성하려면"을 참조하십시오.

엔터티에 대한 사용 권한을 설정하는 코드를 작성하려면

  1. 솔루션 탐색기에서 엔터티 노드의 바로 가기 메뉴를 열고 열기를 선택합니다.

    해당 엔터티에 대해 Entity Designer가 열립니다.

  2. 엔터티 디자이너의 원근감 모음에서 서버를 선택합니다.

  3. 코드 작성 목록에서 EntityName**_Can**Operation 메서드를 선택합니다. 여기서 EntityName은 엔터티 이름, Operation은 코드를 작성하려는 작업의 이름입니다.

    참고

    사용할 수 있는 메서드는 상황에 따라 다릅니다.예를 들면 CanDeleteCanUpdate입니다.

  4. 코드 편집기의 EntityName**_Can**Operation 메서드에 원하는 코드를 입력합니다.

    참고

    코드 예제는 이 항목의 앞부분에 나오는 "화면에 대한 사용 권한을 설정하는 코드를 작성하려면"을 참조하십시오.

쿼리에 대한 사용 권한을 설정하는 코드를 작성하려면

  1. 솔루션 탐색기에서 쿼리 노드의 바로 가기 메뉴를 열고 열기를 선택합니다.

    해당 쿼리에 대해 쿼리 디자이너가 열립니다.

  2. 코드 작성 목록에서 QueryName**_CanExecute** 메서드 중 하나를 선택합니다. 여기서 QueryName은 쿼리의 이름입니다.

  3. 코드 편집기의 QueryName**_CanExecute** 메서드에 원하는 코드를 입력합니다.

    참고

    코드 예제는 이 항목의 앞부분에 나오는 "화면에 대한 사용 권한을 설정하는 코드를 작성하려면"을 참조하십시오.

디버깅에 대한 권한을 사용하도록 설정하려면

  1. 솔루션 탐색기에서 속성 노드의 바로 가기 메뉴를 열고 열기를 선택합니다.

  2. 응용 프로그램 디자이너에서 액세스 제어 탭을 선택합니다.

  3. 디버깅에 사용할 권한 정의 또는 권한 선택 표에서 디버깅에 사용하도록 설정하려는 권한을 선택한 다음 디버깅용으로 부여 확인란을 선택합니다.

게시 및 관리

인증을 사용하는 마지막 단계는 게시 중에 응용 프로그램에 대한 기본 관리자를 정의하는 것입니다. 게시한 후 기본 관리자가 로그인하여 사용자, 역할 및 권한을 정의해야 합니다.

관리자를 정의하려면

  • LightSwitch 응용 프로그램 관리의 단계를 수행합니다.

    중요

    인증을 사용되고 기본 관리자를 정의하지 않은 경우 게시된 응용 프로그램에 액세스할 수 없습니다.

참고 항목

작업

LightSwitch 응용 프로그램 관리

방법: HTML 클라이언트 응용 프로그램에서 인증 활성화

개념

LightSwitch의 보안 고려 사항

기타 리소스

LightSwitch 응용 프로그램의 Silverlight 클라이언트 화면

Active Directory 보안 그룹