Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Расширенная конфигурация ЕдиногоАгента для iOS: различия между версиями

Материал из Документация АппОптима
(Новая страница: «Процесс автоинструментирования настраивает ваши приложения 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''' .
# В меню АппОптима выберите '''Mobile''' .
# Выберите мобильное приложение, которое вы хотите настроить.
# Выберите мобильное приложение, которое вы хотите настроить.
# Выберите '''More (…) > Edit''' в правом верхнем углу плитки с названием вашего приложения.
# Выберите '''More (…) > Edit''' в правом верхнем углу плитки с названием вашего приложения.
Строка 70: Строка 70:


= 2. Используйте настраиваемые заголовки HTTP =
= 2. Используйте настраиваемые заголовки HTTP =
Если HTTP-запросы ЕдиныйАгент не соответствуют требованиям безопасности вашей серверной инфраструктуры, вы можете изменить заголовки HTTP ЕдиныйАгент с помощью '''Ключ-АСТРОМ.setBeaconHeaders([String : String]?)'''. Эта функция позволяет добавлять заголовок '''Authorization''' в HTTP-запросы и немедленно переподключаться к Cluster ActiveGate, когда срок действия токена истек. Чтобы удалить старые заголовки, вызовите '''Ключ-АСТРОМ.setBeaconHeaders(nil)'''.
Если 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''
АппОптима.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''
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: Ключ-АСТРОМ.getCommunicationProblemNotificationName()), object: nil, queue: nil) { _ in
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 сопряжено с риском и может вызвать проблемы, если его настроить неправильно. Если вы допустили ошибку, ваше приложение может закрепить набор ключей, которые подтверждают аутентификацию сегодня, но перестанут работать в какой-то момент в будущем. В таком случае ваше приложение больше не сможет подключаться к серверу и, скорее всего, перестанет работать, пока не будет обновлено новым набором ключей.

  1. Перейдите в дистрибутив ЕдиныйАгент, откройте папку 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


  1. В вашем файле 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>

Важно

Если у вас нет дистрибутива ЕдиныйАгент, вы можете скачать его в настройках мобильного приложения.

  1. В меню АппОптима выберите Mobile .
  2. Выберите мобильное приложение, которое вы хотите настроить.
  3. Выберите More (…) > Edit в правом верхнем углу плитки с названием вашего приложения.
  4. В настройках приложения перейдите к Instrumentation wizard.
  5. Выберите iOS и перейдите на вкладку Developer.
  6. Выберите Download ЕдиныйАгент.

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

}