본문으로 건너뛰기

관리자를 위한 MDM 설정

지원 플랫폼: iOS | visionOS

RedirectWeb은 Apple의 관리형 앱 구성(Managed App Configuration)을 지원하여 IT 관리자가 Jamf, Intune, Kandji 등과 같은 모바일 장치 관리(MDM) 솔루션을 통해 직원/학생 장치 전체에 앱 설정을 중앙에서 배포하고 관리할 수 있도록 합니다.

이 페이지에서는 구성 가능한 키, 앱 동작, 권장 사항 및 제한 사항에 대해 설명합니다.

개요

MDM을 통해 구성을 푸시하면 다음을 수행할 수 있습니다:

  • 강제 규칙(Enforced Rules): 사용자가 수정하거나 삭제할 수 없는 조직 차원의 리디렉션 규칙을 적용합니다.
  • 초기 규칙 배포: 앱을 처음 실행할 때 기본값으로 사용되는 템플릿 규칙 세트를 배포합니다.
  • UI 제어: 특정 기능(예: 라이브러리)에 대한 액세스를 제한하고, 앱 내에서 조직 관리 하에 있음을 명확하게 표시합니다.
  • 대용량 규칙 가져오기(Fallback): 외부 서버에서 규칙을 가져와 MDM 페이로드 크기 제한을 우회합니다.

사용 사례

  • 시스템 마이그레이션 중 원활한 라우팅: 레거시 내부 시스템(예: legacy-crm.internal.local)에서 새로운 플랫폼(예: salesforce.com)으로 마이그레이션할 때 enforcedRuleSet을 배포합니다. 직원이 이전 즐겨찾기를 사용하더라도 자동으로 새 시스템으로 리디렉션되어 오래된 링크와 관련된 IT 지원 요청을 줄일 수 있습니다.
  • 인트라넷 접속 지원: Omnissa Web과 같은 앱당 VPN 터널을 통해 인트라넷 리소스에 쉽게 액세스할 수 있도록 맞춤형 URL 스킴을 사용하는 리디렉션 규칙을 배포합니다.
경고

MDM 구성 푸시는 사용자가 RedirectWeb 앱을 열어야만 즉시 적용됩니다. 앱은 백그라운드 작업을 사용하여 MDM 업데이트를 브라우저 확장 프로그램에 자동으로 푸시하지만, 이는 OS에 의해 결정되는 "최선 노력(best-effort)" 실행 방식입니다. 실행 타이밍은 매우 예측 불가능하며 작업이 전혀 실행되지 않을 수도 있습니다. 따라서 이 기능은 클라우드 서비스 장애 발생 후 몇 분 이내에 모든 직원을 백업 사이트로 즉시 리디렉션하려는 시도와 같은 시간에 민감한 장애 대응에는 의존해서는 안 됩니다.

데모

비디오에서 사용된 plist 파일은 여기에서 확인할 수 있습니다: sample-mdm.plist

비디오에서는 ManageEngine의 MDM을 사용하여 구성을 배포했지만, Apple의 관리형 앱 구성을 지원하는 다른 MDM 솔루션에서도 동일한 구성을 사용할 수 있습니다.

구성 가능한 키

MDM 콘솔을 통해 관리형 앱 구성을 위한 다음 키와 값을 배포하십시오. 일반적으로 plist 형식으로 제공됩니다.

키 이름유형설명
enforcedRuleSet규칙 세트[강제 규칙] 일반 규칙보다 높은 우선순위로 적용되는 규칙 세트입니다. 목록의 첫 번째 규칙이 우선순위를 가집니다. 사용자는 이 규칙을 편집, 삭제 또는 순서를 변경할 수 없습니다. 이 규칙은 앱의 글로벌 비활성화 토글을 무시하고 항상 활성화되며 iCloud를 통해 동기화되지 않습니다.
prefilledRuleSet규칙 세트[초기 규칙] 사용자가 기존 규칙 없이 앱을 처음 실행할 때 기본 예시 규칙 대신 생성되는 규칙 세트입니다. 배포된 후에는 일반 규칙으로 작동하여 사용자가 수정, 삭제 및 iCloud 동기화를 할 수 있습니다.
organizationNameString앱 내 설정 화면 상단에 "Managed by [organizationName]"을 표시하여 앱이 관리되고 있음을 사용자에게 알립니다.
managedConfigVersionString구성을 위한 임의의 버전 문자열입니다. UI에 표시되어 문제 해결 시 IT 지원팀이 최신 MDM 페이로드가 장치에 도달했는지 확인하는 데 사용됩니다.
showsLibrarySectionBooleanfalse로 설정하면 규칙 라이브러리 기능이 숨겨지고 해당 섹션이 "조직에 의해 제한됨" 오류 메시지로 대체됩니다.
fallbackFallback구성이 MDM 페이로드 제한을 초과할 때 지정합니다. 앱은 구성을 적용하기 위해 이 URL에서 JSON/XML을 가져옵니다.

이 키들은 모두 선택 사항입니다.

[Object] 규칙 세트

각 규칙 객체는 앱을 통해 공유/내보낼 수 있는 형식과 동일하지만, 다음과 같이 JSON에서 plist로 변환해야 합니다:

...
<key>enforcedRuleSet</key>
<dict>
<key>kind</key>
<string>RedirectList</string>
<key>bundleID</key>
<string>io.github.mshibanami.RedirectWebForSafari</string>
<key>formatVersion</key>
<string>5</string>
<key>redirects</key>
<array>
<dict>
<key>kind</key>
<string>Redirect</string>
<key>type</key>
<string>originalRedirect</string>
<key>title</key>
<string>My enforced Rule</string>
<key>sourceURLPattern</key>
<dict>
<key>type</key>
<string>wildcard</string>
<key>value</key>
<string>https://example.com/1</string>
</dict>
<key>destinationURLPattern</key>
<string>https://google.com/search?q=1</string>
</dict>
</array>
</dict>
...

[Object] Fallback

키 이름유형설명
fallbackDataURLString (URL)규칙 세트가 포함된 JSON/XML 파일의 엔드포인트 URL입니다.
authTokenStringfallbackDataURL에서 가져올 때 HTTP 헤더에 추가되는 인증 토큰입니다. (이 토큰은 Authorization: Bearer [authToken]으로 사용됨).

규칙 평가 및 충돌 해결

  1. enforcedRuleSet이 제공되면 해당 규칙이 절대적인 우선순위로 적용됩니다.
  2. 일반 규칙은 없지만 prefilledRuleSet이 있는 경우, prefilledRuleSet이 일반 규칙으로 저장됩니다.
  3. MDM 규칙이 구성되어 있지 않고 일반 규칙도 없는 경우에만 기본 "예시 리디렉션 규칙"이 생성됩니다.

Fallback URL 동작

인라인 MDM 페이로드와 fallbackDataURL을 통해 가져온 데이터에 동일한 키가 모두 존재하는 경우, 앱은 다음과 같이 충돌을 처리합니다:

  • 가져오기 완료 전: 인라인 설정이 엄격하게 우선순위를 가지며 사용됩니다.
  • 가져오기 성공 후: fallbackDataURL에서 검색된 데이터가 해당 인라인 설정을 덮어씁니다.
  • 가져오기 실패 후: 앱은 인라인 설정을 계속 사용합니다.
  • 인라인 페이로드에만 존재하는 독립적인 키는 유지됩니다.

MDM 피드백 및 상태 확인

MDM 솔루션이 지원하는 경우 MDM 피드백 채널(com.apple.feedback.managed)을 통해 구성이 성공적으로 적용되었는지 확인할 수 있습니다. 구성을 처리(또는 URL 가져오기를 완료)한 후 앱은 다음 데이터를 반환합니다:

  • managedConfigVersion: 구성 시도의 버전 문자열.
  • result: success 또는 error.
  • messages: 해당하는 경우 세부 오류 또는 경고 메시지가 포함된 배열.