2013-09-10 6 views
0

Я использую сервер авторизации Thinktecture с подключенным ACS и LiveID в качестве поставщика удостоверений. Он работает, но JWT выглядит (обратите внимание на требование NameID):Live Id не возвращает UserId как поставщик удостоверений в ACS с сервером авторизации Thinktecture

{ 
"aud": "urn:mygym", 
"iss": "https://my-gym.accesscontrol.windows.net/", 
"nbf": 1378851574, 
"exp": 1378852174, 
"nameid": "MjApoxNfAaXXXXXXXXXXXXXdBi7lqd4sjd6j0=", 
"identityprovider": "uri:WindowsLiveID" 
} 

Это пойман в моем пользовательской JWT маркеров обработчика, так что это gottent непосредственно от ACS. Требование «nameid» должно быть идентификатором Live ID UserId, но это не так, выглядит как закодированная в base64 строка, но он просто декодирует случайные символы. Мне нужно получить UserId, чтобы получить общедоступную информацию пользователя, как в https://apis.live.net/v5.0/8c8ce076ca27823f.

Любые идеи о том, что может быть неправильным или неконфигурированным?

ответ

0

ACS не предоставляет вам адрес электронной почты или «глобальный идентификатор пользователя» для пользователей, прошедших проверку подлинности LiveId. Он дает вам идентификатор, уникальный для конкретного пользователя и пространства имен ACS. Поэтому гарантируется, что аутентифицированный пользователь является , возвращающим пользователя _, вот и все.

Возможно, вам захочется проверить другие способы подключения к LiveID (например, используя их конечные точки OAuth, которые дают вам больше контроля).

Примечание: Если вы используете идентификатор сервера, ACS может не понадобиться вообще ...

+0

К сожалению, этот тег была ошибка, я только с помощью ACS. Таким образом, нет никакой возможности получить дополнительную информацию о пользователе из ACS? Угадайте, что мне нужно будет получить IdentityServer (чтобы использовать несколько поставщиков удостоверений). Благодаря! – danielrozo

+0

Да, вы можете использовать Identity Server, если хотите полностью «владеть» стеком как проект с открытым исходным кодом. Существуют также службы (например, такие, как я работаю: developers.auth0.com), которые вы можете полностью передать на аутсорсинг. Вам решать. –