Azure позволяет получить список зарегистрированных провайдеров удостоверений на получение:Как сопоставить стоимость требования поставщика удостоверения личности от поставщика удостоверения, зарегистрированного в Azure ACS?
https://YourNamespace.accesscontrol.windows.net/v2/metadata/IdentityProviders.js?
protocol=wsfederation&
realm=YourAppRealm&
reply_to=YourAppReturnURL&
version=1.0
Когда знак пользователя в мы получаем требование поставщика идентичности, который идентифицирует, какой поставщик, который был использован для проверки подлинности.
Проблема заключается в том, что ресурс IdentityProvider.js
не сообщает нам, какой поставщик удостоверения личности, который будет использоваться.
Например:
- Windows Live ID использовать значение претензии
uri:WindowsLiveID
- Google использовать значение Претензии
Google
- ADFS поставщик идентичности может использовать значение претензии как
http://adfs.mycompany.com/adfs/services/trust
Мне нужно иметь возможность сопоставлять значения идентификатора поставщика идентификационных данных и поставщиков идентификационных данных, перечисленных в IdentityProviders.js
.
Причина этого заключается в том, что мне необходимо разрешить предоставление разрешений пользователям, указанным конкретным поставщиком удостоверений. Чтобы облегчить для пользователя, я хочу предоставить им список поставщиков идентификационных данных на выбор (то есть путем представления данных, полученных из IdentityProviders.js
). Тем не менее, фактическое присвоение должно быть выполнено с использованием значения претензии поставщика идентификатора, поскольку это то, что идентифицирует провайдера.
Возможно ли это? Есть ли обходные пути?
Любая помощь будет оценена!
Интересный вопрос! Просто задумываясь вслух - поскольку вы настраиваете поставщиков удостоверений, разрешенных через ACS (или, другими словами, произвольные поставщики удостоверений не разрешены), не можете ли вы сохранить это сопоставление в своей базе данных? Поэтому, если значение претензии возвращается как «uri: WindowsLiveID», вы можете сопоставить это с «Windows Live ID» в своей базе данных. –
Да, это было бы возможно. Тем не менее, я разрабатываю платформу, на которой размещаются несколько отдельных экземпляров (базы данных), и я хочу свести к минимуму объем работы, которая должна быть выполнена для инициализации/настройки каждого экземпляра. Все/многие экземпляры используют одно и то же пространство имен ACS, поэтому было бы хорошо, если бы я мог добавить, например, новый поставщик удостоверений в ACS, не настраивая каждый экземпляр только для этой вещи сопоставления ... –
Пожалуйста, посмотрите, помогает ли этот подход : http://stackoverflow.com/questions/15097275/passing-url-parameters-from-azure-acs-to-my-custom-identity-provider. –