У меня есть ASP.NET Web Api, который использует ASP.NET Identity для управления доступом пользователей и ролей к API. У меня есть случай, когда я пытаюсь создать токен JWT, чтобы внешняя компания могла достичь одной из моих конечных точек. Я пытался создать свой собственный JWT, используя код, показанный в this SO article - Second answer. Мой токен JWT правильно декодирует, но не разрешает доступ к моей конечной точке, даже если у меня назначена надлежащая роль. Мне интересно, нужна ли другая информация в полезной нагрузке, потому что система основана на идентификаторе ASP.NET.Каковы требования к полезной нагрузке для токенов API Net Identity JWT API
Вот полезная нагрузка , что я включил в моем JWT
{
iss: "http://mycompany.com",
name: "Company Test",
role: "CompanyTest",
aud: "<Audience ID of my application>",
exp: 1485433642
}
Вот несколько полезных нагрузок, которые я ушел из моего творчества JWT, которые включены в JWT лексемы генерируется ASP.NET идентичности , Мне интересно, являются ли они существенными и поэтому должны быть включены в полезную нагрузку JWT.
{
"nameid": "<user unique identifier here from Identity table>",
"unique_name": "<Email account of user>",
"http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider": "ASP.NET Identity",
"AspNet.Identity.SecurityStamp": "<Security stamp column from Identity table>"
}
Я оставил эти значения, когда пытаются создать свой собственный маркер JWT, потому что я не связывал доступ к конкретной учетной записи. Я просто хотел создать долговременный токен, который внешняя компания могла бы использовать без участия.
Хотя вы можете декодировать JWT вам все еще нужно, чтобы применить тождество к контексту запроса. это то, что библиотеки делают для вас. После того, как вы расшифруете извлечение маркера, вам нужна информация, создайте личность и примените претензии и назначьте принцип текущему потоку. Вы можете абстрагировать все эти функции в фильтре действий. – Nkosi
. Все, чего я пытаюсь избежать, - заставить внешнюю компанию проверять с помощью имени пользователя и пароля, который является нормальным потоком моего доступа к API. Я полагаю, что я мог бы создать учетную запись и зарегистрировать учетную запись компании с учетными данными и изменить истечение срока действия JWT, а затем уйти в отставку с помощью моего секретного ключа. – webworm
Как они получают токен – Nkosi