Авторизация пользователей в базе через OpenID Connect (Microsoft Azure)

1. Catafot 31 25.10.21 13:31 Сейчас в теме
Добрый день.

Столкнулись с проблемой при попытке наладить авторизацию пользователей в 1С через Microsoft Azure (OpenID Connect)

Платформа 8.3.19.1264
Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.14.433)

Следуем инструкции https://its.1c.ru/db/metod8dev#content:5972:hdoc:epf

Раздел 3.

При попытке входа в базу через браузер или тонкий клиент доходит до авторизации. Авторизуемся в Azure. И после вылетает ошибка вот такого вида.

Не понятно что копать и где. Кто то встречался с подобной проблемой?

Скрытый текст
Прикрепленные файлы:
Найденные решения
5. Catafot 31 28.10.21 15:55 Сейчас в теме
В общем разобрался сам.

Все оказалось банально. В фаиле default.vrd

Вручную указал "scope": "openid email", а не "scope": "openid"
И все полетело. Пользователи сопоставились по email

В мануале для Microsoft Azure конечно стояло "scope": "openid"
А для Google "scope": "openid email".

Это конечно ввело в заблуждение.

Ну и конечно информативность ошибки просто нулевая.
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dctvghbdtn 25.10.21 19:37 Сейчас в теме
Если вы точно следовали инструкциям в этой статье, но настройку выполнить не получилось, просим написать нам на CorpTechSupport@1c.ru с подробным описанием проблемы, которая у вас возникла.

Я бы начал с имеющихся логов всех участвующих систем.

Вообще похоже на ошибку приложения.
3. malikov_pro 1328 26.10.21 00:26 Сейчас в теме
(2) Сам недавно отстраивал с локальным сервером, но отсутствие внятной информации по ошибкам вводило в ступор.
"Я бы начал с имеющихся логов всех участвующих систем." - ставил настройки прокси на уровне сервера и все запросы перехватывал через fiddler.
Если через тех журнал, то пример .xml можете подсказать?

(0) По flow, если прошли аутентификацию, то по идее получен JWT ключ, который должен быть проверен на валидность сервером 1С. В браузере смотреть в LocalStorage.
В полученном JWT ключе должен присутствовать ключ "upn", который соответствует имени пользователя.
4. Catafot 31 28.10.21 10:06 Сейчас в теме
В Fiddler следующая история на моменте когда падает с ошибкой.

Но что именно некорректно не понятно.




Запрос в CorpTechSupport@1c.ru написали. Подождем.
Прикрепленные файлы:
5. Catafot 31 28.10.21 15:55 Сейчас в теме
В общем разобрался сам.

Все оказалось банально. В фаиле default.vrd

Вручную указал "scope": "openid email", а не "scope": "openid"
И все полетело. Пользователи сопоставились по email

В мануале для Microsoft Azure конечно стояло "scope": "openid"
А для Google "scope": "openid email".

Это конечно ввело в заблуждение.

Ну и конечно информативность ошибки просто нулевая.
Прикрепленные файлы:
6. Catafot 31 28.10.21 16:34 Сейчас в теме
Однако интересно можно ли шагнуть еще чуть дальше.

Можно ли уже после стандартной авторизации в 1С, как то программно обработать те данные что пришли из провайдера?

Например получим "Группы доступа пользователя" и исходя из этого дадим ему то или иное право в 1С.
Или какие-то значения по умолчанию.
9. Catafot 31 09.11.21 15:09 Сейчас в теме
(6)Отвечу сам себе. Может пригодится.
Провайдер OpenID Connect для платформы 1С:Предприятие является только аутентификатором. Т.е. после аутентификации, контекст параметров payload ответа провайдера недоступен. Поэтому, получить программно ответ провайдера невозможно.

Как один из вариантов по программной установке прав, Вы можете использовать Microsoft Graph API для доступа к функциональности Active Directory в регламентном задании. Т.е. выполнять установку прав не при входе пользователя, а при выполнении служебных действий.
Пример использования запроса API:
user: getMemberGroups - Microsoft Graph v1.0 | Microsoft Docs
https://docs.microsoft.com/ru-ru/graph/api/user-getmembergroups?view=graph-rest-1.0&tabs=http
7. vmarkovsky 03.11.21 19:00 Сейчас в теме
Добавлю текст ошибки для упрощения поиска этой ветки: "exception":{"clsid":"bb72372d-4628-4b46-94c8-6d14e227866a"
8. vmarkovsky 03.11.21 19:14 Сейчас в теме
Мне не удалось настроить OpenID Connect (Microsoft Azure) с использованием "upn"
Вот тут нашел другие claims:
https://docs.microsoft.com/ru-ru/azure/active-directory/develop/active-directory-optional-claims
Идентификатор пользователя, который можно использовать с параметром username_hint. Не является долговременным идентификатором для пользователя и не должен использоваться для уникальной идентификации пользовательских сведений (например, в качестве ключа базы данных). Вместо этого используйте в качестве ключа базы данных идентификатор объекта пользователя (oid). Пользователи, которые входят с альтернативным идентификатором входа, не должны видеть своего имени участника-пользователя (UPN). Вместо этого используйте для показа состояния входа пользователю следующие утверждения идентификационного маркера: preferred_username или unique_name для маркеров версии 1 и preferred_username для маркеров версии 2.


С использованием preferred_username - работает.

Для этого, после регистрации приложения в «App registrations», необходимо:
1. в разделе Authentication отметить оба пункта:
Select the tokens you would like to be issued by the authorization endpoint:
* Access tokens (used for implicit flows)
* ID tokens (used for implicit and hybrid flows)

2. В разделе "Token configuration" добавить "Optional claims" -
preferred_username

2.1 В разделе Enterprise Application - Permissions нажать кнопку "Grant admin consent for ...", иначе каждого пользователя при первом входе будет просить о разрешении для Application.

3. В файле default.vrd
"authenticationClaimName": "preferred_username",
"authority": "https://login.microsoftonline.com/<tenant>",

4. Имя пользователя в 1С должно быть в полном формате: <username>@<domain>
10. user2055653 20.02.24 22:47 Сейчас в теме
Добрый вечер ,
Делаю публикацию 1с +ADFS , после авторизации ADFS выдается ошибка:
Cannot execute OpenID Connect authentication. Check whether the connection settings are correct. User identification failed Invalid user name
Подскажите в какую сторону копать ?
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот