У меня возникли проблемы с связыванием всего этого вместе. Частично из-за непонимания и частично из-за того, что раньше я не использовал OpenAM.OpenAM, OpenId, REST API, внутренние приложения: как мне их соединить?
Я пытаюсь реализовать Single Sign-on. Вот игроки.
- OpenAm. https://www.forgerock.com/en-us/products/access-management/
- Стороннее приложение, которое может использовать собственную базу данных имени пользователя/пароля или аутентифицироваться против поставщика SAML или OpenId.
- Несколько внутренних приложений, написанных в виде угловых или .net-веб-форм.
- Собственный API REST, написанный в nodejs.
Мне нужно иметь возможность входа/регистрации пользователя в openam, а затем они не входят в какое-либо другое приложение. Мы видим это по всему миру, поэтому прецедент довольно нормальный, но я никогда не реализовал его раньше.
Посмотрите, что я пытаюсь сделать, используя изображение ниже для начала.
Вот что я stuggling с:
для SSO целей, OpenAM кажется, хранить аутентификацией информацию пользователя в куки. Как мое приложение для приложений забирает этот файл cookie и использует его, если он может только аутентифицироваться через openid или saml? Он не может использовать API openam, проходя через конечные точки/json/*.
С собственными приложениями я предполагаю, что могу просто передать cookie вместе, и соответствующие стороны могут проверить информацию сессии или токена файла cookie, и все. Это правильно, или я смотрю на это неправильно?
Могу ли я войти в систему на страницу входа в OpenAm, а затем использовать/oauth2/* endpoints для проверки запросов пользователя? Я мог видеть, что это работает лучше, но я не уверен, что так оно и должно произойти.
В принципе, я чувствую, что на прошлой неделе я пробормотал свой мозг, пытаясь разобраться в этом. Мне нужна помощь, чтобы получить здесь какое-то направление. Как я сказал выше, хорошая часть этого нового. Я использовал front-end-> rest api-> базу данных, используя токен, но этот сценарий SSO дал мне настоящую головную боль.
Любая помощь будет оценена по достоинству.
Карстен, не могли бы вы взглянуть на https://stackoverflow.com/questions/46767871/using-browser-supplied-3rd-party-oauth2-token-in-nodejs - я думаю, что это аналогичная проблема, и вы можете что-то знать об этом. Спасибо, что объяснили жаргон. – Yurik