2016-11-15 3 views
3

Я пишу REST API, который будет использоваться нашими внутренними приложениями. Мне нужно войти в систему и выход из системы пользователей сервера идентичности, используя грант кода с помощью HTTP-запросовHTTP-запросы на аутентификацию пользователя WSO2 Identity Server

enter image description here presentation

Мне нужно знать, как вызвать следующие конечные точки:

  • /санкционирования (вызывается с серверной стороны)
  • /accesstoken (вызывается с серверной стороны)
  • /login
  • /выход из системы

СЛУЧАЙ:

Наша компания имеет много приложений. Я хочу, чтобы одна точка аутентификации произошла в их учетной записи company-x, например, как вам нужно только войти в аккаунт atlassian, чтобы получить доступ к облаку jira и confluence. REST API, над которым я работаю, предназначен для наших разработчиков (на данный момент).

enter image description here presentation

Я просто не могу позволить пользователю Войти WSO2 IS, так как они нужны только модуль, где они могут управлять своей компанией-х профиль и другие основные питания. По этому я думаю, у меня есть 2 варианта:

  1. Настройка пользовательского интерфейса и удостоверений сервера WSO2. Но проблема в том, что Мне все еще нужна конечная точка, чтобы получить этот id_token. Я также не уверен, что это правильный подход.
  2. Знать, как позвонить/разрешить,/маркер доступа,/входа и/выхода конечной точки и написать свой собственный минимально необходимый интерфейс и обеспечить конечную точку, которая будет реагировать на id_token

ответ

1

Как проложить основную страницу входа на передний план и использовать request path authenticator, чтобы получить авторизацию code/id_token.

В основном это означает, что вместо того, чтобы перенаправлять пользователя на страницу входа в систему IS, вы можете извлечь имя пользователя и пароль с основной страницы входа, которую вы создали, и отправить запрос на разрешение авторизации вместе с учетными данными.

поэтому ваш запрос авторизации кода будет:

https://localhost:9443/oauth2/authorize?response_type=code&client_id=JqB4NGZLMC6L3n4jz094FMls2Joa&redirect_uri=https://localhost/callback&scope=openid&sectoken=<sec_token> 

sec_token = base64encode (имя пользователя: пароль)

Вам нужно добавить базовой-авторизациюrequest path authenticator в вашей конфигурации поставщика услуг , Этот запрос должен вернуть вам разрешение code. Если вы хотите, чтобы id_token просто использовал неявный поток с аутентификацией пути запроса.

+0

Я довольно смущен, где именно я могу найти 'code/id_token', он передан в' redirect_uri' (как? requestbody или header)? или как форма ответа в отправителе запроса? Я попытался поместить 'http: // localhost: 8080/playground2/oauth2client' to 'redirect_uri' в почтальоне и t он отвечает html-формой. –

+1

идентификатор id передается после использования в качестве параметра запроса в URL-адресе обратного вызова, например: https: // localhost/callback? Id_token = farasath

+0

Теперь выясните, что означало @bhathiya, обратившись к перенаправлению с вызова REST (потому что я отправляю запрос через почтмана). –

1

При использовании гранта код тип, будет перенаправление браузера от /authorize до /login. Я не думаю, что вы можете справиться с этим вызовом REST. (Возможно, вы справитесь с этим, вызвав url в заголовке location каждого ответа 302. Но я не думаю, что это хороший способ сделать это.) Если вы хотите разработать REST API, я думаю, что тип субсидии password будет более подходящий.

+0

Да, я тоже озадачен перенаправлением. моя единственная проблема с предоставлением пароля - access_token, а id_token будет отображаться на стороне клиента. Каков мой вариант решения этой проблемы безопасности? например, использовать API-ключ? BTW Я намерен использовать id_token как session_id на стороне клиента. Большое спасибо ^^ –

+0

Разве ваши клиенты не основаны на браузере? Разве они не могут переадресовать браузер? Информацию об управлении сеансом см. На странице https://docs.wso2.com/display/IS520/Session+Management+with+Playground – Bee

+0

Кстати, ваша проблема с типом предоставления пароля немного запутанна. Даже в типе типа кода маркер доступа получает клиентское приложение в конце, правильно? Проблема с типом предоставления пароля заключается в том, что пользователь должен предоставить свои учетные данные клиентскому приложению. Но AFAIK - единственный способ справиться, если клиентское приложение не может обрабатывать перенаправление браузера. – Bee

Смежные вопросы