모바일 앱 FAQ#

모바일 앱을 사용하여 여러 Mattermost 서버에 연결할 수 있나요?#

네, Mattermost 모바일 앱 v2.0을 사용하면 가능합니다. 모바일 v1.x는 한 번에 하나의 서버 연결만 지원합니다.

어떤 데이터가 저장되나요?#

기기에서 찾을 수 있는 데이터는 사용자가 Mattermost 서버에 로그인했는지 여부에만 의존하며, 기기의 연결 상태나 앱의 상태와는 무관합니다. 로그인 상태에서는 사용자가 일반적으로 볼 수 있는 모든 것이 기기에 저장될 수 있으며, 여기에는 다음 내용이 포함됩니다:

  • 메시지

  • 메시지에 첨부된 파일 및 이미지

  • 현재 열려있는 채널에 있는 사람들의 프로필 사진, 사용자 이름 및 이메일 주소

또한 앱이 작업을 추적하는 데 사용하는 메타데이터도 캐시됩니다. 메타데이터에는 사용자 ID, 채널 ID, 팀 ID 및 메시지 ID가 포함됩니다.

현재 연결된 모바일 기기에서 캐시를 원격으로 재설정할 수 없습니다.

푸시 알림은 어떻게 되나요?#

푸시 알림 저장소는 기기의 운영 체제에서 관리합니다. Mattermost는 메시지 텍스트나 채널 이름을 포함하지 않는 제한된 양의 정보를 보내도록 구성할 수 있으며, 푸시 알림을 전혀 보내지 않도록 구성할 수도 있습니다.

데이터는 어디에 저장되며 어떻게 보호되나요?#

데이터는 앱의 로컬 저장소에 저장됩니다. 기기에 설치된 앱에 대해 기기가 일반적으로 제공하는 보안 조치로 보호됩니다.

데이터는 얼마나 오래 저장되나요?#

데이터는 사용자가 로그아웃할 때까지 또는 일반 캐시 관리 중에 삭제될 때까지 저장됩니다. 사용자 계정을 비활성화하면 로그아웃이 강제되고 기기에서 데이터가 삭제됩니다.

사용자 계정이 비활성화된 후 데이터는 어떻게 처리되나요?#

사용자가 앱에서 로그아웃하면 앱 데이터가 기기에서 삭제됩니다. 계정이 비활성화될 때 사용자가 로그인되어 있다면, 비활성화 후 1분 이내에 시스템이 사용자를 로그아웃시킵니다. 그 후 모든 앱 데이터가 기기에서 삭제됩니다.

서버에서 파일 첨부가 활성화되어 있다면, 사용자는 메시지에 첨부된 파일을 다운로드하여 로컬 파일 시스템에 저장할 수 있습니다. 다운로드 후에는 파일이 앱의 제어 범위를 벗어나며 기기에 무기한 남아있을 수 있습니다.

메시지가 미리 로드되나요?#

아니요. 메시지는 요청 시 기기로 전송됩니다. 사용자가 위로 스크롤하거나 채널을 전환할 것을 예상하여 미리 로드되지 않습니다.

자체 푸시 알림 서버를 호스팅하려면 모바일 앱을 컴파일해야 하나요?#

네. 자체 푸시 알림 서버를 호스팅하려면 모바일 앱을 컴파일해야 합니다. 자체 모바일 앱을 컴파일하는 방법은 문서 를 참조하세요.

푸시 알림은 어떻게 작동하나요?#

Mattermost 서버는 푸시 알림을 호스팅된 푸시 프록시 서버로 전송하며, 이 서버는 Apple과 Google이 제공하는 모바일 푸시 알림 서비스를 통해 알림을 전달합니다.

푸시 알림이 신뢰할 수 있는 소스에서 오는지 확인하기 위해, Apple과 Google은 모바일 앱 자체에 컴파일된 비밀에 해당하는 키나 서명을 사용하는 서비스에서 보낸 푸시 알림만 허용합니다.

전체 프로세스는 다음과 같습니다:

  1. 개인 네트워크에서 실행 중인 Mattermost 서버에서 푸시 알림을 트리거하는 작업이 감지됩니다.

  2. Mattermost 서버는 푸시 알림 메시지를 Mattermost Push Notification Service(MPNS)로 전송합니다. 이 서비스는 개인 네트워크에서 자체 호스팅되거나 Mattermost, Inc.에서 공개적으로 호스팅됩니다.

  3. MPNS는 TLS 연결을 통해 Apple Push Notification Service(APNS) 또는 Google의 Firebase Cloud Messaging(FCM) 서비스로 푸시 알림 메시지를 전송합니다.

  • Apple로 전송되는 경우, 메시지는 iOS 앱에 컴파일된 비밀에 해당하는 서명을 가집니다.

  • Google로 전송되는 경우, 메시지는 Android 앱에 컴파일된 비밀에 해당하는 키를 사용합니다.

iOS 또는 Android를 사용하는지 여부에 관계없이, MPNS는 모바일 앱에 컴파일된 적절한 비밀에 접근할 수 있어야 합니다.

이는 Apple App Store나 Google Play에서 Mattermost 앱을 사용하는 경우 Mattermost, Inc.의 호스팅된 푸시 알림 서비스를 사용해야 함을 의미합니다. 앱을 직접 컴파일하는 경우 해당 비밀과 함께 자체 MPNS를 컴파일하고 사용해야 합니다.

  1. APNS 또는 FCM은 TLS를 통해 MPNS로부터 푸시 알림 메시지를 수신한 다음, 메시지를 사용자의 iOS 또는 Android 기기로 전달하여 표시합니다.

참고

iOS 및 Android 애플리케이션에서 푸시 알림을 사용하면 Apple이나 Google이 제어하는 서버에서 푸시 알림 내용이 암호화되지 않은 상태로 표시되는 순간이 필요합니다. 이는 모든 iOS 또는 Android 앱의 표준입니다. 이러한 이유로 Mattermost Enterprise에서는 푸시 알림에서 Mattermost 메시지 내용을 생략하거나 알림이 기기에 도달할 때 서버에서 메시지 내용을 가져오도록 구성하는 옵션을 제공합니다. 자세한 내용은 Configuration Settings 문서를 참조하세요.

TLS v1.3이 지원되나요?#

네. Mattermost 모바일 앱 v2.0은 웹소켓 연결에 TLS v1.2와 TLS v1.3을 모두 지원합니다.

모바일 푸시 알림에는 어떤 게시물 메타데이터가 전송되나요?#

다음 게시물 메타데이터가 모든 푸시 알림에 전송됩니다:

  • Team ID

  • Channel ID

  • Post ID

  • User ID (게시물 작성자)

  • Username (게시물 작성자 또는 webhook 재정의 사용자 이름)

  • Root ID (게시물이 스레드에 있는 경우에만)

  • Type (푸시 알림 생성 또는 지우기)

  • Category (iOS 전용, 알림에 답장할 수 있는지 여부 결정)

  • Badge number (알림을 받았을 때 앱 아이콘의 알림 배지에 설정해야 하는 값)

Push Notification Contents 에 대한 System Console 설정에 따라 추가 메타데이터가 전송될 수 있습니다:

  • 보낸 사람과 채널 이름이 포함된 일반 설명: Channel name 메타데이터가 포함됩니다.

  • 알림 페이로드에 전송된 전체 메시지 내용: Post contentChannel name 메타데이터가 포함됩니다.

  • 수신 시 서버에서 가져온 전체 메시지 내용 (Mattermost Enterprise에서 사용 가능): 알림 페이로드에는 Post contentChannel name 이 포함되지 않고, 대신 기기에서 푸시 알림을 받은 후 Post ID 를 사용하여 서버에서 Post contentChannel name 을 가져옵니다.

ID 전용 푸시 알림을 사용하여 알림 내용이 타사 서비스에 노출되는 것을 어떻게 방지할 수 있나요?#

모바일 데이터 개인정보 보호와 관련하여, 많은 조직에서는 특히 핵심 업무나 독점 정보를 포함할 수 있는 메시징 데이터의 안전한 처리를 우선시합니다. 이러한 조직들은 데이터가 기기에 도달하기 전에 Apple Push Notification Service(APNS)나 Google Firebase Cloud Messaging(FCM)과 같은 타사 기관을 통과해야 하기 때문에 모바일 알림 사용에 우려를 가질 수 있습니다.

이는 엄격한 규정 준수 요구사항 하에서 운영되며 메시지 데이터를 외부 기관에 노출할 수 없는 조직에 잠재적인 위험을 초래합니다. 이를 해결하기 위해 Mattermost Enterprise에서 사용 가능한 전체 메시지 데이터 대신 알림 페이로드에 고유한 메시지 ID만 전송하여 Mattermost 푸시 알림 메시지 데이터에 대한 더 나은 보호 옵션을 제공합니다. 기기가 ID를 받으면 서버에서 직접 메시지 내용을 가져와 평소와 같이 알림을 표시합니다.

APNS와 FCM과 같은 외부 기관은 ID만 처리하며 메시지 자체의 어떤 부분도 읽을 수 없습니다. 조직에 엄격한 개인정보 보호나 규정 준수 요구사항이 있는 경우, ID 전용 푸시 알림 설정은 팀원들이 모바일 푸시 알림의 이점을 계속 누릴 수 있으면서도 높은 수준의 개인정보 보호를 제공합니다.

ID 전용 설정을 사용할 때 푸시 알림 서비스로 전송되는 json의 예시는 다음과 같습니다:

{
    "ack_id": "nnfbqk5bnffe5karxuzs8o5rec",
    "platform": "apple_rn",
    "server_id": "aoej8izzfffr9e67d6uz3g387h",
    "device_id": "32f198dbdd7427be7e6f03ba721ffdceba58c3f0bfa9c4655a6e7cc8271ba539",
    "post_id": "77d9cs9aq3b1fpoepbdbmqfs4c",
    "category": "CAN_REPLY",
    "message": "You've received a new message.",
    "badge": 3,
    "channel_id": "et3ghiycm7g7bb41ihg85pqgah",
    "type": "message",
    "sender_id": "g774dzud4tgaxgphso4wm8xrxe",
    "version": "v2",
    "is_id_loaded": true
}

다음과 같은 정의가 적용됩니다:

  • ack_id: 알림마다 생성되는 임시 식별자로, 전송된 알림이 기기에서 수신되었는지 여부를 결정합니다(서버의 다른 모델에 대한 식별자를 생성하는 것과 동일한 방법 사용). 이 정보는 Mattermost 서버의 notifications.log 파일에서 확인할 수 있습니다. ack_id 는 전송된 알림이 수신되었는지 확인하기 위해 모바일 앱에서 Mattermost 서버로 영수증 전달에만 사용됩니다.

  • server_id: 서버에서 생성된 서버 식별자로, DiagnosticId 라고 합니다. 향후 이 값은 모바일 앱에서(다중 서버 지원을 위해) 알림이 속한 서버를 식별하는 데 사용됩니다.

  • device_id: 기기에서 알림을 받을 수 있도록 허용할 때 APNs와 FCM이 반환하는 토큰입니다. 사용자가 Mattermost에 로그인하면 Mattermost는 이 device_id 를 세션에 첨부하기 위해 전송합니다. 세션이 종료되면 세션 기록이 제거되기 때문에 device_id 는 더 이상 서버 데이터베이스에 존재하지 않습니다. 사용자가 다시 로그인하면 식별자가 기기에 특정되기 때문에 device_id 는 동일한 값으로 다시 등록됩니다. 이 값은 동일한 사람이 소유한 앱이나 기기 간에는 동일하지 않지만, 사용자가 동일한 기기의 동일한 앱에서 생성하는 각 세션에 대해 동일합니다.

  • version: 모바일 앱에 데이터가 어떻게 구조화되어 있는지 알려주어 올바르게 구문 분석할 수 있게 합니다. 현재 값은 v2 입니다.

  • is_id_loaded: (Mattermost Enterprise 전용) true인 경우, 해당 세부 정보가 페이로드의 일부가 아니기 때문에 모바일 앱은 서버에서 알림 내용을 찾습니다.

모바일 앱을 보호하기 위한 옵션은 무엇인가요?#

보안 모바일 앱 배포를 위한 다음 옵션을 사용할 수 있습니다:

  1. 모바일 앱에 대한 네트워크 연결 보안

  • 전송을 암호화하기 위해 HTTPS 및 WSS 네트워크 연결을 사용합니다.

  • 개인 네트워크 내에서 Mattermost 서버에 대한 보안 연결을 설정하기 위해 모바일 기기에서 모바일 VPN 클라이언트를 사용합니다.

  1. 다중 인증 옵션 사용

  • 다중 인증이 있는 VPN 클라이언트를 사용하지 않는 경우, Mattermost 자체 내에서 또는 SSO 제공업체를 통해 Mattermost에 인증할 때 MFA가 필요하도록 하는 것을 강력히 권장합니다.

푸시 알림을 보호하기 위한 옵션은 무엇인가요?#

푸시 알림 서비스를 보호하기 위해 다음 옵션을 사용할 수 있습니다:

  1. 알림 내용 보호

  1. 푸시 알림 비활성화

  • 보안 요구사항에 따라 푸시 알림을 완전히 비활성화할 수도 있습니다. 기본 서버 설정에서는 푸시 알림이 비활성화되어 있습니다.

  1. 직접 컴파일하는 앱의 연결 암호화:

  • 개인 호스팅 Mattermost 푸시 알림 서비스(MPNS)를 사용할 때 다음 간에 암호화된 TLS 연결을 사용합니다:

    • MNPS와 Apple 푸시 알림 서비스(APNS)

    • MPNS와 Google의 Firebase Cloud Messaging(FCM)

    • MPNS와 Mattermost 서버

  1. Mattermost Apple App Store 및 Google Play 앱 보안:

  • App Store와 Google Play에서 Mattermost 모바일 앱을 사용할 때 Mattermost의 호스팅 푸시 알림 서비스(HPNS) 를 사용하려면 Mattermost Enterprise 또는 Professional의 연간 구독을 구매하세요.

참고

구성 세부 정보는 Mattermost 모바일 앱 배포앱의 자체 버전 배포 가이드를 참조하세요.

푸시 알림 수신이 지연되는 이유는 무엇인가요?#

Apple Push Notification Service (APNS)Google Fire Cloud Messaging (FCM) 가 기기가 Mattermost의 푸시 알림을 수신하는 시점을 결정합니다. 따라서 지연은 일반적으로 이러한 서비스의 결과입니다.

기기가 푸시 알림을 수신하는 기술적 흐름은 다음과 같습니다:

  1. 사용자가 Mattermost에 메시지를 게시합니다.

  2. Mattermost 서버가 알림을 보낼 필요가 있는지 식별합니다.

  3. 필요한 경우 Mattermost 서버는 푸시 알림을 포함한 페이로드를 푸시 프록시로 전송합니다.

  4. 푸시 프록시는 알림을 구문 분석하여 APNS와 FCM으로 전달합니다.

  5. APNS와 FCM은 관련 기기에 Mattermost용 푸시 알림이 있음을 알립니다. 이는 일반적으로 거의 즉시 발생하지만 몇 분 정도 지연될 수 있습니다.

  6. Mattermost는 알림을 처리하여 사용자의 기기에 표시합니다.

Enterprise Mobility Management(EMM) 제공업체와 함께 Mattermost를 어떻게 배포하나요?#

Mattermost는 높은 개인정보 보호 및 맞춤형 보안 요구사항이 있는 고객이 자신만이 제어하는 키를 사용하여 모바일 앱과 푸시 알림 서비스를 배포할 수 있도록 합니다.

EMM 제공업체를 위한 AppConfig 사용에 대해 자세히 알아보기.

Mattermost 푸시 알림 서비스를 어떻게 호스팅하나요?#

먼저 Mattermost 호스팅 푸시 알림 서비스(HPNS) 를 사용할 수 있습니다. 조직은 대신 자체 푸시 프록시 서버를 호스팅 할 수도 있습니다. 이는 다음과 같은 경우에 적용됩니다:

  1. Mattermost 모바일 앱을 사용자 정의하는 경우;

  2. 자체 푸시 알림 서비스를 배포하는 경우, 또는

  3. BlueCedar 또는 AppDome으로 모바일 앱을 다시 패키징하는 경우(둘 다 공식적으로 지원되지 않지만 일부 조직에서 성공적으로 배포됨).

앱을 화이트 라벨링하고 빌드 설정을 사용자 정의하는 방법은 무엇인가요?#

/assets/base 폴더의 모든 파일은 앱의 업스트림 버전에 대한 변경사항과 충돌하지 않고 필요에 따라 재정의할 수 있습니다. 이를 위해:

  1. /assets/override 폴더를 생성합니다.

  2. /assets/base 에서 대체하고 싶은 파일이나 폴더를 /assets/override 로 복사합니다.

  3. /assets/override 의 파일을 원하는 대로 변경합니다.

앱을 컴파일하거나 make dist/assets 를 실행하면 두 폴더의 내용이 /assets/override 의 파일과 병합되며, 충돌이 있는 경우 우선순위를 가집니다. 이미지와 같은 바이너리 파일의 경우 재정의된 파일이 기본 버전을 완전히 대체하지만, JSON 파일은 병합되어 재정의된 복사본에서 설정되지 않은 필드는 기본 버전을 사용합니다.

이 기능을 사용하는 방법에 대한 더 구체적인 예는 다음 섹션을 참조하세요.

사용자를 위한 서버 URL을 미리 구성하는 방법은 무엇인가요?#

기본 config.json 설정을 재정의하고 모바일 앱을 직접 빌드하여 서버 URL과 기타 설정을 미리 구성할 수 있습니다.

  1. mattermost-mobile 저장소 를 포크합니다.

  2. 포크한 mattermost-mobile 저장소에 /assets/override/config.json 파일을 생성합니다.

  3. 재정의하려는 설정을 assets/base/config.json 에서 새로 생성된 /assets/override/config.json 파일로 복사하여 붙여넣습니다.

  4. 서버 URL을 재정의하려면 /assets/override/config.json 에서 DefaultServerURL 을 Mattermost 서버의 서버 URL로 설정합니다.

  5. (선택사항) 사용자가 서버 URL을 변경하지 못하게 하려면 AutoSelectServerUrltrue 로 설정합니다.

  6. (선택사항) 원하는 다른 설정을 재정의합니다.

위 작업 후 /assets/override/config.json 파일은 다음과 같이 보일 것입니다:

{
    "DefaultServerURL": "my-mattermost-instance.example.com",
    "AutoSelectServerUrl": true,
    "ExperimentalUsernamePressIsMention": true
}
  1. 마지막으로 Mattermost 모바일 앱과 Mattermost 푸시 프록시 서버의 자체 버전을 컴파일 합니다.

Mattermost 모바일 앱에서 Google SSO를 작동시키는 방법은 무엇인가요?#

Apple App Store와 Google Play Store의 앱은 기본적으로 Google SSO를 지원할 수 없습니다. 이는 Google이 각 조직에 특화된 고유한 Google API 키를 요구하기 때문입니다.

Google SSO 지원이 필요한 경우 조직을 위한 맞춤형 앱 버전을 만들 수 있습니다. mattermost-mobile 저장소를 포크하고 앱을 직접 컴파일하기 전에 Google SSO 지원을 추가하세요. 관심이 있다면 GitHub에 이슈를 등록 하여 논의를 시작하세요.

딥 링크를 구성하는 방법은 무엇인가요?#

앱은 설치 시 플랫폼별 구성을 확인합니다. 구성이 발견되지 않으면 딥 링크 코드는 조용히 대기하고 영구 링크는 일반 링크로 작동합니다.

iOS 설정

  1. 서버 루트의 .well-known 디렉토리에 apple-app-site-association 파일을 생성합니다. https://<your-site-name>/.well-known/apple-app-site-association 으로 이동하여 접근할 수 있어야 합니다. 파일 확장자는 없어야 합니다.

  2. 딥 링크를 처리하기 위해 다음 JSONapple-app-site-association 파일에 붙여넣으세요. appID 속성에 앱 ID를 넣어야 합니다.

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "<your-app-id-here>",
                "paths": ["**/pl/*", "**/channels/*"]
            }
        ]
    }
}
  1. Apple 개발자 포털을 통해 앱에 연관된 도메인 권한을 추가하세요.

  2. Xcode entitlements 관리자를 통해 앱이 지원하는 도메인을 지정하는 권한을 추가하세요.

  3. 새로운 권한으로 앱을 설치하기 전에 https://<your-site-name>/.well-known/apple-app-site-association 으로 이동하여 브라우저를 통해 apple-app-site-association 파일의 내용을 볼 수 있는지 확인하세요. 앱은 설치 시 이 파일을 확인하고, 발견되면 외부 영구 링크가 앱을 열 수 있도록 허용합니다.

iOS에서 딥 링크 구성에 대한 공식 문서는 여기 에서 찾을 수 있습니다.

Android 설정

Android에서 딥 링크 구성은 Android Studio의 App Links Assistant를 참조하세요. Android 딥 링크

내부 및 외부 네트워크에서 사용자를 어떻게 연결하나요?#

전역 네트워크 트래픽 관리를 설정하면 모바일 앱으로 연결할 때 사용자를 내부 또는 외부 네트워크로 보낼 수 있습니다. 또한 다음과 같이 내부 및 외부 트래픽에 대해 두 개의 별도 제한 계층을 가질 수 있습니다:

  • 내부 네트워크에서는 기기별 VPN을 통해 개인 네트워크에 배포합니다.

  • 외부 네트워크에서는 NGINX 프록시와 함께 TLS 상호 인증 을 사용하고, 데스크톱과 iOS용 클라이언트 측 인증서 를 사용하여 배포합니다.

Microsoft Azure와 같은 많은 서비스가 네트워크 트래픽 관리 옵션을 제공하거나, 서비스 파트너를 통해 지원을 받을 수 있습니다.

IT 정책에서 기업용 프록시 서버 사용을 요구하는 경우 모바일 푸시 알림을 어떻게 받나요?#

IT 정책에서 모든 아웃바운드 트래픽을 스캔하고 감사하기 위해 기업용 프록시를 요구하는 경우 다음과 같은 옵션을 사용할 수 있습니다:

프리프록시 릴레이를 사용하여 프록시 인식 구성으로 Mattermost 배포#

Mattermost 푸시 알림 서비스는 트래픽을 Apple Push Notification Service (APNS)Google Fire Cloud Messaging (FCM) 서비스로 직접 전송하도록 설계되었습니다.

프록시 인식 구성에서 프리프록시 릴레이는 Mattermost Push Proxy 에서 메시지를 수신하고 내부 IT 요구사항을 적용하는 기업용 프록시로 전달한 후 최종 목적지로 전송합니다.

아래 샘플 아키텍처 개요를 참조하세요:

Mattermost 푸시 알림 서비스는 트래픽을 Apple Push Notification Service (APNS)와 Google Fire Cloud Messaging (FCM) 서비스로 직접 전송하도록 설계되었습니다. 그러나 조직에서 모든 아웃바운드 트래픽을 스캔하고 감사하기 위해 기업용 프록시를 요구하는 경우, 프리프록시 릴레이를 사용하여 프록시 인식 구성으로 Mattermost를 배포할 수 있습니다. 릴레이는 Mattermost Push Proxy에서 메시지를 수신하고 내부 IT 요구사항을 적용하는 기업용 프록시로 전달한 후 모바일 기기로 알림을 전달합니다. 이 구성에는 신뢰할 수 있는 루트 인증서가 필요합니다.

이를 통해 프리프록시 릴레이 가 APNS 역할을 하고 기업용 프록시를 통해 요청을 최종 목적지로 전달할 수 있으며, APNS 트래픽이 프록시 인식일 필요가 없습니다. APNS 트래픽은 /etc/hosts 항목을 통해 프리프록시 릴레이로 리디렉션됩니다. 이 항목은 Mattermost Push Proxy가 프리프록시 릴레이를 신뢰할 수 있도록 인증서에 서명하는 신뢰할 수 있는 CA를 사용합니다. 자세한 내용은 Apple Developer 문서의 user notifications 를 참조하세요.

Google의 FCM traffic 는 환경 변수를 통해 프록시 인식이므로 추가 작업이 필요하지 않습니다.

또한 APNS 트래픽은 HTTP/2가 필요하므로 기업용 프록시 서버는 Apple 기기로 푸시 알림을 전송하기 위해 HTTP/2 요청을 지원해야 합니다. 프리프록시 릴레이도 HTTP/2를 지원해야 합니다.

DMZ 또는 신뢰할 수 있는 클라우드 환경에서 연결이 제한된 포스트프록시 릴레이로 Mattermost 배포#

일부 레거시 기업용 프록시 구성은 iOS 기기로 푸시 알림을 전송하기 위한 Apple의 HTTP/2 요청 요구사항과 같은 현대 모바일 아키텍처의 요구사항과 호환되지 않을 수 있습니다.

이 경우 포스트프록시 릴레이를 배포하여 호환되지 않는 형식(예: HTTP/1.1)으로 기업 IT 프록시를 통과하는 Mattermost 서버의 메시지를 수신하고, 이를 HTTP/2로 변환한 후 Apple Push Notification Service (APNS) 또는 Google Fire Cloud Messaging (FCM) 서비스로 최종 목적지에 릴레이할 수 있습니다.

포스트프록시 릴레이Mattermost Push Proxy 설치 가이드 를 사용하여 연결 제한을 통해 사용자 정의 보안 및 컴플라이언스 요구사항을 충족하도록 구성할 수 있습니다.

DMZ 대신 내부 승인 및 정책에 따라 AWS 또는 Azure와 같은 신뢰할 수 있는 클라우드 환경에서 호스팅할 수도 있습니다.

Mattermost 푸시 알림 서비스는 트래픽을 Apple Push Notification Service (APNS)와 Google Fire Cloud Messaging (FCM) 서비스로 직접 전송하도록 설계되었습니다. 그러나 조직에서 모바일 기기로 푸시 알림을 전송하기 위한 HTTP/2 요청을 지원하지 않는 경우, 포스트프록시 릴레이를 배포하여 Mattermost 서버의 메시지를 수신하고 호환되지 않는 형식에서 변환한 후 최종 목적지로 릴레이할 수 있습니다. 포스트프록시 릴레이는 연결 제한을 사용하여 사용자 정의 보안 및 컴플라이언스 요구사항을 충족하도록 구성할 수 있습니다.

기업용 프록시 서버를 우회하기 위해 Mattermost 푸시 알림 프록시 허용 목록에 추가#

내부 IT 정책과 승인된 면제/예외에 따라 Mattermost Push Proxy 를 배포하여 기업용 프록시 없이 Apple Push Notification Service (APNS) 에 직접 연결할 수 있습니다.

이 옵션을 위해 Apple의 하나의 서브도메인과 하나의 포트를 허용 목록에 추가 해야 합니다:

  • 개발 서버: api.development.push.apple.com:443

  • 프로덕션 서버: api.push.apple.com:443

Mattermost 모바일 앱의 App Store 버전 실행#

Apple App Store 또는 Google Play Store 에서 Mattermost가 호스팅하는 모바일 애플리케이션을 사용하고 기업용 프록시를 통해 Mattermost Hosted Push Notification Service (HPNS) 에 연결할 수 있습니다.

참고

Mattermost의 호스팅 애플리케이션은 AppConfig를 통해 Enterprise Mobility Management 솔루션으로 배포 할 수 있지만 래핑은 지원되지 않습니다. 자세한 내용은 제품 문서 를 참조하세요.

deviceId 의 동작 방식#

deviceId 는 Apple Push Notification service (APNs)와 Firebase Cloud Messaging (FCM)과 같은 푸시 알림 서비스에서 제공하는 식별자로, 기기, 앱, 알림 서비스 간의 관계를 식별합니다.

앱이 시작될 때 푸시 알림 권한이 활성화되어 있으면, 앱은 deviceId 를 얻기 위해 해당 알림 서비스(iOS의 경우 APNs, Android의 경우 FCM)에 연결을 시도합니다. deviceId 에 변경 사항이 있으면 앱은 연결된 모든 서버에 이 변경 사항을 알립니다.

Apple Developer Documentation on registering apps with APNSGoogle Documentation on FCM 에 따르면, deviceId 는 다음과 같은 경우에만 변경됩니다:

  • 앱이 다른 기기의 백업에서 복원된 경우

  • 사용자가 앱 데이터를 지운 경우

  • 사용자가 앱을 재설치한 경우

  • 사용자가 다른 기기에 앱을 설치한 경우

기기에 deviceId 가 있는 경우, 사용자가 Mattermost 서버에 로그인하면 감사 로그 항목 logindeviceId 가 저장되고, 데이터베이스의 세션 데이터에도 deviceId 가 추가됩니다. 그러나 다음과 같은 여러 가지 이유로 deviceId 를 사용할 수 없을 수 있습니다:

  • 기기가 네트워크에 연결되어 있지 않은 경우

  • 어떤 이유로든 알림 서비스에 접근할 수 없는 경우

  • 앱이 올바르게 서명되지 않은 경우

  • 기기에 필요한 권한이 부여되지 않은 경우

이러한 시나리오에서는 login 감사 로그에 deviceId 가 없고, 세션 데이터에도 deviceId 가 없습니다. 앱이 나중에 deviceId 를 수신하면 기기는 새로운 deviceId 를 서버로 전송하여 attachDeviceId 감사 로그를 생성하고, 데이터베이스의 세션 데이터에 deviceId 를 추가합니다.

deviceId 는 애플리케이션과 관련이 있으므로, 모바일에서도 웹 브라우저를 통한 연결에는 deviceID 가 없습니다.

모바일 메시지 알림 로그는 어디에서 찾을 수 있나요?#

알림 메시지는 notifications.log 파일에 기록됩니다. 시스템 관리자는 config.json 파일에서 EnableFiletrue 로 설정하고 FileLocation 을 통해 선택적 파일 위치를 지정하여 알림 로그를 활성화해야 합니다. 위치가 구성되지 않은 경우 notifications.log 파일은 기본 Mattermost 디렉토리에 저장됩니다. 자세한 내용은 로깅 구성 설정 문서를 참조하세요.

팀원/사용자는 기기 플랫폼에 따라 알림 로그에 접근할 수 있습니다. Android 사용자는 logcat 을 사용하여 로그를 볼 수 있습니다. iOS 사용자는 MacOS의 console app 에서 로그에 접근할 수 있습니다.

모바일 앱 로그는 어떻게 수집하나요?#

자세한 내용은 Mattermost 지원 지식 베이스 문서 모바일 앱 로그 수집 을 참조하세요.