[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[upki-fed:14] Re: Shibboleth IdP への Azure AD proxy 設定(東京大学様の事例を参考に)



東京大学 中村先生

埼玉大学の斎藤と申します。
返信どうもありがとうございました。

お教えいただきましたログ出力を試しながらだいぶ時間を要しましたが、
ようやく期待する動作を得ましたので、以下ご報告させていただきます。

■起きていた現象
○Azure AD認証が通った後、LDAP問い合わせフィルタが filter='(uid=$resolutionContext.principal)' のまま
 $resolutionContext.principal がユーザ名に置き換わらなかった。

■当方の環境
○当Shibboleth IdP の最初のインストールバージョンは Shibboleth 4.1.4 。
 現在のバージョンは 4.3.1

■原因(推定)
Shibboleth の旧バージョンでは存在していた Flow Descriptor bean が V4.1以降で存在しなかったため。

■対応の詳細
Shibboleth IdP V4 SAMLAuthnConfiguration のページにしたがって、修正を行った。
https://shibboleth.atlassian.net/wiki/spaces/IDP4/pages/1282539600/SAMLAuthnConfiguration

・Subject Canonicalization は、SAMLの値を直接使うように変更。
・Flow Descriptor XML(下記)を global.xml に追記。
--------
<util:list id="shibboleth.AvailableAuthenticationFlows">

    <bean p:id="authn/SAML" parent="shibboleth.AuthenticationFlow"
            p:order="%{idp.authn.SAML.order:1000}"

p:nonBrowserSupported="%{idp.authn.SAML.nonBrowserSupported:false}"

p:passiveAuthenticationSupported="%{idp.authn.SAML.passiveAuthenticationSupported:true}"

p:forcedAuthenticationSupported="%{idp.authn.SAML.forcedAuthenticationSupported:true}"

p:proxyRestrictionsEnforced="%{idp.authn.SAML.proxyRestrictionsEnforced:%{idp.authn.enforceProxyRestrictions:true}}"

p:proxyScopingEnforced="%{idp.authn.SAML.proxyScopingEnforced:true}"
            p:discoveryRequired="%{idp.authn.SAML.discoveryRequired:true}"

p:lifetime="%{idp.authn.SAML.lifetime:%{idp.authn.defaultLifetime:PT1H}}"

p:inactivityTimeout="%{idp.authn.SAML.inactivityTimeout:%{idp.authn.defaultTimeout:PT30M}}"

p:reuseCondition-ref="#{'%{idp.authn.SAML.reuseCondition:shibboleth.Conditions.TRUE}'.trim()}"

p:activationCondition-ref="#{'%{idp.authn.SAML.activationCondition:shibboleth.Conditions.TRUE}'.trim()}"

p:subjectDecorator="#{getObject('%{idp.authn.SAML.subjectDecorator:}'.trim())}">
        <property name="supportedPrincipalsByString">
            <bean parent="shibboleth.CommaDelimStringArray"

c:_0="#{'%{idp.authn.SAML.supportedPrincipals:}'.trim()}" />
        </property>
    </bean>

</util:list>
--------
(ページの p:subjectDecorator-ref は p:subjectDecorator のtypo)

■その他
残存課題として、SSOの後に送信する属性を確認する画面で「同意方法の選択」設定を取り消すチェックボックスを
どうやって出そうかという懸念がありますが、当初お伺いしたことは解決しました。


中村 誠 wrote on 2023/06/15 17:34:
斎藤

東京大学の中村です。
ソースを流し読みしてみましたが4.0と4.1で属性の指定方法が変わったようですが基本的な流れは変わらないようです。
手順に書いてある設定に漏れがないか(コメントアウトの解除忘れがないかなど)を確認すると良いのだと思います。

なお idp.loglevel.spring という値を変えるとdebugできるのかもしれません。

--
  # よければAXIES認証基盤部会ものぞいてみてください



--
-------------------------------------------------+----------
齋藤 広宣
埼玉大学 総務部 情報基盤課(情報メディア基盤センター)
Email: xxxxxx@xxxxxxxxxxxxxxxxxxxx

--

--- このグループから退会し、グループからのメールの配信を停止するには xxxxxxxxxxxxxxxxxxxx@xxxxxxxxx にメールを送信してください。