ENetrebin (обсуждение | вклад) (Новая страница: «Процесс автоинструментирования настраивает ваши приложения iOS для мониторинга с помощь...») |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
Процесс автоинструментирования настраивает ваши приложения iOS для мониторинга с помощью ЕдиныйАгент. Этот автоматизированный способ добавления ЕдиныйАгент в приложение без необходимости вручную изменять его исходный код. Автоинструментированное приложение эквивалентно приложению, которое было вручную инструментировано для сбора базовых данных. Такой уровень инструментирования предоставляет видимость реального пользовательского опыта, обеспечиваемого вашим приложением. Он также позволяет обнаруживать сбои и отслеживать производительность, связанную с запуском приложений и временем ответа на веб-запросы. | Процесс автоинструментирования настраивает ваши приложения iOS для мониторинга с помощью ЕдиныйАгент. Этот автоматизированный способ добавления ЕдиныйАгент в приложение без необходимости вручную изменять его исходный код. Автоинструментированное приложение эквивалентно приложению, которое было вручную инструментировано для сбора базовых данных. Такой уровень инструментирования предоставляет видимость реального пользовательского опыта, обеспечиваемого вашим приложением. Он также позволяет обнаруживать сбои и отслеживать производительность, связанную с запуском приложений и временем ответа на веб-запросы. | ||
= 1. Настройка Public Key Hash Pinning (PKH) pinning с помощью | = 1. Настройка Public Key Hash Pinning (PKH) pinning с помощью АппОптима = | ||
Вы можете использовать функцию Public Key Hash Pinning (PKH) для аутентификации. | Вы можете использовать функцию Public Key Hash Pinning (PKH) для аутентификации. | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 61: | Строка 61: | ||
Если у вас нет дистрибутива ЕдиныйАгент, вы можете скачать его в настройках мобильного приложения. | Если у вас нет дистрибутива ЕдиныйАгент, вы можете скачать его в настройках мобильного приложения. | ||
# В меню | # В меню АппОптима выберите '''Mobile''' . | ||
# Выберите мобильное приложение, которое вы хотите настроить. | # Выберите мобильное приложение, которое вы хотите настроить. | ||
# Выберите '''More (…) > Edit''' в правом верхнем углу плитки с названием вашего приложения. | # Выберите '''More (…) > Edit''' в правом верхнем углу плитки с названием вашего приложения. | ||
Строка 70: | Строка 70: | ||
= 2. Используйте настраиваемые заголовки HTTP = | = 2. Используйте настраиваемые заголовки HTTP = | ||
Если HTTP-запросы ЕдиныйАгент не соответствуют требованиям безопасности вашей серверной инфраструктуры, вы можете изменить заголовки HTTP ЕдиныйАгент с помощью ''' | Если HTTP-запросы ЕдиныйАгент не соответствуют требованиям безопасности вашей серверной инфраструктуры, вы можете изменить заголовки HTTP ЕдиныйАгент с помощью '''АппОптима.setBeaconHeaders([String : String]?)'''. Эта функция позволяет добавлять заголовок '''Authorization''' в HTTP-запросы и немедленно переподключаться к Cluster ActiveGate, когда срок действия токена истек. Чтобы удалить старые заголовки, вызовите '''АппОптима.setBeaconHeaders(nil)'''. | ||
АппОптима.setBeaconHeaders(["Cookie" : "n1=v1; n2=v2", "MyHeader" : "MyHeader", "Authorization" : "API-Token aa11bb22cc33dd44ee55"]) ''//set headers onto beacon'' | |||
let headers: Dictionary<String, String>? = | let headers: Dictionary<String, String>? = АппОптима.beaconHeaders() ''//request the headers that have been set'' | ||
''//listen for communication problems (for example, if beacon header contains a token that can expire required to pass a firewall)'' | ''//listen for communication problems (for example, if beacon header contains a token that can expire required to pass a firewall)'' | ||
NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: | NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: АппОптима.getCommunicationProblemNotificationName()), object: nil, queue: nil) { _ in | ||
''//for example, update beacon header with new token'' | ''//for example, update beacon header with new token'' | ||
} | } |
Текущая версия от 14:12, 26 декабря 2024
Процесс автоинструментирования настраивает ваши приложения iOS для мониторинга с помощью ЕдиныйАгент. Этот автоматизированный способ добавления ЕдиныйАгент в приложение без необходимости вручную изменять его исходный код. Автоинструментированное приложение эквивалентно приложению, которое было вручную инструментировано для сбора базовых данных. Такой уровень инструментирования предоставляет видимость реального пользовательского опыта, обеспечиваемого вашим приложением. Он также позволяет обнаруживать сбои и отслеживать производительность, связанную с запуском приложений и временем ответа на веб-запросы.
1. Настройка Public Key Hash Pinning (PKH) pinning с помощью АппОптима
Вы можете использовать функцию Public Key Hash Pinning (PKH) для аутентификации.
❗ Важно
Public key pinning сопряжено с риском и может вызвать проблемы, если его настроить неправильно. Если вы допустили ошибку, ваше приложение может закрепить набор ключей, которые подтверждают аутентификацию сегодня, но перестанут работать в какой-то момент в будущем. В таком случае ваше приложение больше не сможет подключаться к серверу и, скорее всего, перестанет работать, пока не будет обновлено новым набором ключей. |
- Перейдите в дистрибутив ЕдиныйАгент, откройте папку Certificate Pinning и запустите скрипт getPKHashFromCertificate.py для генерации хэшей из ваших сертификатов.
python getPKHashFromCertificate.py <path to your cert>.<der|pem> --type <DER | PEM>
Вывод должен выглядеть так:
CERTIFICATE INFO
----------------
subject= *****
issuer= *****
SHA1 Fingerprint= ******
---------------------- DTXDomainPins item ----------------------
DTXPKHash: SomePublicKeyHash=
DTXPKHashAlgoritm: DTXAlgorithmRsa2048
- В вашем файле Info.plist используйте вывод скрипта в качестве массива в ключе DTXPublicKeyPins.
<key>DTXPublicKeyPins</key>
<array>
<dict>
<key>DTXPKHash</key>
<string>SomePublicKeyHash=</string>
<key>DTXPKHashAlgoritm</key>
<string>DTXAlgorithmRsa2048</string>
</dict>
<dict>...script output 2...</dict>
<dict>...script output 3...</dict>
</array>
❗ Важно
Если у вас нет дистрибутива ЕдиныйАгент, вы можете скачать его в настройках мобильного приложения.
|
2. Используйте настраиваемые заголовки HTTP
Если HTTP-запросы ЕдиныйАгент не соответствуют требованиям безопасности вашей серверной инфраструктуры, вы можете изменить заголовки HTTP ЕдиныйАгент с помощью АппОптима.setBeaconHeaders([String : String]?). Эта функция позволяет добавлять заголовок Authorization в HTTP-запросы и немедленно переподключаться к Cluster ActiveGate, когда срок действия токена истек. Чтобы удалить старые заголовки, вызовите АппОптима.setBeaconHeaders(nil).
АппОптима.setBeaconHeaders(["Cookie" : "n1=v1; n2=v2", "MyHeader" : "MyHeader", "Authorization" : "API-Token aa11bb22cc33dd44ee55"]) //set headers onto beacon
let headers: Dictionary<String, String>? = АппОптима.beaconHeaders() //request the headers that have been set
//listen for communication problems (for example, if beacon header contains a token that can expire required to pass a firewall)
NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: АппОптима.getCommunicationProblemNotificationName()), object: nil, queue: nil) { _ in
//for example, update beacon header with new token
}