社内、学内などにSAML SP(Shibboleth SP)を構築した時に、SeciossLinkの送信属性値をどのように受け取るかを説明したいと思います。
※Shibboleth SPが構築できていることが前提となります。
SeciossLinkにSAML SPを登録するときに送信属性を設定します。
ここでは、サンプルとして以下のような設定を行った場合の説明とします。
IDの属性:
ユーザーIDの属性:
送信属性:
※属性名は、デフォルト値とします。
/etc/shibboleth/attribute-map.xmlを編集します。
まずは、NameIDの設定について説明したいと思います。(過去記事の「Shibboleth SPを使ってSAMLに対応したサイトを作ろう」でも説明しています。)
SeciossLinkのデフォルトの属性名は、メール:mail、社員番号:employeeNumberとなっています。
基本的には、以下のようにnameFormatを「urn:oasis:names:tc:SAML:2.0:attrname-format:basic」を設定します。
<Attribute name="mail" id="mail" nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"/> |
また学認の標準設定の様にoidを属性名と設定した場合は、nameFormatを「urn:oasis:names:tc:SAML:2.0:attrname-format:uri」と設定します。
※「urn:oasis:names:tc:SAML:2.0:attrname-format:basic」では、SP側で受け取ることが出来ません。
<Attribute name="mail" id="urn:oid:0.9.2342.19200300.100.1.3" nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/> |
※ShibbolethSPのデフォルト設定が「urn:oasis:names:tc:SAML:2.0:attrname-format:uri」を想定されているので、oid形式の属性名の場合は、省略することが出来ます。
<Attribute name="mail" id="urn:oid:0.9.2342.19200300.100.1.3"/> |
Shibboleth SPを構築して、サービスのSAML SP化を検討した時の課題になるかと思います。
こちらで説明したような設定で、SeciossLinkからの送信属性値を取得できるようにして、Webサービス側で処理を切り分ける事が可能となります。