При использовании Windows Identity Foundation (WIF) с несколькими службами маркеров безопасности (STS) можно ли подготовить пользователей до того, как они впервые получат доступ к приложению?
Например, допустим, у меня есть веб-сайт под названиемBufferOverrun, где пользователи могут входить в систему и задавать / отвечать на вопросы, а я хочу поддерживать аутентификацию с внешними учетными записями Google.Когда пользователь впервые заходит на страницу, он должен пройти аутентификацию с помощью своей учетной записи Google, после чего он может получить доступ к веб-приложению.В этом сценарии есть два службы STS: Google (для аутентификации личности) и одна для моего приложения (для авторизации).
Как я могу назначить заявки пользователю до того, как пользователи получат доступ к системе?
Поскольку удостоверение принадлежит моему приложению извне, я не могу назначить заявки непосредственно этому удостоверению (и в любом случае я бы не хотел, поскольку они были бы специфичны для приложения).Но так как пользователь не получил доступ к системе, у меня нет внутренней идентификационной информации для назначения претензий.Я вижу два возможных решения:
- Подождите, пока пользователь не получит доступ к системе (создавая некоторые заявки по умолчанию для конкретных приложений), затем используйте какой-либо внутренний инструмент обеспечения, чтобы изменить эти заявки по желанию.
- Иметь инструмент обеспечения, позволяющий пользователям вручную сопоставлять заявку на идентификацию по умолчанию (например, адрес электронной почты), прежде чем эта идентификация будет аутентифицироваться, вводя ее вручную, чтобы при первом доступе, если идентификация подтверждает эту заявку, конкретный набор заявок на приложенияпредоставлены.
Я вижу несколько проблем как с 1, так и с 2. Для 1 все пользователи имеют некоторый неявный доступ к системе, даже если заявки приложений по умолчанию не допускают функциональности.Похоже, это прекрасно работает для чего-то вроде stackoverflow, когда первоначальная учетная запись имеет определенный набор разрешений, и, когда пользователь использует системы, предоставляются новые заявки.Однако это, вероятно, не желательно для всех приложений.2 подвержен ошибкам, так как требует от администратора ручного указания претензии.
В обоих вышеописанных случаях, как мне предоставить удостоверение, которое имеет доступ к , использовать инициализациюинструмент (т. е. учетная запись администратора)?
. Для этого я предполагаю, что во время установки приложения я требую от пользователя аутентификации и установки требований приложения для этого удостоверения так, чтобы они были такими "административные "привилегии".Это хорошая реализация?
Исторически (я сейчас имею в виду существующее приложение), приложение, специально связанное только с Active Directory.Способ, которым это было обработано, состоял в том, что была встроенная учетная запись администратора (не связанная с AD), которая позволяла пользователю администратора сначала входить в систему.После проверки подлинности с помощью приложения администратора этот пользователь может выполнять поиск пользователей / групп в AD и предоставлять их индивидуально.Любой пользователь / группа, не предоставленные администратором, вообще не будут иметь доступа к системе.Я не вижу, чтобы эта парадигма была применима к использованию внешних STS, таких как Google и т. Д., Поэтому я пытаюсь создать архитектуру, которая позволила бы использовать внешние системы STS.Сохранение возможности поиска STS желательно, но не обязательно.На практике обе задействованные службы STS, вероятно, оба будут Active Directory, использующими федеративные службы.
Примечание. Это похоже на этот вопрос и этот вопрос .