SSO

LINE WORKSをIdpとしたSSOで、SAML ResponseのReference URIの値が空で返ってくる

keina

2024.01.26既読 729

LINE WORKSをIdp、自社開発している社内システムをSPとしてSSOを実装したいと思っています。
LINE WORKSから送信されたSAML ResponseのSignatureを確認すると、Reference URIの値が空で返ってきています。<Reference URI="">

C#のSAML認証のライブラリを複数試してみましたが、いずれもReference URIが空の場合を考慮した処理になっておらず、必ずランタイムエラーが発生してしまいます。

試しにReference URIを読み取る部分のコードを書き換えてみるとログインできました。

しかし、詳しくないので認識が違っていたら申し訳ありませんが、おそらくSAMLの仕様的にはReference URIにはResponse IDと同じ値が設定されている(Response IDが"foo"の場合はSignatureに含まれるReference URIは"#foo")はずなのではないかと思っています。

OASISの仕様書の73ページにReference URIについての記載がありました。

https://www.oasis-open.org/committees/download.php/56776/sstc-saml-core-errata-2.0-wd-07.pdf

できればライブラリをカスタムしたくないので、Reference URIが設定されてくる方法があれば知りたいです。

こちら(SP側)のリクエストの内容に何か問題があるのでしょうか?
もしくは他の原因が考えられますか?
それとも、SAML仕様上Reference URIが空なのは許容されており、単に使用したライブラリ側が考慮不足であっただけなのでしょうか?
リクエストの内容を貼ります。(ACS URLとSP Issuerだけ隠しました)
<samlp:AuthnRequest
    ID="_ffbc7df4-181d-4cea-80a5-5c513d13ca50"
    Version="2.0"
    IssueInstant="2024-01-26T00:18:38Z"
    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
    AssertionConsumerServiceURL="{LINE WORKSに登録したACS URL}"
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
    <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">{LINE WORKSに登録したSP Issuer}</saml:Issuer>
    <samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true" />
</samlp:AuthnRequest>
のSAML Request Bodyと比較すると、AutnnRequest ProviderNameが設定されていませんでしたが、この件と関係あるでしょうか?

コメント0

前の投稿ログインURL変更について
次の投稿SSO適用前の削除中のユーザーの挙動について
リスト

まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。