山形大学の伊藤です。 > ついでに追加質問です。 > SP側に渡っている属性名・属性値をチェックするのに, > どのようなSPを構築しておられますか? > 私はApacheのmod_shibで,phpinfoで変数を見る方法を > やってますが,これが一番気軽なんでしょうか。 今、山形大学でテストしているSPのチェック機能について説明します。 あくまで、テスト中ですので、今後、コードが変更になる可能性があります。 まず、SPの設定ファイルのattribute-policy.xmlで拒否することもできますが、 利用の利便性や各ページの機能調整を確保するために、SPの アプリケーション内にチェックコードを埋め込んでいます。 サーバソフトがApacheではなく、IISなので、phpinfoは使っていませんが、 基本的は同じような動作になります。具体的には、Header情報を識別して、 チェックしています。 Headerのチェックは、クラスライブラリー(Shibboleth_tools)として構築して、 各Webページからこのクラスライブラリーにヘッダー情報を送り込み、チェック 情報をプロパティとして取得しています。 チェックについては、各Webページでチェック内容と、ライブリー側で行う場合の 2つの機能を組み合わせて機能しながら、動作させています。 サンプルコードを下記に添付します。サンプルコードが動作しているページは、 下記URLで属性の表示ページです。IISが原因なのかわかりませんが、 日本語属性が文字化けすることがあります https://c.yz.yamagata-u.ac.jp/amenity/network/shibbolethUserInfo.aspx 以上。Phpでないので、お役に立てるかわかりませんが、現在開発中のSPの現状です。 ○サンプルコード Web pageでは、 Public Partial Class ShibbolethUserInfo Inherits System.Web.UI.Page Protected Shib1 As New Shibboleth_tools ・・・ Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Shib1.Headers = Me.Request.Headers <- Header情報のクラスへの受け渡し If Shib1.SHIB_SESSION_ID <> "" Then ..... End If --ここからShibboleth_toolsの内容の一部-- Imports System.IO Imports System.Text Imports System.Data.Odbc Public Class Shibboleth_tools Inherits xxxxx Private Colls As New Specialized.NameValueCollection Public Sub New() Me.ObjectTitle = "Shibboleth Tools" End Sub Public Property Headers() As Specialized.NameValueCollection Get Return Colls End Get Set(ByVal value As Specialized.NameValueCollection) Colls = value End Set End Property Public Property EPPN() As String Get Return Me.ShibUTF8(Colls("eppn")) End Get Set(ByVal value As String) End Set End Property Public Property .... As String ・・・ End Property ・・・ Private Function ShibUTF8(ByVal Buf As String) As String If Buf <> "" Then Dim tmp As Byte() = Encoding.GetEncoding(932).GetBytes(Buf) Return Encoding.UTF8.GetString(tmp) Else Return Buf End If End Function End Class --ここまで--
Attachment:
smime.p7s
Description: S/MIME cryptographic signature