Аутентификация в Windows Azure Active Directory (веб-служба)

Проект, над которым я работаю, представляет собой набор веб-сервисов, которые извлекают данные из локальной базы данных. Клиент хочет ограничить доступ только авторизованным пользователям, проверяя их учетные данные в Azure Active Directory.

Я посмотрел на http://azure.microsoft.com/en-us/documentation/articles/mobile-services-html-get-started-users/ и несколько других статей о том, как лучше поступить с этим, но я не могу найти надежный способ сделать это.

Я пытался использовать cURL со следующим xml —

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<a:Action s:mustUnderstand="1">http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue</a:Action>
<a:To s:mustUnderstand="1">https://login.windows.net/[]/saml2</a:To>
<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" >
<o:UsernameToken>
<o:Username>USERNAME</o:Username>
<o:Password>PASS</o:Password>
</o:UsernameToken>
</o:Security>
</s:Header>
<s:Body>
<trust:RequestSecurityToken xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
<wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<a:EndpointReference>
<a:Address>https://login.windows.net/[]/saml2</a:Address>
</a:EndpointReference>
</wsp:AppliesTo>
<trust:KeyType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer</trust:KeyType>
<trust:RequestType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue</trust:RequestType>
<trust:TokenType>urn:oasis:names:tc:SAML:2.0:assertion</trust:TokenType>
</trust:RequestSecurityToken>
</s:Body>
</s:Envelope>

и команда cURL

curl https://login.windows.net/[]/saml2 --data @tmp.xml  -H "Content-Type:application/soap+xml" -v

Я продолжаю получать «Неправильный запрос saml2». Есть ли способ сделать это через cURL? Как лучше всего выполнить эту аутентификацию, не перенаправляя пользователя на страницу входа?

1

Решение

Для тех, кто имеет эту проблему (и является совершенно новым для SAML2), пожалуйста, проверьте SimpleSamlphp. Через несколько минут мой сервис заработал.

Примечание. Для этого необходимо, чтобы приложение было авторизовано в качестве поставщика услуг в Azure. И если у вас есть какие-либо проблемы с тем, что ваше зарегистрированное приложение не находится в источниках тестовой аутентификации, убедитесь, что имя вашего ключа метаданных указано правильно.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]