ArcGIS Server использует систему контроля доступа на основе токенов. После того как пользователи аутентифицируются, клиентскому приложению выдается токен доступа. Когда пользователю необходимо получить доступ к защищенным службам или выполнить административные задачи, клиентское приложение отправляет маркер доступа и ArcGIS Server определяет, предоставлять ли доступ к этой службе или административной задаче на основе разрешений этой службы или привилегий этого пользователя.
Свойства токена
В следующих разделах обсуждаются важные свойства токенов ArcGIS.
Срок службы токена
Чтобы обеспечить безопасность токена, у каждого токена ограничен срок действия. Если использовать токен с истекшим сроком, конечный пользователь получит сообщение об истечении срока или другое сообщение об ошибке.
Токены с более коротким периодом действия являются более безопасными поскольку, если такой токен будет перехвачен злоумышленником, тот не сможет долго им пользоваться. Однако более короткий срок действия токена означает, что новые токены придется запрашивать чаще.
Срок жизни выданных токенов определяют два параметра:
- Срок действия краткосрочных токенов — когда клиент запрашивает токен, но не указывает срок его действия, будет выдан краткосрочный токен. Выданный токен можно может использоваться только в течение времени, указанного в этом свойстве. Если клиент запрашивает токен со сроком действия, истекающим до окончания срока службы краткосрочного токена, будет выдан токен с запрашиваемым сроком действия.
- Срок действия долгосрочных токенов — когда клиент запрашивает код с определенным сроком действия, этот срок действия сравнивается с периодом, определенным этим свойством. Если запрошенный срок действия истекает раньше, чем срок службы долгосрочного токена, будет выдан токен с запрашиваемым сроком действия. Если запрошенное значение тайм-аута превышает срок службы долгосрочного токена, токен все равно будет выдан, но со сроком действия, соответствующим этому свойству.
Определение общего ключа
Токен в ArcGIS – это строка зашифрованной информации. Общий ключ – это криптографический ключ, используемый для генерирования этой зашифрованной строки. Чем сложнее общий ключ, тем труднее злоумышленнику взломать шифр и расшифровать общий ключ. Если пользователь может расшифровать общий ключ, скопировать алгоритм шифрования ArcGIS Server и получить список зарегистрированных пользователей, он сможет создать токены и получать доступ ко всем защищенным ресурсам ArcGIS Server.
Перед определением открытого ключа примите во внимание следующее:
- Общий ключ должен быть настроен на длину 16 символов (символы после 16-го не используются). Рекомендуется использовать для ключа случайную последовательность символов. Можно использовать любые символы, в том числе и не буквенно-цифровые.
- В качестве ключа нельзя использовать словарное слово или общепринятое значение, которое легко угадать. Поскольку ключ не нужно запоминать или использовать где-либо, сложная комбинация не вызовет проблем, как это бывает с паролями.
- Токены шифруются общим ключом с помощью улучшенного стандарта шифрования (Advanced Encryption Standard, AES), также известного как Rijndael. 16 символов в ключе представляют 128 бит, используемых для шифрования. Дополнительные сведения о шифровании и AES можно получить по ссылкам о безопасности или проконсультироваться с кем-нибудь в организации, кто хорошо разбирается в безопасности и шифровании.
- В хорошо защищенных средах рекомендуется периодически изменять общий ключ. Помните, что изменение открытого ключа может потребовать обновления ваших приложений для его использования. Все существующие внедренные токены перестанут работать после изменения открытого ключа.
Безопасная передача токенов
Чтобы предотвратить перехват и злоупотребление токенами, рекомендуется использовать безопасное подключение HTTPS. Использование HTTPS гарантирует, что имя пользователя и пароль, отправленные с клиентского компьютера, и токен, возвращаемый с ArcGIS Server, не будут перехвачены.
При построении пользовательских клиентский приложений ArcGIS, использующих запросы GET для доступа к веб-сервисам, защищенным с помощью аутентификации ArcGIS на основе токенов, рекомендуется отправлять токен в заголовке X-Esri-Authorization, вместо параметра запроса. Это не позволяет промежуточным звеньям сети, таким как прокси, шлюзы или балансировщики нагрузки, получать токен. В этом примере запроса HTTP GET токен отправляется в заголовке X-Esri-Authorization:GET https://arcgis.mydomain.com/arcgis/rest/services/SampleWorldCities/MapServer?f=pjson HTTP/1.1
Host: arcgis.mydomain.com
X-Esri-Authorization: Bearer xMTuPSYpAbj85TVfbZcVU7td8bMBlDKuSVkM3FAx7zO1MYD0zDam1VR3Cm-ZbFo-
Если ArcGIS Server использует аутентификацию ArcGIS Server, а не аутентификацию веб-уровня (IWA, HTTP BASIC, PKI, и т.д.), можно использовать стандартный заголовок авторизации HTTP вместо заголовка X-Esri-Authorization:GET https://arcgis.mydomain.com/arcgis/rest/services/SampleWorldCities/MapServer?f=pjson HTTP/1.1
Host: arcgis.mydomain.com
Authorization: Bearer xMTuPSYpAbj85TVfbZcVU7td8bMBlDKuSVkM3FAx7zO1MYD0zDam1VR3Cm-ZbFo-