Share via


권한 관리에서 사용자 지정 확장을 사용하여 Logic Apps 트리거

Azure Logic Apps를 사용하여 사용자 지정 워크플로를 자동화하고 앱과 서비스를 한 곳에서 연결할 수 있습니다. 사용자는 권한 관리와 Logic Apps를 통합하여 거버넌스 워크플로를 핵심 권한 관리 사용 사례 이상으로 확장할 수 있습니다.

그런 다음, 이러한 Logic Apps는 액세스 패키지를 부여하거나 요청하는 경우와 같은 권한 관리 사용 사례에 따라 실행되도록 트리거할 수 있습니다. 예를 들어 관리자는 사용자 지정 논리 앱을 만들고 권한 관리에 연결할 수 있으므로 사용자가 액세스 패키지를 요청하면 사용자에게 타사 SAAS 앱(예: Salesforce)의 특정 특성이 할당되거나 사용자 지정 메일이 전송되도록 논리 앱이 트리거됩니다.

Logic Apps와 통합할 수 있는 권한 관리 사용 사례에는 다음 단계가 포함됩니다. 사용자 지정 확장 논리 앱을 시작할 수 있는 액세스 패키지와 연결된 트리거는 다음과 같습니다.

  • 액세스 패키지 요청이 생성되는 경우

  • 액세스 패키지 요청이 승인되는 경우

  • 액세스 패키지 할당이 부여되는 경우

  • 액세스 패키지 할당이 제거되는 경우

  • 액세스 패키지 할당이 자동으로 만료되기 14일 전

  • 액세스 패키지 할당이 자동으로 만료되기 하루 전

Logic Apps에 대한 이러한 트리거는 규칙이라는 액세스 패키지 정책 내의 탭에서 제어됩니다. 또한 카탈로그 페이지의 사용자 지정 확장 탭에는 지정된 카탈로그에 대해 추가된 모든 Logic Apps 확장이 표시됩니다. 이 문서에서는 권한 관리에서 논리 앱을 만들고, 카탈로그와 액세스 패키지에 추가하는 방법에 대해 설명합니다.

라이선스 요구 사항

이 기능을 사용하려면 Microsoft Entra ID Governance 라이선스가 필요합니다. 요구 사항에 적합한 라이선스를 찾으려면 Microsoft Entra ID Governance 라이선스 기본 사항을 참조하세요.

권한 관리에 사용할 논리 앱 워크플로를 만들고 카탈로그에 추가

이 문서의 단계는 시작하는 포털에 따라 약간 다를 수 있습니다.

  1. 최소한 ID 관리 관리자Microsoft Entra 관리 센터에 로그인합니다.

    이 작업을 완료할 수 있는 기타 최소 권한 역할에는 카탈로그 소유자 및 리소스 그룹 소유자가 포함됩니다.

  2. ID 거버넌스>카탈로그로 이동합니다.

  3. 사용자 지정 확장을 추가할 카탈로그를 선택한 다음 왼쪽 메뉴에서 사용자 지정 확장을 선택합니다.

  4. 헤더 탐색 모음에서 사용자 지정 확장 추가를 선택합니다.

  5. 기본 사항 탭에서 연결하려는 논리 앱의 이름에 해당하는 사용자 지정 확장의 이름과 워크플로에 대한 설명을 입력합니다. 이러한 필드는 카탈로그의 사용자 지정 확장 탭에 표시됩니다.

    사용자 지정 확장을 만드는 창

  6. 확장 유형 탭은 사용자 지정 확장을 사용할 수 있는 액세스 패키지 정책 유형을 정의합니다. "요청 워크플로" 유형은 정책 단계인 요청된 액세스 패키지가 생성되는 경우, 요청이 승인되는 경우, 할당이 부여되는 경우, 할당이 제거되는 경우를 지원합니다. 이 형식은 시작 및 대기도 지원합니다. 유지 관리합니다.

  7. 만료 전 워크플로는 액세스 패키지 할당이 만료될 때까지 14일, 액세스 패키지 할당이 만료될 때까지 1일의 정책 단계를 지원합니다. 이 확장 유형은 시작 및 대기를 지원하지 않습니다.

    시작 및 대기 구성 옵션의 스크린샷.

  8. 확장 구성 탭을 사용하면 확장에 "시작 및 계속" 동작이 있는지 또는 "시작 및 대기" 동작이 있는지를 결정할 수 있습니다. "시작 및 계속"을 사용하는 경우 액세스 패키지에서 연결된 정책 작업(예: 요청)은 사용자 지정 확장에 연결된 논리 앱을 트리거합니다. 논리 앱이 트리거되면 액세스 패키지와 연결된 권한 관리 프로세스가 계속됩니다. "시작 및 대기"의 경우 확장에 연결된 논리 앱이 작업을 완료하고 관리자가 프로세스를 계속하기 위해 다시 시작 작업을 보낼 때까지 연결된 액세스 패키지 작업을 일시 중지합니다. 정의된 대기 기간 안에 응답이 다시 전송되지 않으면 이 프로세스는 실패로 간주됩니다. 이 프로세스는 권한 관리 프로세스를 일시 중지하는 사용자 지정 확장 구성의 자체 섹션에서 아래에 자세히 설명되어 있습니다.

  9. 세부 정보 탭에서 기존 소비 플랜 논리 앱을 사용할지 여부를 선택합니다. "새 논리 앱 만들기" 필드에서 예(기본값)를 선택하면 이 사용자 지정 확장에 이미 연결된 새 빈 소비 플랜 논리 앱이 만들어집니다. 어떤 경우든 다음을 제공해야 합니다.

    1. Azure 구독

    2. 새 논리 앱을 만드는 경우 Logic App 리소스 만들기 권한이 있는 리소스 그룹

    3. 해당 설정을 사용하는 경우 "논리 앱 만들기"를 선택합니다.

      논리 앱 세부 정보 선택을 만드는 스크린샷

    참고 항목

    이 모달에서 새 논리 앱을 만들 때 "/subscriptions/{SubscriptionId}/resourceGroups/{RG Name}/providers/Microsoft.Logic/workflows/{Logicapp Name}"의 길이는 150자를 초과할 수 없습니다.

  10. 검토 및 만들기에서 사용자 지정 확장에 대한 요약을 검토하고, Logic App 설명선에 대한 세부 정보가 올바른지 확인합니다. 다음으로 만들기를 선택합니다.

  11. 연결된 Logic App에 대한 이 사용자 지정 확장은 이제 카탈로그 아래의 사용자 지정 확장 탭에 표시됩니다. 이는 액세스 패키지 정책에서 호출할 수 있습니다.

카탈로그에 대한 기존 사용자 지정 확장 보기 및 편집

  1. 이전에 ID 거버넌스 관리istrator로 멘션 카탈로그 내의 사용자 지정 확장 탭으로 이동합니다.

    이 작업을 완료할 수 있는 기타 최소 권한 역할에는 카탈로그 소유자가 포함됩니다.

  2. 여기서는 연결된 논리 앱 및 사용자 지정 확장 유형에 대한 정보와 함께 만든 모든 사용자 지정 확장을 볼 수 있습니다. 사용자 지정 확장 목록의 스크린샷

  3. 논리 앱 이름과 함께 형식 열은 사용자 지정 확장을 새 V2 인증 모델(2023년 3월 17일 이후)로 만들었는지 또는 원래 모델로 만들어졌는지를 나타냅니다. 새 모델로 사용자 지정 확장을 만든 경우 형식 열은 "할당 요청" 또는 "만료 전"인 구성 모달에서 선택한 형식과 일치합니다. 이전 사용자 지정 확장의 경우 형식에 "사용자 지정 액세스 패키지"가 표시됩니다.

  4. 토큰 보안 열에는 사용자 지정 확장을 만들 때 사용되는 연결된 인증 보안 프레임워크가 표시됩니다. 새 V2 사용자 지정 확장은 토큰 보안 유형으로 "PoP(소유 증명")를 표시합니다. 이전 사용자 지정 확장은 "일반"을 표시합니다.

  5. 이전 스타일 사용자 지정 확장은 더 이상 UI에서 만들 수 없지만 기존 확장은 UI에서 새 스타일 사용자 지정 확장으로 변환할 수 있습니다. 이전 보안 토큰을 새 토큰으로 변환하는 스크린샷

  6. 이전 사용자 지정 확장의 행 끝에 있는 세 개의 점을 선택하면 사용자 지정 확장을 새 형식으로 신속하게 업데이트할 수 있습니다.

    참고 항목

    사용자 지정 확장은 사용하지 않거나 특정 확장 유형(할당 요청 단계 또는 만료 전 단계)의 정책 단계에만 사용 중인 경우 새 형식으로 변환할 수 있습니다.

  7. 사용자 지정 확장을 편집할 수도 있습니다. 이렇게 하면 이름, 설명 및 기타 필드 값을 업데이트할 수 있습니다. 사용자 지정 확장에 대해 3개 점 창 내에서 편집을 선택하여 이 작업을 수행할 수 있습니다.

  8. 이전 스타일 사용자 지정 확장은 변환되지 않은 경우 더 이상 만들 수 없더라도 계속 사용하고 편집할 수 있습니다.

  9. 이전 스타일 사용자 지정 확장이 정책 단계, 할당 요청 및 만료 전 유형 둘 다에 사용되기 때문에 새 유형으로 업데이트할 수 없는 경우 업데이트하려면 연결된 모든 정책에서 제거하거나 한 가지 유형과 연결된 정책 단계(할당 요청 또는 만료 전)에만 사용해야 합니다.  

액세스 패키지의 정책에 사용자 지정 확장 추가

  1. 최소한 ID 관리 관리자Microsoft Entra 관리 센터에 로그인합니다.

    이 작업을 완료할 수 있는 기타 최소 권한 역할에는 카탈로그 소유자 및 Access 패키지 관리자가 포함됩니다.

  2. ID 거버넌스>권한 관리>액세스 패키지로 이동합니다.

  3. 이미 만들어진 액세스 패키지 목록에서 사용자 지정 확장(논리 앱)을 추가하려는 액세스 패키지를 선택합니다.

    참고 항목

    새 액세스 패키지를 만들려면 새 액세스 패키지를 선택합니다. 액세스 패키지를 만드는 방법에 대한 자세한 내용은 권한 관리에서 새 액세스 패키지 만들기를 참조하세요. 기존 액세스 패키지를 편집하는 방법에 관한 자세한 내용은 Microsoft Entra 권한 관리에서 액세스 패키지에 대한 요청 설정 변경을 참조하세요.

  4. 정책 탭으로 변경하고, 정책을 선택하고, 편집을 선택합니다.

  5. 정책 설정에서 사용자 지정 확장 탭으로 이동합니다.

  6. 스테이지 아래의 메뉴에서 이 사용자 지정 확장(Logic App)에 대한 트리거로 사용할 액세스 패키지 이벤트를 선택합니다. 예를 들어 사용자가 액세스 패키지를 요청하는 경우에만 사용자 지정 확장 Logic App 워크플로를 트리거하려면 요청이 만들어짐을 선택합니다.

  7. 사용자 지정 확장 아래의 메뉴에서 액세스 패키지에 추가하려는 사용자 지정 확장(Logic App)을 선택합니다. '경우' 필드에서 선택한 이벤트가 발생하면 선택한 작업이 실행됩니다.

  8. 기존 액세스 패키지의 정책에 추가하려면 업데이트를 선택합니다.

    패키지에 액세스하는 논리 앱 추가

연결된 논리 앱의 워크플로 정의 편집

사용자 지정 확장에 연결된 새로 만든 Logic Apps의 경우 이러한 Logic Apps는 빈 상태가 됩니다. 연결된 액세스 패키지 정책 조건이 트리거될 때 확장에 의해 트리거되는 Logic Apps에서 워크플로를 만들려면 논리 앱 디자이너에서 논리 앱 워크플로의 정의를 편집해야 합니다. 이를 수행하려면 다음 단계를 따릅니다.

  1. 이전에 ID 거버넌스 관리istrator로 멘션 카탈로그 내의 사용자 지정 확장 탭으로 이동합니다.

    이 작업을 완료할 수 있는 기타 최소 권한 역할에는 카탈로그 소유자가 포함됩니다.

  2. 논리 앱을 편집할 사용자 지정 확장을 선택합니다.

  3. 연결된 사용자 지정 확장 행에 대한 논리 앱 열 아래에서 논리 앱을 선택합니다. 이렇게 하면 논리 앱 디자이너에서 워크플로를 편집하거나 만들 수 있습니다.

논리 앱 워크플로를 만드는 방법에 대한 자세한 내용은 빠른 시작: 다중 테넌트 Azure Logic Apps에서 예제 소비 워크플로 만들기를 참조하세요.

권한 관리 프로세스를 일시 중지하는 사용자 지정 확장 구성

사용자 지정 확장 기능에 대한 새로운 업데이트는 해당 논리 앱이 완료되고 다시 시작 요청 페이로드가 권한 관리로 다시 전송될 때까지 사용자 지정 확장과 연결된 액세스 패키지 정책 프로세스를 일시 중지하는 기능입니다. 예를 들어 논리 앱에 대한 사용자 지정 확장이 액세스 패키지 부여 정책에서 트리거되고 "시작 및 대기"가 사용하도록 설정된 경우 논리 앱이 트리거되면 논리 앱이 완료되고 다시 시작 요청이 권한 관리로 다시 전송될 때까지 권한 부여 프로세스가 다시 시작되지 않습니다.

이 일시 중지 프로세스를 통해 관리자는 권한 관리에서 액세스 수명 주기 작업을 계속하기 전에 실행하려는 워크플로를 제어할 수 있습니다. 유일한 예외는 오류가 시간 제한이 경우입니다. 시작 및 대기 프로세스에는 분, 시간 또는 일로 명시된 최대 14일의 시간 제한이 필요합니다. "시간 제한" 기간이 경과할 때까지 다시 시작 응답이 권한 관리로 다시 전송되지 않으면 권한 관리 요청 워크플로 프로세스가 일시 중지됩니다.

관리자는 논리 앱 워크플로가 완료되면 API 다시 시작 요청 페이로드를 권한 관리로 다시 보낼 수 있는 자동화된 프로세스를 구성할 책임이 있습니다. 다시 시작 요청 페이로드를 다시 보내려면 그래프 API 문서의 지침을 따르세요. 다시 시작 요청에 대한 정보는 여기를 참조하세요.

특히 액세스 패키지 정책이 사용자 지정 확장을 설명하도록 설정되어 있고 요청 처리가 고객의 콜백을 기다리는 경우 고객은 다시 시작 작업을 시작할 수 있습니다. 이 작업은 requestStatusWaitingForCallback 상태인 accessPackageAssignmentRequest 개체에서 수행됩니다.

다시 시작 요청은 다음 단계에 대해 다시 보낼 수 있습니다.

microsoft.graph.accessPackageCustomExtensionStage.assignmentRequestCreated microsoft.graph.accessPackageCustomExtensionStage.assignmentRequestApproved microsoft.graph.accessPackageCustomExtensionStage.assignmentRequestGranted microsoft.graph.accessPackageCustomExtensionStage.assignmentRequestRemoved

다음 흐름 다이어그램은 Logic Apps 워크플로에 대한 자격 관리 콜아웃을 보여줍니다. Logic Apps 워크플로에 대한 자격 관리 호출의 다이어그램.

다이어그램 흐름 다이어그램은 다음을 보여줍니다.

  1. 사용자가 ID 서비스에서 호출을 받을 수 있는 사용자 지정 엔드포인트를 만듭니다.
  2. ID 서비스는 ID 서비스에서 엔드포인트를 호출할 수 있도록 테스트 호출을 합니다.
  3. 사용자가 Graph API를 호출하여 액세스 패키지에 사용자를 추가하도록 요청합니다.
  4. ID 서비스가 백 엔드 워크플로를 트리거하는 큐에 추가됨
  5. 권한 관리 서비스 요청 처리는 요청 페이로드를 사용하여 논리 앱을 호출합니다.
  6. 워크플로에 허용되는 코드가 필요한 경우
  7. 권한 관리 서비스는 차단 사용자 지정 작업이 다시 시작될 때까지 기다립니다.
  8. 고객 시스템은 요청 다시 시작 API를 ID 서비스에 호출하여 요청 처리를 다시 시작합니다.
  9. ID 서비스는 백 엔드 워크플로를 다시 시작하는 권한 관리 서비스 큐에 다시 시작 요청 메시지를 추가합니다.
  10. 권한 관리 서비스가 차단된 상태에서 다시 시작됨

다시 시작 요청 페이로드의 예는 다음과 같습니다.

POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/accessPackageAssignmentRequests/0e60f18c-b2a0-4887-9da8-da2e30a39d99/resume
Content-Type: application/json

{
  "source": "Contoso.SodCheckProcess",
  "type": "microsoft.graph.accessPackageCustomExtensionStage.assignmentRequestCreated",
  "data": {
    "@odata.type": "microsoft.graph.accessPackageAssignmentRequestCallbackData",
    "stage": "assignmentRequestCreated",
    "customExtensionStageInstanceId": "957d0c50-466b-4840-bb5b-c92cea7141ff",
    "customExtensionStageInstanceDetail": "This user is all verified"
  }
}

시작 및 대기를 사용하면 관리자는 확장이 액세스 패키지 단계 "요청이 생성됨" 또는 "요청이 승인됨"에 연결된 경우 관리자가 요청을 거부할 수 있습니다. 이러한 경우 논리 앱은 권한 관리에 "거부" 메시지를 다시 보낼 수 있습니다. 그러면 최종 사용자가 액세스 패키지를 받기 전에 프로세스가 종료됩니다.

앞서 설명한 것처럼 4개의 연결된 정책 단계를 포함하는 요청 워크플로 유형으로 만든 사용자 지정 확장은 원하는 경우 "시작 및 대기"로 사용하도록 설정할 수 있습니다.

다음은 콜백을 기다리는 요청을 거부하여 액세스 패키지 할당 요청 처리를 다시 시작하는 예입니다. 설명선의 assignmentRequestCreated 단계에서 요청을 거부할 수 없습니다.

POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/accessPackageAssignmentRequests/9e60f18c-b2a0-4887-9da8-da2e30a39d99/resume
Content-Type: application/json

{
  "source": "Contoso.SodCheckProcess",
  "type": "microsoft.graph.accessPackageCustomExtensionStage.assignmentRequestCreated",
  "data": {
    "@odata.type": "microsoft.graph.accessPackageAssignmentRequestCallbackData",
    "stage": "AssignmentRequestCreated",
    "customExtensionStageInstanceId": "857d0c50-466b-4840-bb5b-c92cea7141ff",
    "state": "denied",
    "customExtensionStageInstanceDetail": "Potential risk user based on the SOD check"
  }
}

확장 최종 사용자 환경

승인자 환경

승인자는 자격 관리 프로세스를 일시 중지하는 사용자 지정 확장 구성에 있는 페이로드에 표시된 대로 customExtensionStageInstanceDetail 아래에서 다시 시작 요청 페이로드에 지정된 문자열을 확인합니다. 승인자 화면의 스크린샷.

요청자 환경

액세스 패키지에 시작 및 대기 기능이 있는 사용자 지정 확장이 있고 액세스 패키지 요청이 생성될 때 논리 앱이 트리거되면 요청자는 MyAccess의 요청 기록 내에서 요청 상태를 볼 수 있습니다.

다음 상태 업데이트는 사용자 지정 확장 단계에 따라 사용자에게 표시됩니다.

사용자 지정 확장 단계 MyAccess 요청 기록에서 요청자에게 표시되는 메시지
확장이 처리될 때 계속하기 전에 정보 대기
확장이 실패할 때 프로세스가 만료됨
확장이 다시 시작될 때 프로세스 계속

확장이 다시 시작된 이후의 요청자의 MyAccess 요청 기록 예입니다.

요청자 화면의 스크린샷.

문제 해결 및 유효성 검사

요청과 연결된 사용자 지정 확장의 경우 연결된 액세스 패키지의 요청 세부 정보 페이지 내의 요청 기록 세부 정보 링크에서 사용자 지정 확장에 대한 세부 정보(활성화된 경우 시작 및 대기)를 볼 수 있습니다.

사용자 지정 작업 확장에 대한 기록을 요청하는 스크린샷.사용자 지정 작업 확장에 대한 선택 세부 정보의 스크린샷.

예를 들어 여기에서 요청이 제출된 시간과 시작 및 대기 프로세스(콜백 대기)가 시작된 시간을 확인할 수 있습니다. 요청이 승인되었고, 논리 앱이 실행되고 다시 시작 요청이 오후 12시 15분에 반환되면 권한 관리 단계가 "다시 시작"됩니다.

또한 요청 세부 정보 내의 새 사용자 지정 확장 인스턴스 링크는 요청에 대한 액세스 패키지와 연결된 사용자 지정 확장에 대한 정보를 표시합니다.
선택 세부 정보 목록 항목의 스크린샷

사용자 지정 확장 ID 및 상태가 표시됩니다. 이 정보는 연결된 시작 및 대기 콜백이 있는지에 따라 달라집니다.

사용자 지정 확장이 연결된 논리 앱을 올바르게 트리거했는지 확인하려면 논리 앱이 마지막으로 실행된 시점의 타임스탬프가 있는 논리 앱 로그도 볼 수 있습니다.

다음 단계