Если вы спрашиваете, как настроить Shibboleth IdP для предоставления атрибутов, полученных из источника MySQL, вы должны использовать элемент <DataConnector>
.Следующий пример подключается к базе данных shibboleth
в mysqldb.example.com
и определяет атрибут sn
:
# In the file attribute-resolver.xml (version 3.3 of Shibboleth Idp)
<AttributeDefinition
xmlns="urn:mace:shibboleth:2.0:resolver:ad"
xsi:type="Simple" id="sn" sourceAttributeID="sn">
<Dependency ref="mysqlconnector" />
<AttributeEncoder xsi:type="SAML2String"
xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:oid:2.5.4.4" friendlyName="sn" />
</AttributeDefinition>
<DataConnector id="mysqlconnector" xsi:type="RelationalDatabase">
<ApplicationManagedConnection
jdbcDriver="com.mysql.jdbc.Driver"
jdbcURL="jdbc:mysql://mysqldb.example.com/shibboleth"
jdbcUserName="username"
jdbcPassword="password" />
<QueryTemplate>
<![CDATA[
SELECT sn
FROM users
WHERE userid='$resolutionContext.principal'
]]>
</QueryTemplate>
</DataConnector>
Обратите внимание, что вышеприведенное работает с Shibboleth Idp версии 3.3;для получения дополнительной информации см. документацию Shibboleth RelationalDatabaseConnector .