(я технический руководитель TSPM или Tivoli Security Policy Manager для тех, кто не знаком с продуктом).
Вариант использования, который вы описываете, определенно возможен. Вам, вероятно, не нужно сосредотачиваться на сыром XACML - мы прилагаем много усилий для обеспечения пользовательского интерфейса более высокого уровня для разработки политик.
Один из способов смоделировать это состоит в том, чтобы каждая ссылка была представлена другой структурной точкой в пользовательском интерфейсе TSPM с соответствующей политикой, прикрепленной к каждой. Например, две ссылки могут иметь политику, которая представляет «разрешить всем пользователям в любое время», а одна ссылка может иметь «разрешение, когда текущее время до полуночи».
Затем вы вызываете нашу среду выполнения перед рендерингом каждой ссылки, чтобы узнать, сможет ли пользователь, прошедший проверку подлинности, просмотреть ее. Вы также можете сделать один звонок, чтобы получить список просматриваемых в данный момент ссылок, если хотите.
Вы можете использовать библиотеку тегов WebSphere Portal или наш API авторизации, если вы работаете в WebSphere. Если нет, то действительно легко создать клиент веб-службы для большинства платформ, которые могут вызывать службу авторизации с использованием XACML поверх SOAP. Для получения дополнительной информации о вызове службы авторизации см. Нашу общедоступную вики .
Edit:
Я понял, что на самом деле не отвечал на ваш вопрос о том, что такое ресурс с точки зрения XACML. Как вы, возможно, знаете, XACML разбивает контекст запроса на четыре раздела: Тема, Ресурс, Действие и Среда. Каждый из этих разделов содержит ноль или более атрибутов, каждый с идентификатором и типом. Ресурс в XACML - это просто атрибут или комбинация атрибутов из раздела Ресурс, которые вместе однозначно определяют то, что вы защищаете.
Спецификация определяет для этой цели идентификатор urn:oasis:names:tc:xacml:1.0:resource:resource-id
, и он может быть любого типа, но обычно это строка или URI.
В вашем случае использования каждая ссылка может иметь строковый идентификатор, такой как "link-1", "link-2" и "link-3". Ваша политика будет использовать эти идентификаторы, а ваше приложение будет передавать их при запросе решения для каждой ссылки.