OpenID Connect пытается решить проблему совместного использования аутентификации пользователя между двумя сторонами: поставщиком удостоверений (OP) и клиентом.
Это четко не указано в документации OIDC, но, исходя из моего опыта, OIDC не пытается решить, как вы аутентифицируете своих пользователей на разных платформах (веб, мобильные / настольные).
Это один из немногих допустимых вариантов использования OAuth 2.0 "Предоставление учетных данных для пароля владельца ресурса", где клиент обменивает учетные данные пользователя на токен.
Здесь вы находитесь внутри своей собственной системы, ваше мобильное / настольное приложение не может считаться сторонним, оно только предоставляет надежный способ для пользователя отправить вам свои учетные данные.
Вы можете убедиться, что приложение не хранит их, так как вы иметь контроль над кодовой базой.
РЕДАКТИРОВАТЬ: экземпляры мобильного приложения могут совместно использовать (если вам не удается динамически назначать идентификаторы клиентов) идентификатор / секрет клиента, который нельзя сохранить в тайне. Он составляет действительно тонкий уровень аутентификации клиента, пытаясь убедиться, что что запросы поступают из вашего мобильного / настольного приложения:
POST /oauth/token HTTP/1.1
Authorization: Basic ${BASE64_ENCODED_CLIENTID_CLIENTSECRET}
grant_type=password&
username=${USERNAME}&
password=${PASSWORD}
Некоторым людям не нравится, что в нем указывается способ аутентификации пользователя, а некоторые компании могут иметь дополнительные учетные данные, кроме имени пользователя и пароля, например, при использовании двухфакторной аутентификации. Кроме того, некоторые люди неправильно использовали грант ROPC, поскольку он действителен только внутри организации, позволяя клиенту запрашивать ваши собственные учетные данные, убивая точку наличия протокола SSO / авторизации.
OIDC по-прежнему OAuth 2.0, что означает, что вы можете реализовать собственный поток «учетных данных пользователя» для получения токена доступа + токена идентификатора из своего настольного / мобильного приложения. Однако это выходит за рамки OIDC.
Между прочим, SAML был создан в то время, когда мобильные приложения еще не использовались:
SAML 2.0 был ратифицирован в качестве стандарта OASIS в марте 2005 г.
person
Michael Técourt
schedule
31.07.2015