...
IdPにおいてログに記録するための一つの方法としては、attribute-resolver.xmlに以下のような定義を追加(<AttributeResolver></AttributeResolver>の内側)する方法があります(Shibboleth IdP 3.2.1以降で動作確認)。
● eduPersonTargetedIDの定義でComputedIDを用いている場合 eduPersonTargetedIDの定義でComputedIDを用いている場合
以下の例では、指定したSP(ここでは https://shiken-sp00.nii.ac.jp/shibboleth-sp
)に対して送信される属性のみがログに記録されます。
パネル |
---|
borderColor | #cccccc |
---|
bgColor | #eeeeee |
---|
borderStyle | solid |
---|
title | Shibboleth IdP V4以降向け |
---|
|
<AttributeDefinition id="eduPersonTargetedIDLogging" xsi:type="ScriptedAttribute">
<!-- Inputs that provides the source attribute. -->
<InputDataConnector ref="computedID" attributeNames="computedID" />
<InputAttributeDefinition ref="eduPersonPrincipalName" />
<Script><![CDATA[
logger = Java.type("org.slf4j.LoggerFactory").getLogger("net.shibboleth.idp.attribute");
if ( resolutionContext.attributeRecipientID.equals("https://shiken-sp00.nii.ac.jp/shibboleth-sp ") ) { logger.info(
"eduPersonPrincipalName : " + eduPersonPrincipalName.getValues().get(0).getValue()
+ '@' + eduPersonPrincipalName.getValues().get(0).getScope()
+ " , eduPersonTargetedID : " + computedID.getValues().get(0)
);
}
]]></Script>
</AttributeDefinition>
|
パネル |
---|
borderColor | #cccccc |
---|
bgColor | #eeeeee |
---|
borderStyle | solid |
---|
title | Shibboleth IdP 3.xでJava 8 以降の場合 | Java 7 の場合 | borderStyle | solid |
---|
|
<resolver:AttributeDefinition id="eduPersonTargetedIDLogging" xsi:type="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad">
<!-- Dependency that provides the source attribute. -->
<resolver:Dependency ref="computedID" />
<resolver:Dependency ref="eduPersonPrincipalName" />
<Script><![CDATA[
importPackage(Packages. logger = Java.type("org.slf4j);
logger = LoggerFactory.LoggerFactory").getLogger("net.shibboleth.idp.attribute");
if ( resolutionContext.attributeRecipientID.equals("https://shiken-sp00.nii.ac.jp/shibboleth-sp") ) {
logger.info(
"eduPersonPrincipalName : " + eduPersonPrincipalName.getValues().get(0).getValue()
+ '@' + eduPersonPrincipalName.getValues().get(0).getScope()
+ " , eduPersonTargetedID : " + computedID.getValues().get(0)
);
}
]]></Script>
</resolver:AttributeDefinition>
|
パネル |
---|
borderColor | #cccccc |
---|
bgColor | #eeeeee |
---|
borderStyle | solid |
---|
title | Java 8 の場合 |
---|
borderStyle | solid |
---|
Shibboleth IdP 3.xでJava 7 の場合 |
|
<resolver:AttributeDefinition id="eduPersonTargetedIDLogging" xsi:type="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad">
<!-- Dependency that provides the source attribute. -->
<resolver:Dependency ref="computedID" />
<resolver:Dependency ref="eduPersonPrincipalName" />
<Script><![CDATA[
importPackage(Packages.org.slf4j);
logger = Java.type("org.slf4j. LoggerFactory").getLogger("net.shibboleth.idp.attribute");
if ( resolutionContext.attributeRecipientID.equals("https://shiken-sp00.nii.ac.jp/shibboleth-sp") ) {
logger.info(
"eduPersonPrincipalName : " + eduPersonPrincipalName.getValues().get(0).getValue()
+ '@' + eduPersonPrincipalName.getValues().get(0).getScope()
+ " , eduPersonTargetedID : " + computedID.getValues().get(0)
);
}
]]></Script>
</resolver:AttributeDefinition>
|
定義を追加したあと、Tomcatの再起動を行い設定を反映してください。
idpこの例では、指定したSPに対して送信される属性のみがログに記録されます。 定義を追加した後、Tomcatを再起動してください。idp-process.logに次のようなメッセージが出力されるようになります。なお、ログレベルはINFOになっていますので、logback.xmlの設定も必要に応じて調整してください。
パネル |
---|
borderColor | #cccccc |
---|
bgColor | #eeeeee |
---|
borderStyle | solid |
---|
|
2016-08-31 13:57:02,281 - INFO [net.shibboleth.idp.attribute:-2] - eduPersonPrincipalName : test001@nii.ac.jp , eduPersonTargetedID : LkDwL3dNSb9FBr3TNP0g3D9F7mk= |
...
上の例で computedID
を全て storedID
に置き換えてください。 に置き換えてください(置き換える個所には下線を引いています)。
...
参考:eduPersonTargetedIDでComputedIDを使う方法は eduPersonTargetedID に記載されています。