2016-11-25 11 views
1

Я пытаюсь реализовать Okta SSO с помощью SAML с моим AngularJS SPA (с помощью виджета Okta Sign-in) без успеха.Как интегрировать виджеты Okta SignIn и SAML SSO с помощью Angularjs SPA?

Виджет работает ОК сам по себе (без интеграции SAML, только виджет). Я могу аутентифицировать учетные данные моего пользователя, установить cookie сеанса и перенаправить на домашнюю страницу моего приложения.

Я следовал инструкциям по этой ссылке (Okta SignIn Widget with SAML), чтобы интегрировать SAML без везения.

Виджет может аутентифицировать учетные данные моего пользователя, но когда IDP (в данном случае сайт Okta) перенаправляется в мое приложение с помощью «Встраиваемой ссылки приложения», я получил пустой экран, и я могу видеть POST для своего приложения URL с утверждением SAML в качестве параметра со статусом 405 (метод не разрешен).

Я действительно потерялся в этом вопросе, и документация Okta не имеет отношения к этому вопросу. Некоторые мои сомнения являются:

  1. При настройке моего приложения в окта администратора: То, что я должен поставить на «Единый вход в систему URL» поле ? мой URL-адрес страницы входа в приложение? », или, конечная точка URL-адрес моего бэкэнда, отвечающего за обработку утверждения SAML?
  2. Где я могу разместить URL-адрес сертификата X.509 для приложения Okta и URL-адрес IDP?

ответ

1

Несмотря на то, что SAML можно использовать с использованием приложения Single Single JavaScript, это не идеальный способ реализации Single Sign-On.

Я предлагаю использовать OpenID Connect для добавления возможностей единого входа в приложение AngularJS. Вот пример проекта, показывающий how to use Okta's Sign-In Widget with AngularJS.

Unfortunatly, (и непоследовательно) StackOverflow вопрос, который вы смотрели на был о том, как использовать окт Sign-In Widget, чтобы войти в качестве существующего приложения SAML. Невозможно использовать виджет входа в Okta для поддержки SAML.

Если у вас есть , у вас есть, чтобы реализовать SAML в вашем приложении AngularJS, вам нужно будет добавить поддержку SAML для бэкэнда для вашего приложения AngularJS. Поток будет выглядеть примерно так:

  1. После аутентификации с помощью Okta ваш браузер отправит SAMLResponse на ваш сервер.
  2. Ваш сервер будет проверять SAMLResponse.
  3. Если SAMLResponse действителен, ваш бэкэнд установит сеанс с вашим приложением AngularJS.
+0

Я дошел до пункта №2, но не уверен, как взять моего пользователя из Backend в Angular app. В принципе, я хочу, чтобы пользователь перенаправлялся на конкретный URL-адрес после проверки SAML. Я использую WebAPI, который, я думаю, не способен перенаправлять URL. Можете ли вы, пожалуйста, помочь, как это возможно. – CuriousBuddy

+0

Я не знаком с веб-API, но основы должны проверять SAML на бэкэнд, установить сеанс для пользователя, а затем вернуть HTML для приложения Angular. –

+0

Web API - это WebService, который не может вызывать или устанавливать соединение со своей стороны. – CuriousBuddy